#include <linux/device.h>
#include <linux/sizes.h>
#include <linux/badblocks.h>
#include "nd-core.h"
#include "pmem.h"
#include "pfn.h"
#include "btt.h"
#include "nd.h"
void __nd_detach_ndns(struct device *dev, struct nd_namespace_common **_ndns)
{ … }
void nd_detach_ndns(struct device *dev,
struct nd_namespace_common **_ndns)
{ … }
bool __nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach,
struct nd_namespace_common **_ndns)
{ … }
bool nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach,
struct nd_namespace_common **_ndns)
{ … }
static int namespace_match(struct device *dev, void *data)
{ … }
static bool is_idle(struct device *dev, struct nd_namespace_common *ndns)
{ … }
struct nd_pfn *to_nd_pfn_safe(struct device *dev)
{ … }
static void nd_detach_and_reset(struct device *dev,
struct nd_namespace_common **_ndns)
{ … }
ssize_t nd_namespace_store(struct device *dev,
struct nd_namespace_common **_ndns, const char *buf,
size_t len)
{ … }
u64 nd_sb_checksum(struct nd_gen_sb *nd_gen_sb)
{ … }
EXPORT_SYMBOL(…);
static int nsio_rw_bytes(struct nd_namespace_common *ndns,
resource_size_t offset, void *buf, size_t size, int rw,
unsigned long flags)
{ … }
int devm_nsio_enable(struct device *dev, struct nd_namespace_io *nsio,
resource_size_t size)
{ … }
void devm_nsio_disable(struct device *dev, struct nd_namespace_io *nsio)
{ … }