xref: /openbmc/hiomapd/vpnor/backend.h (revision 68a24c9e)
1f4bc335bSAndrew Jeffery /* SPDX-License-Identifier: Apache-2.0 */
2f4bc335bSAndrew Jeffery /* Copyright (C) 2018 IBM Corp. */
3f4bc335bSAndrew Jeffery #pragma once
4f4bc335bSAndrew Jeffery 
5f4bc335bSAndrew Jeffery #include <limits.h>
6*68a24c9eSPatrick Williams #include <string.h>
7f4bc335bSAndrew Jeffery 
8f4bc335bSAndrew Jeffery struct mbox_context;
9f4bc335bSAndrew Jeffery struct vpnor_partition_table;
10f4bc335bSAndrew Jeffery 
11f4bc335bSAndrew Jeffery struct vpnor_partition_paths
12f4bc335bSAndrew Jeffery {
13f4bc335bSAndrew Jeffery     char ro_loc[PATH_MAX];
14f4bc335bSAndrew Jeffery     char rw_loc[PATH_MAX];
15f4bc335bSAndrew Jeffery     char prsv_loc[PATH_MAX];
16f4bc335bSAndrew Jeffery     char patch_loc[PATH_MAX];
17f4bc335bSAndrew Jeffery };
18f4bc335bSAndrew Jeffery 
19f4bc335bSAndrew Jeffery struct vpnor_data {
20f4bc335bSAndrew Jeffery 	struct vpnor_partition_table *vpnor;
21f4bc335bSAndrew Jeffery 	struct vpnor_partition_paths paths;
22f4bc335bSAndrew Jeffery };
23f4bc335bSAndrew Jeffery 
24f4bc335bSAndrew Jeffery #ifdef __cplusplus
25f4bc335bSAndrew Jeffery extern "C" {
26f4bc335bSAndrew Jeffery #endif
27f4bc335bSAndrew Jeffery 
28f4bc335bSAndrew Jeffery /** @brief Populate the path object with the default partition paths
29f4bc335bSAndrew Jeffery  *
30f4bc335bSAndrew Jeffery  *  @param[in/out] paths - A paths object in which to store the defaults
31f4bc335bSAndrew Jeffery  *
32f4bc335bSAndrew Jeffery  *  Returns 0 if the call succeeds, else a negative error code.
33f4bc335bSAndrew Jeffery  */
34f4bc335bSAndrew Jeffery #ifdef VIRTUAL_PNOR_ENABLED
35f4bc335bSAndrew Jeffery void vpnor_default_paths(struct vpnor_partition_paths *paths);
36f4bc335bSAndrew Jeffery #else
37f4bc335bSAndrew Jeffery static inline void vpnor_default_paths(struct vpnor_partition_paths *paths)
38f4bc335bSAndrew Jeffery {
39f4bc335bSAndrew Jeffery     memset(paths, 0, sizeof(*paths));
40f4bc335bSAndrew Jeffery }
41f4bc335bSAndrew Jeffery #endif
42f4bc335bSAndrew Jeffery 
43f4bc335bSAndrew Jeffery #ifdef __cplusplus
44f4bc335bSAndrew Jeffery }
45f4bc335bSAndrew Jeffery #endif
46