Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(824)

Unified Diff: context.c

Issue 6469010: Factor out the context specific functions into their own file. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/cbootimage.git@master
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « context.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: context.c
diff --git a/context.c b/context.c
new file mode 100644
index 0000000000000000000000000000000000000000..771b7fe43d858c52019723cdfe0cb4a7b7b3b9dc
--- /dev/null
+++ b/context.c
@@ -0,0 +1,83 @@
+/**
+ * Copyright (c) 2011 NVIDIA Corporation. All rights reserved.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include "cbootimage.h"
+#include "data_layout.h"
+#include "set.h"
+
+static int
+query_alloc(build_image_context *context,
+ nvbct_lib_id size_id,
+ u_int8_t **dst)
+{
+ u_int32_t size;
+
+ /* Note: 3rd argument not used in this particular query. */
+ if (context->bctlib.get_value(size_id,
+ &size, context->bct) != 0)
+ return -ENODATA;
+ *dst = malloc(size);
+
+ if (*dst == NULL)
+ return -ENOMEM;
+
+ memset(*dst, 0, size);
+
+ return 0;
+}
+
+void
+cleanup_context(build_image_context *context)
+{
+ destroy_block_list(context->memory);
+ destroy_addon_list(context->addon_tbl.addon_item_list);
+ free(context->bct);
+}
+
+int
+init_context(build_image_context *context)
+{
+ int e = 0;
+
+ /* Set defaults */
+ context->memory = new_block_list();
+ context->journal_blk = 1; /* Default to 1st block */
+
+ /* Allocate space for the bct.
+ * Note that this is different from the old code which pointed directly
+ * into a memory image.
+ */
+ e = query_alloc(context, nvbct_lib_id_bct_size, &(context->bct));
+ if (e != 0)
+ goto fail;
+
+ context_set_value(context, token_page_size, 2048);
+ context_set_value(context, token_redundancy, 1);
+ context_set_value(context, token_version, 1);
+
+ return 0;
+
+ fail:
+ cleanup_context(context);
+
+ return e;
+}
« no previous file with comments | « context.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698