summaryrefslogtreecommitdiffstats
path: root/vpnor/mboxd_pnor_partition_table.h
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2018-03-26 11:56:16 +1030
committerAndrew Jeffery <andrew@aj.id.au>2018-04-04 17:27:31 +0930
commit53c21aaa803e148c9c79cb3f5e0252d911506b10 (patch)
tree2c8e7482711617bc12a58022dd5839234a17f6a7 /vpnor/mboxd_pnor_partition_table.h
parent8b9102389718f639434253be3fa99f8f6d38d9a6 (diff)
downloadphosphor-mboxd-53c21aaa803e148c9c79cb3f5e0252d911506b10.tar.gz
phosphor-mboxd-53c21aaa803e148c9c79cb3f5e0252d911506b10.zip
vpnor: Isolate relevant code in vpnor directory
This is prepatory work for introducing more vpnor-specific behaviours to window handling. We will be introducing more objects to link, in order to hook some of the window command handlers. This change takes the opportunity to revert back to the upstream names for some of the original C files. Change-Id: I6b67ae466a2695054035e65ba752881be9c32d1a Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Diffstat (limited to 'vpnor/mboxd_pnor_partition_table.h')
-rw-r--r--vpnor/mboxd_pnor_partition_table.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/vpnor/mboxd_pnor_partition_table.h b/vpnor/mboxd_pnor_partition_table.h
new file mode 100644
index 0000000..d13a2d2
--- /dev/null
+++ b/vpnor/mboxd_pnor_partition_table.h
@@ -0,0 +1,67 @@
+/* SPDX-License-Identifier: Apache-2.0 */
+/* Copyright (C) 2018 IBM Corp. */
+#pragma once
+
+#ifdef VIRTUAL_PNOR_ENABLED
+
+#include <limits.h>
+#include "pnor_partition_defs.h"
+
+struct mbox_context;
+struct vpnor_partition_table;
+
+struct vpnor_partition_paths
+{
+ char ro_loc[PATH_MAX];
+ char rw_loc[PATH_MAX];
+ char prsv_loc[PATH_MAX];
+ char patch_loc[PATH_MAX];
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @brief Create a virtual PNOR partition table.
+ *
+ * @param[in] context - mbox context pointer
+ *
+ * This API should be called before calling any other APIs below. If a table
+ * already exists, this function will not do anything further. This function
+ * will not do anything if the context is NULL.
+ *
+ * Returns 0 if the call succeeds, else a negative error code.
+ */
+int init_vpnor(struct mbox_context *context);
+
+/** @brief Create a virtual PNOR partition table.
+ *
+ * @param[in] context - mbox context pointer
+ *
+ * This API is same as above one but requires context->path is initialised
+ * with all the necessary paths.
+ *
+ * Returns 0 if the call succeeds, else a negative error code.
+ */
+
+int init_vpnor_from_paths(struct mbox_context *context);
+
+/** @brief Copy bootloader partition (alongwith TOC) to LPC memory
+ *
+ * @param[in] context - mbox context pointer
+ *
+ * @returns 0 on success, negative error code on failure
+ */
+int vpnor_copy_bootloader_partition(const struct mbox_context *context);
+
+/** @brief Destroy partition table, if it exists.
+ *
+ * @param[in] context - mbox context pointer
+ */
+void destroy_vpnor(struct mbox_context *context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
OpenPOWER on IntegriCloud