mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-01-14 17:22:05 +03:00
libspl: add API for manipulating tunables
Sponsored-by: https://despairlabs.com/sponsor/ Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Rob Norris <robn@despairlabs.com> Closes #17537
This commit is contained in:
parent
967ce75669
commit
cb9742e532
@ -49,4 +49,12 @@ typedef struct zfs_tunable {
|
||||
const char *zt_desc;
|
||||
} zfs_tunable_t;
|
||||
|
||||
int zfs_tunable_set(const zfs_tunable_t *tunable, const char *val);
|
||||
int zfs_tunable_get(const zfs_tunable_t *tunable, char *val, size_t valsz);
|
||||
|
||||
const zfs_tunable_t *zfs_tunable_lookup(const char *name);
|
||||
|
||||
typedef int (*zfs_tunable_iter_t)(const zfs_tunable_t *tunable, void *arg);
|
||||
void zfs_tunable_iter(zfs_tunable_iter_t cb, void *arg);
|
||||
|
||||
#endif
|
||||
|
||||
@ -25,6 +25,12 @@
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <inttypes.h>
|
||||
#include <sys/tunables.h>
|
||||
|
||||
/*
|
||||
@ -70,3 +76,244 @@ extern const zfs_tunable_t *__stop_zfs_tunables;
|
||||
static void *__zfs_tunable__placeholder
|
||||
__attribute__((__section__("zfs_tunables")))
|
||||
__attribute__((__used__)) = NULL;
|
||||
|
||||
/*
|
||||
* Find the name tunable by walking through the linker set and comparing names,
|
||||
* as described above. This is not particularly efficient but it's a fairly
|
||||
* rare task, so it shouldn't be a big deal.
|
||||
*/
|
||||
const zfs_tunable_t *
|
||||
zfs_tunable_lookup(const char *name)
|
||||
{
|
||||
for (const zfs_tunable_t **ztp = &__start_zfs_tunables;
|
||||
ztp != &__stop_zfs_tunables; ztp++) {
|
||||
const zfs_tunable_t *zt = *ztp;
|
||||
if (zt == NULL)
|
||||
continue;
|
||||
if (strcmp(name, zt->zt_name) == 0)
|
||||
return (zt);
|
||||
}
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Like zfs_tunable_lookup, but call the provided callback for each tunable.
|
||||
*/
|
||||
void
|
||||
zfs_tunable_iter(zfs_tunable_iter_t cb, void *arg)
|
||||
{
|
||||
for (const zfs_tunable_t **ztp = &__start_zfs_tunables;
|
||||
ztp != &__stop_zfs_tunables; ztp++) {
|
||||
const zfs_tunable_t *zt = *ztp;
|
||||
if (zt == NULL)
|
||||
continue;
|
||||
if (cb(zt, arg))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse a string into an int or uint. It's easier to have a pair of "generic"
|
||||
* functions that clamp to a given min and max rather than have multiple
|
||||
* functions for each width of type.
|
||||
*/
|
||||
static int
|
||||
zfs_tunable_parse_int(const char *val, intmax_t *np,
|
||||
intmax_t min, intmax_t max)
|
||||
{
|
||||
intmax_t n;
|
||||
char *end;
|
||||
errno = 0;
|
||||
n = strtoimax(val, &end, 0);
|
||||
if (errno != 0)
|
||||
return (errno);
|
||||
if (*end != '\0')
|
||||
return (EINVAL);
|
||||
if (n < min || n > max)
|
||||
return (ERANGE);
|
||||
*np = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_parse_uint(const char *val, uintmax_t *np,
|
||||
uintmax_t min, uintmax_t max)
|
||||
{
|
||||
uintmax_t n;
|
||||
char *end;
|
||||
errno = 0;
|
||||
n = strtoumax(val, &end, 0);
|
||||
if (errno != 0)
|
||||
return (errno);
|
||||
if (*end != '\0')
|
||||
return (EINVAL);
|
||||
if (strchr(val, '-'))
|
||||
return (ERANGE);
|
||||
if (n < min || n > max)
|
||||
return (ERANGE);
|
||||
*np = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Set helpers for each tunable type. Parses the string, and if produces a
|
||||
* valid value for the tunable, sets it. No effort is made to make sure the
|
||||
* tunable is of the right type; that's done in zfs_tunable_set() below.
|
||||
*/
|
||||
static int
|
||||
zfs_tunable_set_int(const zfs_tunable_t *zt, const char *val)
|
||||
{
|
||||
intmax_t n;
|
||||
int err = zfs_tunable_parse_int(val, &n, INT_MIN, INT_MAX);
|
||||
if (err != 0)
|
||||
return (err);
|
||||
*(int *)zt->zt_varp = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_set_uint(const zfs_tunable_t *zt, const char *val)
|
||||
{
|
||||
uintmax_t n;
|
||||
int err = zfs_tunable_parse_uint(val, &n, 0, UINT_MAX);
|
||||
if (err != 0)
|
||||
return (err);
|
||||
*(unsigned int *)zt->zt_varp = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_set_ulong(const zfs_tunable_t *zt, const char *val)
|
||||
{
|
||||
uintmax_t n;
|
||||
int err = zfs_tunable_parse_uint(val, &n, 0, ULONG_MAX);
|
||||
if (err != 0)
|
||||
return (err);
|
||||
*(unsigned long *)zt->zt_varp = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_set_u64(const zfs_tunable_t *zt, const char *val)
|
||||
{
|
||||
uintmax_t n;
|
||||
int err = zfs_tunable_parse_uint(val, &n, 0, UINT64_MAX);
|
||||
if (err != 0)
|
||||
return (err);
|
||||
*(uint64_t *)zt->zt_varp = n;
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_set_string(const zfs_tunable_t *zt, const char *val)
|
||||
{
|
||||
(void) zt, (void) val;
|
||||
/*
|
||||
* We can't currently handle strings. String tunables are pointers
|
||||
* into read-only memory, so we can update the pointer, but not the
|
||||
* contents. That would mean taking an allocation, but we don't have
|
||||
* an obvious place to free it.
|
||||
*
|
||||
* For now, it's no big deal as there's only a couple of string
|
||||
* tunables anyway.
|
||||
*/
|
||||
return (ENOTSUP);
|
||||
}
|
||||
|
||||
/*
|
||||
* Get helpers for each tunable type. Converts the value to a string if
|
||||
* necessary and writes it into the provided buffer. The type is assumed to
|
||||
* be correct; zfs_tunable_get() below will call the correct function for the
|
||||
* type.
|
||||
*/
|
||||
static int
|
||||
zfs_tunable_get_int(const zfs_tunable_t *zt, char *val, size_t valsz)
|
||||
{
|
||||
snprintf(val, valsz, "%d", *(int *)zt->zt_varp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_get_uint(const zfs_tunable_t *zt, char *val, size_t valsz)
|
||||
{
|
||||
snprintf(val, valsz, "%u", *(unsigned int *)zt->zt_varp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_get_ulong(const zfs_tunable_t *zt, char *val, size_t valsz)
|
||||
{
|
||||
snprintf(val, valsz, "%lu", *(unsigned long *)zt->zt_varp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_get_u64(const zfs_tunable_t *zt, char *val, size_t valsz)
|
||||
{
|
||||
snprintf(val, valsz, "%"PRIu64, *(uint64_t *)zt->zt_varp);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
zfs_tunable_get_string(const zfs_tunable_t *zt, char *val, size_t valsz)
|
||||
{
|
||||
strlcpy(val, *(char **)zt->zt_varp, valsz);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* The public set function. Delegates to the type-specific version. */
|
||||
int
|
||||
zfs_tunable_set(const zfs_tunable_t *zt, const char *val)
|
||||
{
|
||||
int err;
|
||||
switch (zt->zt_type) {
|
||||
case ZFS_TUNABLE_TYPE_INT:
|
||||
err = zfs_tunable_set_int(zt, val);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_UINT:
|
||||
err = zfs_tunable_set_uint(zt, val);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_ULONG:
|
||||
err = zfs_tunable_set_ulong(zt, val);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_U64:
|
||||
err = zfs_tunable_set_u64(zt, val);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_STRING:
|
||||
err = zfs_tunable_set_string(zt, val);
|
||||
break;
|
||||
default:
|
||||
err = EOPNOTSUPP;
|
||||
break;
|
||||
}
|
||||
return (err);
|
||||
}
|
||||
|
||||
/* The public get function. Delegates to the type-specific version. */
|
||||
int
|
||||
zfs_tunable_get(const zfs_tunable_t *zt, char *val, size_t valsz)
|
||||
{
|
||||
int err;
|
||||
switch (zt->zt_type) {
|
||||
case ZFS_TUNABLE_TYPE_INT:
|
||||
err = zfs_tunable_get_int(zt, val, valsz);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_UINT:
|
||||
err = zfs_tunable_get_uint(zt, val, valsz);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_ULONG:
|
||||
err = zfs_tunable_get_ulong(zt, val, valsz);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_U64:
|
||||
err = zfs_tunable_get_u64(zt, val, valsz);
|
||||
break;
|
||||
case ZFS_TUNABLE_TYPE_STRING:
|
||||
err = zfs_tunable_get_string(zt, val, valsz);
|
||||
break;
|
||||
default:
|
||||
err = EOPNOTSUPP;
|
||||
break;
|
||||
}
|
||||
return (err);
|
||||
}
|
||||
|
||||
@ -244,6 +244,10 @@
|
||||
<elf-symbol name='uu_strerror' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='uu_strndup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='uu_zalloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
</elf-function-symbols>
|
||||
<abi-instr address-size='64' path='lib/libspl/assert.c' language='LANG_C99'>
|
||||
<typedef-decl name='__pid_t' type-id='95e97e5e' id='3629bad8'/>
|
||||
@ -612,7 +616,6 @@
|
||||
<array-type-def dimensions='1' type-id='de572c22' size-in-bits='1472' id='6d3c2f42'>
|
||||
<subrange length='23' type-id='7359adad' id='fdd0f594'/>
|
||||
</array-type-def>
|
||||
<type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/>
|
||||
<array-type-def dimensions='1' type-id='3a47d82b' size-in-bits='256' id='a133ec23'>
|
||||
<subrange length='4' type-id='7359adad' id='16fe7105'/>
|
||||
</array-type-def>
|
||||
@ -978,8 +981,6 @@
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/os/linux/gethostid.c' language='LANG_C99'>
|
||||
<type-decl name='long long unsigned int' size-in-bits='64' id='3a47d82b'/>
|
||||
<pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
|
||||
<qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
|
||||
<function-decl name='fclose' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='822cd80b'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
@ -1019,6 +1020,13 @@
|
||||
<array-type-def dimensions='1' type-id='03085adc' size-in-bits='192' id='083f8d58'>
|
||||
<subrange length='3' type-id='7359adad' id='56f209d2'/>
|
||||
</array-type-def>
|
||||
<array-type-def dimensions='1' type-id='d315442e' size-in-bits='16' id='811205dc'>
|
||||
<subrange length='1' type-id='7359adad' id='52f813b4'/>
|
||||
</array-type-def>
|
||||
<array-type-def dimensions='1' type-id='d3130597' size-in-bits='768' id='f63f23b9'>
|
||||
<subrange length='12' type-id='7359adad' id='84827bdc'/>
|
||||
</array-type-def>
|
||||
<type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/>
|
||||
<class-decl name='mnttab' size-in-bits='256' is-struct='yes' visibility='default' id='1b055409'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='mnt_special' type-id='26a90f95' visibility='default'/>
|
||||
@ -1053,6 +1061,93 @@
|
||||
<var-decl name='mnt_minor' type-id='3502e3ff' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<typedef-decl name='__u16' type-id='8efea9e5' id='d315442e'/>
|
||||
<typedef-decl name='__s32' type-id='95e97e5e' id='3158a266'/>
|
||||
<typedef-decl name='__u32' type-id='f0981eeb' id='3f1a6b60'/>
|
||||
<typedef-decl name='__s64' type-id='1eb56b1e' id='49659421'/>
|
||||
<typedef-decl name='__u64' type-id='3a47d82b' id='d3130597'/>
|
||||
<class-decl name='statx_timestamp' size-in-bits='128' is-struct='yes' visibility='default' id='94101016'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='tv_sec' type-id='49659421' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='tv_nsec' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='96'>
|
||||
<var-decl name='__reserved' type-id='3158a266' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='statx' size-in-bits='2048' is-struct='yes' visibility='default' id='720b04c5'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='stx_mask' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='32'>
|
||||
<var-decl name='stx_blksize' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='stx_attributes' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='stx_nlink' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='160'>
|
||||
<var-decl name='stx_uid' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='192'>
|
||||
<var-decl name='stx_gid' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='224'>
|
||||
<var-decl name='stx_mode' type-id='d315442e' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='240'>
|
||||
<var-decl name='__spare0' type-id='811205dc' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='256'>
|
||||
<var-decl name='stx_ino' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='320'>
|
||||
<var-decl name='stx_size' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='384'>
|
||||
<var-decl name='stx_blocks' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='448'>
|
||||
<var-decl name='stx_attributes_mask' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='512'>
|
||||
<var-decl name='stx_atime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='640'>
|
||||
<var-decl name='stx_btime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='768'>
|
||||
<var-decl name='stx_ctime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='896'>
|
||||
<var-decl name='stx_mtime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1024'>
|
||||
<var-decl name='stx_rdev_major' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1056'>
|
||||
<var-decl name='stx_rdev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1088'>
|
||||
<var-decl name='stx_dev_major' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1120'>
|
||||
<var-decl name='stx_dev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1152'>
|
||||
<var-decl name='stx_mnt_id' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1216'>
|
||||
<var-decl name='__spare2' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1280'>
|
||||
<var-decl name='__spare3' type-id='f63f23b9' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='mntent' size-in-bits='320' is-struct='yes' visibility='default' id='56fe4a37'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='mnt_fsname' type-id='26a90f95' visibility='default'/>
|
||||
@ -1142,6 +1237,8 @@
|
||||
<pointer-type-def type-id='1b055409' size-in-bits='64' id='9d424d31'/>
|
||||
<pointer-type-def type-id='0bbec9cd' size-in-bits='64' id='62f7a03d'/>
|
||||
<qualified-type-def type-id='62f7a03d' restrict='yes' id='f1cadedf'/>
|
||||
<pointer-type-def type-id='720b04c5' size-in-bits='64' id='936b8e35'/>
|
||||
<qualified-type-def type-id='936b8e35' restrict='yes' id='31d265b7'/>
|
||||
<function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='e75a27e9'/>
|
||||
<parameter type-id='3cad23cd'/>
|
||||
@ -1157,6 +1254,14 @@
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='26a90f95'/>
|
||||
</function-decl>
|
||||
<function-decl name='statx' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<parameter type-id='f0981eeb'/>
|
||||
<parameter type-id='31d265b7'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='__fprintf_chk' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='e75a27e9'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
@ -1307,6 +1412,91 @@
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/tunables.c' language='LANG_C99'>
|
||||
<enum-decl name='zfs_tunable_type_t' naming-typedef-id='f50b1525' id='56905369'>
|
||||
<underlying-type type-id='9cac1fee'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_INT' value='0'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_UINT' value='1'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_ULONG' value='2'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_U64' value='3'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_STRING' value='4'/>
|
||||
</enum-decl>
|
||||
<typedef-decl name='zfs_tunable_type_t' type-id='56905369' id='f50b1525'/>
|
||||
<enum-decl name='zfs_tunable_perm_t' naming-typedef-id='ada7336b' id='e80e6ebf'>
|
||||
<underlying-type type-id='9cac1fee'/>
|
||||
<enumerator name='ZFS_TUNABLE_PERM_ZMOD_RW' value='0'/>
|
||||
<enumerator name='ZFS_TUNABLE_PERM_ZMOD_RD' value='1'/>
|
||||
</enum-decl>
|
||||
<typedef-decl name='zfs_tunable_perm_t' type-id='e80e6ebf' id='ada7336b'/>
|
||||
<class-decl name='zfs_tunable' size-in-bits='320' is-struct='yes' visibility='default' id='1a97ee0e'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='zt_name' type-id='80f4b756' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='zt_varp' type-id='eaa32e2f' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='zt_varsz' type-id='b59d7dce' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='192'>
|
||||
<var-decl name='zt_type' type-id='f50b1525' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='224'>
|
||||
<var-decl name='zt_perm' type-id='ada7336b' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='256'>
|
||||
<var-decl name='zt_desc' type-id='80f4b756' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<typedef-decl name='zfs_tunable_t' type-id='1a97ee0e' id='12bf5c5e'/>
|
||||
<typedef-decl name='zfs_tunable_iter_t' type-id='7ef33f92' id='d8d5f4ab'/>
|
||||
<typedef-decl name='intmax_t' type-id='5b475db0' id='e104d842'/>
|
||||
<typedef-decl name='uintmax_t' type-id='04d82f4b' id='f8b828c9'/>
|
||||
<typedef-decl name='__intmax_t' type-id='bd54fe1a' id='5b475db0'/>
|
||||
<typedef-decl name='__uintmax_t' type-id='7359adad' id='04d82f4b'/>
|
||||
<pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
|
||||
<qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
|
||||
<qualified-type-def type-id='12bf5c5e' const='yes' id='180e47ee'/>
|
||||
<pointer-type-def type-id='180e47ee' size-in-bits='64' id='a27af98c'/>
|
||||
<pointer-type-def type-id='92f86508' size-in-bits='64' id='7ef33f92'/>
|
||||
<function-decl name='strtoimax' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='e104d842'/>
|
||||
</function-decl>
|
||||
<function-decl name='strtoumax' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='f8b828c9'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_lookup' mangled-name='zfs_tunable_lookup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_lookup'>
|
||||
<parameter type-id='80f4b756' name='name'/>
|
||||
<return type-id='a27af98c'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_set' mangled-name='zfs_tunable_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_set'>
|
||||
<parameter type-id='a27af98c' name='zt'/>
|
||||
<parameter type-id='80f4b756' name='val'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_get' mangled-name='zfs_tunable_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_get'>
|
||||
<parameter type-id='a27af98c' name='zt'/>
|
||||
<parameter type-id='26a90f95' name='val'/>
|
||||
<parameter type-id='b59d7dce' name='valsz'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_iter' mangled-name='zfs_tunable_iter' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_iter'>
|
||||
<parameter type-id='d8d5f4ab' name='cb'/>
|
||||
<parameter type-id='eaa32e2f' name='arg'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
<function-type size-in-bits='64' id='92f86508'>
|
||||
<parameter type-id='a27af98c'/>
|
||||
<parameter type-id='eaa32e2f'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libuutil/uu_alloc.c' language='LANG_C99'>
|
||||
<type-decl name='char' size-in-bits='8' id='a84c031d'/>
|
||||
<type-decl name='unsigned int' size-in-bits='32' id='f0981eeb'/>
|
||||
|
||||
@ -451,6 +451,10 @@
|
||||
<elf-symbol name='zfs_strip_partition' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_strip_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_truncate_shares' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_type_to_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_unmount' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_unmountall' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
@ -1450,8 +1454,103 @@
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/os/linux/getmntany.c' language='LANG_C99'>
|
||||
<array-type-def dimensions='1' type-id='d315442e' size-in-bits='16' id='811205dc'>
|
||||
<subrange length='1' type-id='7359adad' id='52f813b4'/>
|
||||
</array-type-def>
|
||||
<array-type-def dimensions='1' type-id='d3130597' size-in-bits='768' id='f63f23b9'>
|
||||
<subrange length='12' type-id='7359adad' id='84827bdc'/>
|
||||
</array-type-def>
|
||||
<typedef-decl name='__u16' type-id='8efea9e5' id='d315442e'/>
|
||||
<typedef-decl name='__s32' type-id='95e97e5e' id='3158a266'/>
|
||||
<typedef-decl name='__u32' type-id='f0981eeb' id='3f1a6b60'/>
|
||||
<typedef-decl name='__s64' type-id='1eb56b1e' id='49659421'/>
|
||||
<typedef-decl name='__u64' type-id='3a47d82b' id='d3130597'/>
|
||||
<class-decl name='statx_timestamp' size-in-bits='128' is-struct='yes' visibility='default' id='94101016'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='tv_sec' type-id='49659421' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='tv_nsec' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='96'>
|
||||
<var-decl name='__reserved' type-id='3158a266' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='statx' size-in-bits='2048' is-struct='yes' visibility='default' id='720b04c5'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='stx_mask' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='32'>
|
||||
<var-decl name='stx_blksize' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='stx_attributes' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='stx_nlink' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='160'>
|
||||
<var-decl name='stx_uid' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='192'>
|
||||
<var-decl name='stx_gid' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='224'>
|
||||
<var-decl name='stx_mode' type-id='d315442e' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='240'>
|
||||
<var-decl name='__spare0' type-id='811205dc' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='256'>
|
||||
<var-decl name='stx_ino' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='320'>
|
||||
<var-decl name='stx_size' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='384'>
|
||||
<var-decl name='stx_blocks' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='448'>
|
||||
<var-decl name='stx_attributes_mask' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='512'>
|
||||
<var-decl name='stx_atime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='640'>
|
||||
<var-decl name='stx_btime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='768'>
|
||||
<var-decl name='stx_ctime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='896'>
|
||||
<var-decl name='stx_mtime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1024'>
|
||||
<var-decl name='stx_rdev_major' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1056'>
|
||||
<var-decl name='stx_rdev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1088'>
|
||||
<var-decl name='stx_dev_major' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1120'>
|
||||
<var-decl name='stx_dev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1152'>
|
||||
<var-decl name='stx_mnt_id' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1216'>
|
||||
<var-decl name='__spare2' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1280'>
|
||||
<var-decl name='__spare3' type-id='f63f23b9' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<pointer-type-def type-id='56fe4a37' size-in-bits='64' id='b6b61d2f'/>
|
||||
<qualified-type-def type-id='b6b61d2f' restrict='yes' id='3cad23cd'/>
|
||||
<pointer-type-def type-id='720b04c5' size-in-bits='64' id='936b8e35'/>
|
||||
<qualified-type-def type-id='936b8e35' restrict='yes' id='31d265b7'/>
|
||||
<function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='e75a27e9'/>
|
||||
<parameter type-id='3cad23cd'/>
|
||||
@ -1463,6 +1562,14 @@
|
||||
<parameter type-id='822cd80b'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='statx' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<parameter type-id='f0981eeb'/>
|
||||
<parameter type-id='31d265b7'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/timestamp.c' language='LANG_C99'>
|
||||
<typedef-decl name='nl_item' type-id='95e97e5e' id='03b79a94'/>
|
||||
@ -1487,6 +1594,89 @@
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/tunables.c' language='LANG_C99'>
|
||||
<enum-decl name='zfs_tunable_type_t' naming-typedef-id='f50b1525' id='56905369'>
|
||||
<underlying-type type-id='9cac1fee'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_INT' value='0'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_UINT' value='1'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_ULONG' value='2'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_U64' value='3'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_STRING' value='4'/>
|
||||
</enum-decl>
|
||||
<typedef-decl name='zfs_tunable_type_t' type-id='56905369' id='f50b1525'/>
|
||||
<enum-decl name='zfs_tunable_perm_t' naming-typedef-id='ada7336b' id='e80e6ebf'>
|
||||
<underlying-type type-id='9cac1fee'/>
|
||||
<enumerator name='ZFS_TUNABLE_PERM_ZMOD_RW' value='0'/>
|
||||
<enumerator name='ZFS_TUNABLE_PERM_ZMOD_RD' value='1'/>
|
||||
</enum-decl>
|
||||
<typedef-decl name='zfs_tunable_perm_t' type-id='e80e6ebf' id='ada7336b'/>
|
||||
<class-decl name='zfs_tunable' size-in-bits='320' is-struct='yes' visibility='default' id='1a97ee0e'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='zt_name' type-id='80f4b756' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='zt_varp' type-id='eaa32e2f' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='zt_varsz' type-id='b59d7dce' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='192'>
|
||||
<var-decl name='zt_type' type-id='f50b1525' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='224'>
|
||||
<var-decl name='zt_perm' type-id='ada7336b' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='256'>
|
||||
<var-decl name='zt_desc' type-id='80f4b756' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<typedef-decl name='zfs_tunable_t' type-id='1a97ee0e' id='12bf5c5e'/>
|
||||
<typedef-decl name='zfs_tunable_iter_t' type-id='7ef33f92' id='d8d5f4ab'/>
|
||||
<typedef-decl name='intmax_t' type-id='5b475db0' id='e104d842'/>
|
||||
<typedef-decl name='uintmax_t' type-id='04d82f4b' id='f8b828c9'/>
|
||||
<typedef-decl name='__intmax_t' type-id='bd54fe1a' id='5b475db0'/>
|
||||
<typedef-decl name='__uintmax_t' type-id='7359adad' id='04d82f4b'/>
|
||||
<qualified-type-def type-id='12bf5c5e' const='yes' id='180e47ee'/>
|
||||
<pointer-type-def type-id='180e47ee' size-in-bits='64' id='a27af98c'/>
|
||||
<pointer-type-def type-id='92f86508' size-in-bits='64' id='7ef33f92'/>
|
||||
<function-decl name='strtoimax' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='e104d842'/>
|
||||
</function-decl>
|
||||
<function-decl name='strtoumax' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='f8b828c9'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_lookup' mangled-name='zfs_tunable_lookup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_lookup'>
|
||||
<parameter type-id='80f4b756' name='name'/>
|
||||
<return type-id='a27af98c'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_set' mangled-name='zfs_tunable_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_set'>
|
||||
<parameter type-id='a27af98c' name='zt'/>
|
||||
<parameter type-id='80f4b756' name='val'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_get' mangled-name='zfs_tunable_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_get'>
|
||||
<parameter type-id='a27af98c' name='zt'/>
|
||||
<parameter type-id='26a90f95' name='val'/>
|
||||
<parameter type-id='b59d7dce' name='valsz'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_iter' mangled-name='zfs_tunable_iter' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_iter'>
|
||||
<parameter type-id='d8d5f4ab' name='cb'/>
|
||||
<parameter type-id='eaa32e2f' name='arg'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
<function-type size-in-bits='64' id='92f86508'>
|
||||
<parameter type-id='a27af98c'/>
|
||||
<parameter type-id='eaa32e2f'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libtpool/thread_pool.c' language='LANG_C99'>
|
||||
<array-type-def dimensions='1' type-id='49ef3ffd' size-in-bits='1024' id='a14403f5'>
|
||||
<subrange length='16' type-id='7359adad' id='848d0938'/>
|
||||
@ -4135,13 +4325,6 @@
|
||||
<parameter type-id='58603c44'/>
|
||||
<return type-id='9c313c2d'/>
|
||||
</function-decl>
|
||||
<function-decl name='zpool_prop_get_feature' mangled-name='zpool_prop_get_feature' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_prop_get_feature'>
|
||||
<parameter type-id='4c81de99'/>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<parameter type-id='26a90f95'/>
|
||||
<parameter type-id='b59d7dce'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_iter_snapshots_v2' mangled-name='zfs_iter_snapshots_v2' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_iter_snapshots_v2'>
|
||||
<parameter type-id='9200a744'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
@ -6630,6 +6813,13 @@
|
||||
<parameter type-id='e4378506' name='plp'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zpool_prop_get_feature' mangled-name='zpool_prop_get_feature' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_prop_get_feature'>
|
||||
<parameter type-id='4c81de99' name='zhp'/>
|
||||
<parameter type-id='80f4b756' name='propname'/>
|
||||
<parameter type-id='26a90f95' name='buf'/>
|
||||
<parameter type-id='b59d7dce' name='len'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zpool_get_state' mangled-name='zpool_get_state' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zpool_get_state'>
|
||||
<parameter type-id='4c81de99' name='zhp'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
|
||||
@ -222,6 +222,10 @@
|
||||
<elf-symbol name='spl_pagesize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='strlcat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='strlcpy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_iter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_lookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
<elf-symbol name='zfs_tunable_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
||||
</elf-function-symbols>
|
||||
<abi-instr address-size='64' path='lib/libspl/assert.c' language='LANG_C99'>
|
||||
<class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='d5027220'>
|
||||
@ -613,7 +617,6 @@
|
||||
<array-type-def dimensions='1' type-id='de572c22' size-in-bits='1472' id='6d3c2f42'>
|
||||
<subrange length='23' type-id='7359adad' id='fdd0f594'/>
|
||||
</array-type-def>
|
||||
<type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/>
|
||||
<array-type-def dimensions='1' type-id='3a47d82b' size-in-bits='256' id='a133ec23'>
|
||||
<subrange length='4' type-id='7359adad' id='16fe7105'/>
|
||||
</array-type-def>
|
||||
@ -974,8 +977,6 @@
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/os/linux/gethostid.c' language='LANG_C99'>
|
||||
<type-decl name='long long unsigned int' size-in-bits='64' id='3a47d82b'/>
|
||||
<pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
|
||||
<qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
|
||||
<function-decl name='strtoull' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
@ -987,6 +988,13 @@
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/os/linux/getmntany.c' language='LANG_C99'>
|
||||
<array-type-def dimensions='1' type-id='d315442e' size-in-bits='16' id='811205dc'>
|
||||
<subrange length='1' type-id='7359adad' id='52f813b4'/>
|
||||
</array-type-def>
|
||||
<array-type-def dimensions='1' type-id='d3130597' size-in-bits='768' id='f63f23b9'>
|
||||
<subrange length='12' type-id='7359adad' id='84827bdc'/>
|
||||
</array-type-def>
|
||||
<type-decl name='long long int' size-in-bits='64' id='1eb56b1e'/>
|
||||
<class-decl name='mnttab' size-in-bits='256' is-struct='yes' visibility='default' id='1b055409'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='mnt_special' type-id='26a90f95' visibility='default'/>
|
||||
@ -1021,6 +1029,93 @@
|
||||
<var-decl name='mnt_minor' type-id='3502e3ff' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<typedef-decl name='__u16' type-id='8efea9e5' id='d315442e'/>
|
||||
<typedef-decl name='__s32' type-id='95e97e5e' id='3158a266'/>
|
||||
<typedef-decl name='__u32' type-id='f0981eeb' id='3f1a6b60'/>
|
||||
<typedef-decl name='__s64' type-id='1eb56b1e' id='49659421'/>
|
||||
<typedef-decl name='__u64' type-id='3a47d82b' id='d3130597'/>
|
||||
<class-decl name='statx_timestamp' size-in-bits='128' is-struct='yes' visibility='default' id='94101016'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='tv_sec' type-id='49659421' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='tv_nsec' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='96'>
|
||||
<var-decl name='__reserved' type-id='3158a266' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='statx' size-in-bits='2048' is-struct='yes' visibility='default' id='720b04c5'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='stx_mask' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='32'>
|
||||
<var-decl name='stx_blksize' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='stx_attributes' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='stx_nlink' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='160'>
|
||||
<var-decl name='stx_uid' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='192'>
|
||||
<var-decl name='stx_gid' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='224'>
|
||||
<var-decl name='stx_mode' type-id='d315442e' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='240'>
|
||||
<var-decl name='__spare0' type-id='811205dc' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='256'>
|
||||
<var-decl name='stx_ino' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='320'>
|
||||
<var-decl name='stx_size' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='384'>
|
||||
<var-decl name='stx_blocks' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='448'>
|
||||
<var-decl name='stx_attributes_mask' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='512'>
|
||||
<var-decl name='stx_atime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='640'>
|
||||
<var-decl name='stx_btime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='768'>
|
||||
<var-decl name='stx_ctime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='896'>
|
||||
<var-decl name='stx_mtime' type-id='94101016' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1024'>
|
||||
<var-decl name='stx_rdev_major' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1056'>
|
||||
<var-decl name='stx_rdev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1088'>
|
||||
<var-decl name='stx_dev_major' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1120'>
|
||||
<var-decl name='stx_dev_minor' type-id='3f1a6b60' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1152'>
|
||||
<var-decl name='stx_mnt_id' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1216'>
|
||||
<var-decl name='__spare2' type-id='d3130597' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='1280'>
|
||||
<var-decl name='__spare3' type-id='f63f23b9' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<class-decl name='mntent' size-in-bits='320' is-struct='yes' visibility='default' id='56fe4a37'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='mnt_fsname' type-id='26a90f95' visibility='default'/>
|
||||
@ -1096,6 +1191,8 @@
|
||||
<pointer-type-def type-id='1b055409' size-in-bits='64' id='9d424d31'/>
|
||||
<pointer-type-def type-id='0bbec9cd' size-in-bits='64' id='62f7a03d'/>
|
||||
<qualified-type-def type-id='62f7a03d' restrict='yes' id='f1cadedf'/>
|
||||
<pointer-type-def type-id='720b04c5' size-in-bits='64' id='936b8e35'/>
|
||||
<qualified-type-def type-id='936b8e35' restrict='yes' id='31d265b7'/>
|
||||
<function-decl name='getmntent_r' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='e75a27e9'/>
|
||||
<parameter type-id='3cad23cd'/>
|
||||
@ -1107,15 +1204,18 @@
|
||||
<parameter type-id='822cd80b'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='strcmp' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='strerror' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='26a90f95'/>
|
||||
</function-decl>
|
||||
<function-decl name='statx' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<parameter type-id='f0981eeb'/>
|
||||
<parameter type-id='31d265b7'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='stat64' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='f1cadedf'/>
|
||||
@ -1258,6 +1358,96 @@
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libspl/tunables.c' language='LANG_C99'>
|
||||
<enum-decl name='zfs_tunable_type_t' naming-typedef-id='f50b1525' id='56905369'>
|
||||
<underlying-type type-id='9cac1fee'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_INT' value='0'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_UINT' value='1'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_ULONG' value='2'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_U64' value='3'/>
|
||||
<enumerator name='ZFS_TUNABLE_TYPE_STRING' value='4'/>
|
||||
</enum-decl>
|
||||
<typedef-decl name='zfs_tunable_type_t' type-id='56905369' id='f50b1525'/>
|
||||
<enum-decl name='zfs_tunable_perm_t' naming-typedef-id='ada7336b' id='e80e6ebf'>
|
||||
<underlying-type type-id='9cac1fee'/>
|
||||
<enumerator name='ZFS_TUNABLE_PERM_ZMOD_RW' value='0'/>
|
||||
<enumerator name='ZFS_TUNABLE_PERM_ZMOD_RD' value='1'/>
|
||||
</enum-decl>
|
||||
<typedef-decl name='zfs_tunable_perm_t' type-id='e80e6ebf' id='ada7336b'/>
|
||||
<class-decl name='zfs_tunable' size-in-bits='320' is-struct='yes' visibility='default' id='1a97ee0e'>
|
||||
<data-member access='public' layout-offset-in-bits='0'>
|
||||
<var-decl name='zt_name' type-id='80f4b756' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='64'>
|
||||
<var-decl name='zt_varp' type-id='eaa32e2f' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='128'>
|
||||
<var-decl name='zt_varsz' type-id='b59d7dce' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='192'>
|
||||
<var-decl name='zt_type' type-id='f50b1525' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='224'>
|
||||
<var-decl name='zt_perm' type-id='ada7336b' visibility='default'/>
|
||||
</data-member>
|
||||
<data-member access='public' layout-offset-in-bits='256'>
|
||||
<var-decl name='zt_desc' type-id='80f4b756' visibility='default'/>
|
||||
</data-member>
|
||||
</class-decl>
|
||||
<typedef-decl name='zfs_tunable_t' type-id='1a97ee0e' id='12bf5c5e'/>
|
||||
<typedef-decl name='zfs_tunable_iter_t' type-id='7ef33f92' id='d8d5f4ab'/>
|
||||
<typedef-decl name='intmax_t' type-id='5b475db0' id='e104d842'/>
|
||||
<typedef-decl name='uintmax_t' type-id='04d82f4b' id='f8b828c9'/>
|
||||
<typedef-decl name='__intmax_t' type-id='bd54fe1a' id='5b475db0'/>
|
||||
<typedef-decl name='__uintmax_t' type-id='7359adad' id='04d82f4b'/>
|
||||
<pointer-type-def type-id='26a90f95' size-in-bits='64' id='9b23c9ad'/>
|
||||
<qualified-type-def type-id='9b23c9ad' restrict='yes' id='8c85230f'/>
|
||||
<qualified-type-def type-id='12bf5c5e' const='yes' id='180e47ee'/>
|
||||
<pointer-type-def type-id='180e47ee' size-in-bits='64' id='a27af98c'/>
|
||||
<pointer-type-def type-id='92f86508' size-in-bits='64' id='7ef33f92'/>
|
||||
<function-decl name='strtoimax' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='e104d842'/>
|
||||
</function-decl>
|
||||
<function-decl name='strtoumax' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='9d26089a'/>
|
||||
<parameter type-id='8c85230f'/>
|
||||
<parameter type-id='95e97e5e'/>
|
||||
<return type-id='f8b828c9'/>
|
||||
</function-decl>
|
||||
<function-decl name='strcmp' visibility='default' binding='global' size-in-bits='64'>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<parameter type-id='80f4b756'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_lookup' mangled-name='zfs_tunable_lookup' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_lookup'>
|
||||
<parameter type-id='80f4b756' name='name'/>
|
||||
<return type-id='a27af98c'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_set' mangled-name='zfs_tunable_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_set'>
|
||||
<parameter type-id='a27af98c' name='zt'/>
|
||||
<parameter type-id='80f4b756' name='val'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_get' mangled-name='zfs_tunable_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_get'>
|
||||
<parameter type-id='a27af98c' name='zt'/>
|
||||
<parameter type-id='26a90f95' name='val'/>
|
||||
<parameter type-id='b59d7dce' name='valsz'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-decl>
|
||||
<function-decl name='zfs_tunable_iter' mangled-name='zfs_tunable_iter' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zfs_tunable_iter'>
|
||||
<parameter type-id='d8d5f4ab' name='cb'/>
|
||||
<parameter type-id='eaa32e2f' name='arg'/>
|
||||
<return type-id='48b5725f'/>
|
||||
</function-decl>
|
||||
<function-type size-in-bits='64' id='92f86508'>
|
||||
<parameter type-id='a27af98c'/>
|
||||
<parameter type-id='eaa32e2f'/>
|
||||
<return type-id='95e97e5e'/>
|
||||
</function-type>
|
||||
</abi-instr>
|
||||
<abi-instr address-size='64' path='lib/libzfs_core/libzfs_core.c' language='LANG_C99'>
|
||||
<array-type-def dimensions='1' type-id='03085adc' size-in-bits='192' id='083f8d58'>
|
||||
<subrange length='3' type-id='7359adad' id='56f209d2'/>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user