file: Add an internal "mode"
[nbdkit.git] / tests / cc-shebang.c
blob50e07f841d85b8fc97992cd31730862ce72cd0ca
1 #if 0
2 exec nbdkit cc "$0" "$@"
3 #endif
4 #include <stdint.h>
5 #include <string.h>
7 #define NBDKIT_API_VERSION 2
8 #include <nbdkit-plugin.h>
10 char data[100*1024*1024];
12 #define THREAD_MODEL NBDKIT_THREAD_MODEL_PARALLEL
14 static void *
15 my_open (int readonly)
17 return NBDKIT_HANDLE_NOT_NEEDED;
20 static int64_t
21 my_get_size (void *handle)
23 return (int64_t) sizeof (data);
26 static int
27 my_pread (void *handle, void *buf,
28 uint32_t count, uint64_t offset,
29 uint32_t flags)
31 memcpy (buf, data+offset, count);
32 return 0;
35 static int
36 my_pwrite (void *handle, const void *buf,
37 uint32_t count, uint64_t offset,
38 uint32_t flags)
40 memcpy (data+offset, buf, count);
41 return 0;
44 static struct nbdkit_plugin plugin = {
45 .name = "myplugin",
46 .open = my_open,
47 .get_size = my_get_size,
48 .pread = my_pread,
49 .pwrite = my_pwrite,
52 NBDKIT_REGISTER_PLUGIN(plugin)