mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-25 03:37:45 +03:00
Add linux kernel module support
Setup linux kernel module support, this includes: - zfs context for kernel/user - kernel module build system integration - kernel module macros - kernel module symbol export - kernel module options Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
@@ -3295,3 +3295,131 @@ nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
|
||||
|
||||
return (err);
|
||||
}
|
||||
|
||||
#if defined(_KERNEL) && defined(HAVE_SPL)
|
||||
|
||||
static int nvpair_init(void) { return 0; }
|
||||
static int nvpair_fini(void) { return 0; }
|
||||
|
||||
spl_module_init(nvpair_init);
|
||||
spl_module_exit(nvpair_fini);
|
||||
|
||||
MODULE_DESCRIPTION("Generic name/value pair implementation");
|
||||
MODULE_AUTHOR(ZFS_META_AUTHOR);
|
||||
MODULE_LICENSE(ZFS_META_LICENSE);
|
||||
|
||||
EXPORT_SYMBOL(nv_alloc_init);
|
||||
EXPORT_SYMBOL(nv_alloc_reset);
|
||||
EXPORT_SYMBOL(nv_alloc_fini);
|
||||
|
||||
/* list management */
|
||||
EXPORT_SYMBOL(nvlist_alloc);
|
||||
EXPORT_SYMBOL(nvlist_free);
|
||||
EXPORT_SYMBOL(nvlist_size);
|
||||
EXPORT_SYMBOL(nvlist_pack);
|
||||
EXPORT_SYMBOL(nvlist_unpack);
|
||||
EXPORT_SYMBOL(nvlist_dup);
|
||||
EXPORT_SYMBOL(nvlist_merge);
|
||||
|
||||
EXPORT_SYMBOL(nvlist_xalloc);
|
||||
EXPORT_SYMBOL(nvlist_xpack);
|
||||
EXPORT_SYMBOL(nvlist_xunpack);
|
||||
EXPORT_SYMBOL(nvlist_xdup);
|
||||
EXPORT_SYMBOL(nvlist_lookup_nv_alloc);
|
||||
|
||||
EXPORT_SYMBOL(nvlist_add_nvpair);
|
||||
EXPORT_SYMBOL(nvlist_add_boolean);
|
||||
EXPORT_SYMBOL(nvlist_add_boolean_value);
|
||||
EXPORT_SYMBOL(nvlist_add_byte);
|
||||
EXPORT_SYMBOL(nvlist_add_int8);
|
||||
EXPORT_SYMBOL(nvlist_add_uint8);
|
||||
EXPORT_SYMBOL(nvlist_add_int16);
|
||||
EXPORT_SYMBOL(nvlist_add_uint16);
|
||||
EXPORT_SYMBOL(nvlist_add_int32);
|
||||
EXPORT_SYMBOL(nvlist_add_uint32);
|
||||
EXPORT_SYMBOL(nvlist_add_int64);
|
||||
EXPORT_SYMBOL(nvlist_add_uint64);
|
||||
EXPORT_SYMBOL(nvlist_add_string);
|
||||
EXPORT_SYMBOL(nvlist_add_nvlist);
|
||||
EXPORT_SYMBOL(nvlist_add_boolean_array);
|
||||
EXPORT_SYMBOL(nvlist_add_byte_array);
|
||||
EXPORT_SYMBOL(nvlist_add_int8_array);
|
||||
EXPORT_SYMBOL(nvlist_add_uint8_array);
|
||||
EXPORT_SYMBOL(nvlist_add_int16_array);
|
||||
EXPORT_SYMBOL(nvlist_add_uint16_array);
|
||||
EXPORT_SYMBOL(nvlist_add_int32_array);
|
||||
EXPORT_SYMBOL(nvlist_add_uint32_array);
|
||||
EXPORT_SYMBOL(nvlist_add_int64_array);
|
||||
EXPORT_SYMBOL(nvlist_add_uint64_array);
|
||||
EXPORT_SYMBOL(nvlist_add_string_array);
|
||||
EXPORT_SYMBOL(nvlist_add_nvlist_array);
|
||||
EXPORT_SYMBOL(nvlist_next_nvpair);
|
||||
EXPORT_SYMBOL(nvlist_prev_nvpair);
|
||||
EXPORT_SYMBOL(nvlist_empty);
|
||||
EXPORT_SYMBOL(nvlist_add_hrtime);
|
||||
|
||||
EXPORT_SYMBOL(nvlist_remove);
|
||||
EXPORT_SYMBOL(nvlist_remove_nvpair);
|
||||
EXPORT_SYMBOL(nvlist_remove_all);
|
||||
|
||||
EXPORT_SYMBOL(nvlist_lookup_boolean);
|
||||
EXPORT_SYMBOL(nvlist_lookup_boolean_value);
|
||||
EXPORT_SYMBOL(nvlist_lookup_byte);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int8);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint8);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int16);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint16);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int32);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint32);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int64);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint64);
|
||||
EXPORT_SYMBOL(nvlist_lookup_string);
|
||||
EXPORT_SYMBOL(nvlist_lookup_nvlist);
|
||||
EXPORT_SYMBOL(nvlist_lookup_boolean_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_byte_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int8_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint8_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int16_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint16_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int32_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint32_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_int64_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_uint64_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_string_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_nvlist_array);
|
||||
EXPORT_SYMBOL(nvlist_lookup_hrtime);
|
||||
EXPORT_SYMBOL(nvlist_lookup_pairs);
|
||||
|
||||
EXPORT_SYMBOL(nvlist_lookup_nvpair);
|
||||
EXPORT_SYMBOL(nvlist_exists);
|
||||
|
||||
/* processing nvpair */
|
||||
EXPORT_SYMBOL(nvpair_name);
|
||||
EXPORT_SYMBOL(nvpair_type);
|
||||
EXPORT_SYMBOL(nvpair_value_boolean_value);
|
||||
EXPORT_SYMBOL(nvpair_value_byte);
|
||||
EXPORT_SYMBOL(nvpair_value_int8);
|
||||
EXPORT_SYMBOL(nvpair_value_uint8);
|
||||
EXPORT_SYMBOL(nvpair_value_int16);
|
||||
EXPORT_SYMBOL(nvpair_value_uint16);
|
||||
EXPORT_SYMBOL(nvpair_value_int32);
|
||||
EXPORT_SYMBOL(nvpair_value_uint32);
|
||||
EXPORT_SYMBOL(nvpair_value_int64);
|
||||
EXPORT_SYMBOL(nvpair_value_uint64);
|
||||
EXPORT_SYMBOL(nvpair_value_string);
|
||||
EXPORT_SYMBOL(nvpair_value_nvlist);
|
||||
EXPORT_SYMBOL(nvpair_value_boolean_array);
|
||||
EXPORT_SYMBOL(nvpair_value_byte_array);
|
||||
EXPORT_SYMBOL(nvpair_value_int8_array);
|
||||
EXPORT_SYMBOL(nvpair_value_uint8_array);
|
||||
EXPORT_SYMBOL(nvpair_value_int16_array);
|
||||
EXPORT_SYMBOL(nvpair_value_uint16_array);
|
||||
EXPORT_SYMBOL(nvpair_value_int32_array);
|
||||
EXPORT_SYMBOL(nvpair_value_uint32_array);
|
||||
EXPORT_SYMBOL(nvpair_value_int64_array);
|
||||
EXPORT_SYMBOL(nvpair_value_uint64_array);
|
||||
EXPORT_SYMBOL(nvpair_value_string_array);
|
||||
EXPORT_SYMBOL(nvpair_value_nvlist_array);
|
||||
EXPORT_SYMBOL(nvpair_value_hrtime);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user