1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#if 0
exec nbdkit cc "$0" "$@" \
EXTRA_CFLAGS="-I.. -I../include \
-I$abs_top_srcdir/include"
#endif
#include <stdint.h>
#include <string.h>
#define NBDKIT_API_VERSION 2
#include <nbdkit-plugin.h>
char data[100*1024*1024];
#define THREAD_MODEL NBDKIT_THREAD_MODEL_PARALLEL
static void *
my_open (int readonly)
{
return NBDKIT_HANDLE_NOT_NEEDED;
}
static int64_t
my_get_size (void *handle)
{
return (int64_t) sizeof (data);
}
static int
my_pread (void *handle, void *buf,
uint32_t count, uint64_t offset,
uint32_t flags)
{
memcpy (buf, data+offset, count);
return 0;
}
static int
my_pwrite (void *handle, const void *buf,
uint32_t count, uint64_t offset,
uint32_t flags)
{
memcpy (data+offset, buf, count);
return 0;
}
static struct nbdkit_plugin plugin = {
.name = "myplugin",
.open = my_open,
.get_size = my_get_size,
.pread = my_pread,
.pwrite = my_pwrite,
};
NBDKIT_REGISTER_PLUGIN (plugin)
|