diff options
author | Deepak Kodihalli <dkodihal@in.ibm.com> | 2017-04-29 13:01:49 -0500 |
---|---|---|
committer | Deepak Kodihalli <dkodihal@in.ibm.com> | 2017-06-27 08:40:32 -0500 |
commit | b6a446f9070e6a8f044227ed74269aeb627cd1af (patch) | |
tree | 86463a62a1c185d8f7e0c74eb78b57bad4dfa1f4 /mboxd_pnor_partition_table.cpp | |
parent | 393821dd663f54384ea5b12cf30ab7944ceae5a6 (diff) | |
download | phosphor-mboxd-b6a446f9070e6a8f044227ed74269aeb627cd1af.tar.gz phosphor-mboxd-b6a446f9070e6a8f044227ed74269aeb627cd1af.zip |
pnor: provide "C" interface to partition table
Change-Id: I35af6c4c43e9a43f6a21992bfb0c13542a2c8f0d
Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Diffstat (limited to 'mboxd_pnor_partition_table.cpp')
-rw-r--r-- | mboxd_pnor_partition_table.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mboxd_pnor_partition_table.cpp b/mboxd_pnor_partition_table.cpp new file mode 100644 index 0000000..72a8953 --- /dev/null +++ b/mboxd_pnor_partition_table.cpp @@ -0,0 +1,52 @@ +#include "mboxd_pnor_partition_table.h" +#include "mbox.h" +#include "pnor_partition_table.hpp" + +struct vpnor_partition_table +{ + openpower::virtual_pnor::partition::Table* table = nullptr; +}; + +void vpnor_create_partition_table(struct mbox_context *context) +{ + if (context) + { + if (!context->vpnor) + { + context->vpnor = new vpnor_partition_table; + context->vpnor->table = + new openpower::virtual_pnor::partition::Table; + } + } +} + +size_t vpnor_get_partition_table_size(const struct mbox_context *context) +{ + return context && context->vpnor ? + context->vpnor->table->size() : 0; +} + +const struct pnor_partition_table* vpnor_get_partition_table( + const struct mbox_context *context) +{ + return context && context->vpnor ? + &(context->vpnor->table->getHostTable()) : nullptr; +} + +const struct pnor_partition* vpnor_get_partition( + const struct mbox_context *context, + const size_t offset) +{ + return context && context->vpnor ? + &(context->vpnor->table->partition(offset)) : nullptr; +} + +void vpnor_destroy_partition_table(struct mbox_context *context) +{ + if(context && context->vpnor) + { + delete context->vpnor->table; + delete context->vpnor; + context->vpnor = nullptr; + } +} |