|
Packit |
2ba279 |
#include <glib.h>
|
|
Packit |
2ba279 |
#include <blockdev/utils.h>
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
#ifndef BD_NVDIMM
|
|
Packit |
2ba279 |
#define BD_NVDIMM
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
GQuark bd_nvdimm_error_quark (void);
|
|
Packit |
2ba279 |
#define BD_NVDIMM_ERROR bd_nvdimm_error_quark ()
|
|
Packit |
2ba279 |
typedef enum {
|
|
Packit |
2ba279 |
BD_NVDIMM_ERROR_NAMESPACE_PARSE,
|
|
Packit |
2ba279 |
BD_NVDIMM_ERROR_NAMESPACE_FAIL,
|
|
Packit |
2ba279 |
BD_NVDIMM_ERROR_NAMESPACE_NOEXIST,
|
|
Packit |
2ba279 |
BD_NVDIMM_ERROR_NAMESPACE_MODE_INVAL,
|
|
Packit |
2ba279 |
BD_NVDIMM_ERROR_TECH_UNAVAIL,
|
|
Packit |
2ba279 |
} BDNVDIMMError;
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
typedef enum {
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_RAW,
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_SECTOR,
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_MEMORY,
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_DAX,
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_FSDAX,
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_DEVDAX,
|
|
Packit |
2ba279 |
BD_NVDIMM_NAMESPACE_MODE_UNKNOWN
|
|
Packit |
2ba279 |
} BDNVDIMMNamespaceMode;
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
typedef struct BDNVDIMMNamespaceInfo {
|
|
Packit |
2ba279 |
gchar *dev;
|
|
Packit |
2ba279 |
guint64 mode;
|
|
Packit |
2ba279 |
guint64 size;
|
|
Packit |
2ba279 |
gchar *uuid;
|
|
Packit |
2ba279 |
guint64 sector_size;
|
|
Packit |
2ba279 |
gchar *blockdev;
|
|
Packit |
2ba279 |
gboolean enabled;
|
|
Packit |
2ba279 |
} BDNVDIMMNamespaceInfo;
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
void bd_nvdimm_namespace_info_free (BDNVDIMMNamespaceInfo *info);
|
|
Packit |
2ba279 |
BDNVDIMMNamespaceInfo* bd_nvdimm_namespace_info_copy (BDNVDIMMNamespaceInfo *info);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
typedef enum {
|
|
Packit |
2ba279 |
BD_NVDIMM_TECH_NAMESPACE = 0,
|
|
Packit |
2ba279 |
} BDNVDIMMTech;
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
typedef enum {
|
|
Packit |
2ba279 |
BD_NVDIMM_TECH_MODE_CREATE = 1 << 0,
|
|
Packit |
2ba279 |
BD_NVDIMM_TECH_MODE_REMOVE = 1 << 1,
|
|
Packit |
2ba279 |
BD_NVDIMM_TECH_MODE_ACTIVATE_DEACTIVATE = 1 << 2,
|
|
Packit |
2ba279 |
BD_NVDIMM_TECH_MODE_QUERY = 1 << 3,
|
|
Packit |
2ba279 |
BD_NVDIMM_TECH_MODE_RECONFIGURE = 1 << 4,
|
|
Packit |
2ba279 |
} BDNVDIMMTechMode;
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
/*
|
|
Packit |
2ba279 |
* If using the plugin as a standalone library, the following functions should
|
|
Packit |
2ba279 |
* be called to:
|
|
Packit |
2ba279 |
*
|
|
Packit |
2ba279 |
* check_deps() - check plugin's dependencies, returning TRUE if satisfied
|
|
Packit |
2ba279 |
* init() - initialize the plugin, returning TRUE on success
|
|
Packit |
2ba279 |
* close() - clean after the plugin at the end or if no longer used
|
|
Packit |
2ba279 |
*
|
|
Packit |
2ba279 |
*/
|
|
Packit |
2ba279 |
gboolean bd_nvdimm_check_deps (void);
|
|
Packit |
2ba279 |
gboolean bd_nvdimm_init (void);
|
|
Packit |
2ba279 |
void bd_nvdimm_close (void);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
gboolean bd_nvdimm_is_tech_avail (BDNVDIMMTech tech, guint64 mode, GError **error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
BDNVDIMMNamespaceMode bd_nvdimm_namespace_get_mode_from_str (const gchar *mode_str, GError **error);
|
|
Packit |
2ba279 |
const gchar* bd_nvdimm_namespace_get_mode_str (BDNVDIMMNamespaceMode mode, GError **error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
gchar* bd_nvdimm_namespace_get_devname (const gchar *device, GError **error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
gboolean bd_nvdimm_namespace_enable (const gchar *namespace, const BDExtraArg **extra, GError **error);
|
|
Packit |
2ba279 |
gboolean bd_nvdimm_namespace_disable (const gchar *namespace, const BDExtraArg **extra, GError **error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
BDNVDIMMNamespaceInfo* bd_nvdimm_namespace_info (const gchar *namespace, const BDExtraArg **extra, GError **error);
|
|
Packit |
2ba279 |
BDNVDIMMNamespaceInfo** bd_nvdimm_list_namespaces (const gchar *bus, const gchar *region, gboolean idle, const BDExtraArg **extra, GError **error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
gboolean bd_nvdimm_namespace_reconfigure (const gchar* namespace, BDNVDIMMNamespaceMode mode, gboolean force, const BDExtraArg **extra, GError** error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
const guint64 *bd_nvdimm_namepace_get_supported_sector_sizes (BDNVDIMMNamespaceMode mode, GError **error);
|
|
Packit |
2ba279 |
|
|
Packit |
2ba279 |
#endif /* BD_CRYPTO */
|