/* SPDX-License-Identifier: Apache-2.0 */
/* Copyright (C) 2018 IBM Corp. */
#pragma once

#include <limits.h>
#include <string.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];
};

struct vpnor_data {
	struct vpnor_partition_table *vpnor;
	struct vpnor_partition_paths paths;
};

#ifdef __cplusplus
extern "C" {
#endif

/** @brief Populate the path object with the default partition paths
 *
 *  @param[in/out] paths - A paths object in which to store the defaults
 *
 *  Returns 0 if the call succeeds, else a negative error code.
 */
#ifdef VIRTUAL_PNOR_ENABLED
void vpnor_default_paths(struct vpnor_partition_paths *paths);
#else
static inline void vpnor_default_paths(struct vpnor_partition_paths *paths)
{
    memset(paths, 0, sizeof(*paths));
}
#endif

#ifdef __cplusplus
}
#endif