Add prototypes

Add prototypes/move prototypes to header files.

Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Closes #10470
This commit is contained in:
Arvind Sankar 2020-06-11 16:38:25 -04:00 committed by Brian Behlendorf
parent 60356b1a21
commit 0ce2de637b
26 changed files with 169 additions and 163 deletions

View File

@ -148,6 +148,7 @@ int no_memory(libzfs_handle_t *);
int zfs_standard_error(libzfs_handle_t *, int, const char *);
int zfs_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);
void zfs_setprop_error(libzfs_handle_t *, zfs_prop_t, int, char *);
int zpool_standard_error(libzfs_handle_t *, int, const char *);
int zpool_standard_error_fmt(libzfs_handle_t *, int, const char *, ...);

View File

@ -136,6 +136,7 @@ extern void zfs_nicenum(uint64_t, char *, size_t);
extern void zfs_nicenum_format(uint64_t, char *, size_t,
enum zfs_nicenum_format);
extern void zfs_nicetime(uint64_t, char *, size_t);
extern void zfs_niceraw(uint64_t, char *, size_t);
#define nicenum(num, buf, size) zfs_nicenum(num, buf, size)

View File

@ -27,4 +27,7 @@
#define _SYS_VDEV_OS_H
extern int vdev_label_write_pad2(vdev_t *vd, const char *buf, size_t size);
extern int vdev_geom_read_pool_label(const char *name, nvlist_t ***configs,
uint64_t *count);
#endif

View File

@ -153,6 +153,9 @@ typedef struct zfid_long {
extern uint_t zfs_fsyncer_key;
extern int zfs_super_owner;
extern void zfs_init(void);
extern void zfs_fini(void);
extern int zfs_suspend_fs(zfsvfs_t *zfsvfs);
extern int zfs_resume_fs(zfsvfs_t *zfsvfs, struct dsl_dataset *ds);
extern int zfs_end_fs(zfsvfs_t *zfsvfs, struct dsl_dataset *ds);

View File

@ -104,27 +104,45 @@
trace_zfs_##name((uintptr_t)(arg1), (uintptr_t)(arg2), \
(uintptr_t)(arg3), (uintptr_t)(arg4))
#define PROTO_DTRACE_PROBE(name) \
noinline void trace_zfs_##name(void)
#define PROTO_DTRACE_PROBE1(name) \
noinline void trace_zfs_##name(uintptr_t)
#define PROTO_DTRACE_PROBE2(name) \
noinline void trace_zfs_##name(uintptr_t, uintptr_t)
#define PROTO_DTRACE_PROBE3(name) \
noinline void trace_zfs_##name(uintptr_t, uintptr_t, \
uintptr_t)
#define PROTO_DTRACE_PROBE4(name) \
noinline void trace_zfs_##name(uintptr_t, uintptr_t, \
uintptr_t, uintptr_t)
#if defined(CREATE_TRACE_POINTS)
#define FUNC_DTRACE_PROBE(name) \
PROTO_DTRACE_PROBE(name); \
noinline void trace_zfs_##name(void) { } \
EXPORT_SYMBOL(trace_zfs_##name)
#define FUNC_DTRACE_PROBE1(name) \
PROTO_DTRACE_PROBE1(name); \
noinline void trace_zfs_##name(uintptr_t arg1) { } \
EXPORT_SYMBOL(trace_zfs_##name)
#define FUNC_DTRACE_PROBE2(name) \
PROTO_DTRACE_PROBE2(name); \
noinline void trace_zfs_##name(uintptr_t arg1, \
uintptr_t arg2) { } \
EXPORT_SYMBOL(trace_zfs_##name)
#define FUNC_DTRACE_PROBE3(name) \
PROTO_DTRACE_PROBE3(name); \
noinline void trace_zfs_##name(uintptr_t arg1, \
uintptr_t arg2, uintptr_t arg3) { } \
EXPORT_SYMBOL(trace_zfs_##name)
#define FUNC_DTRACE_PROBE4(name) \
PROTO_DTRACE_PROBE4(name); \
noinline void trace_zfs_##name(uintptr_t arg1, \
uintptr_t arg2, uintptr_t arg3, uintptr_t arg4) { } \
EXPORT_SYMBOL(trace_zfs_##name)
@ -146,19 +164,6 @@ EXPORT_SYMBOL(trace_zfs_##name)
#else /* CREATE_TRACE_POINTS */
#define PROTO_DTRACE_PROBE(name) \
noinline void trace_zfs_##name(void)
#define PROTO_DTRACE_PROBE1(name) \
noinline void trace_zfs_##name(uintptr_t)
#define PROTO_DTRACE_PROBE2(name) \
noinline void trace_zfs_##name(uintptr_t, uintptr_t)
#define PROTO_DTRACE_PROBE3(name) \
noinline void trace_zfs_##name(uintptr_t, uintptr_t, \
uintptr_t)
#define PROTO_DTRACE_PROBE4(name) \
noinline void trace_zfs_##name(uintptr_t, uintptr_t, \
uintptr_t, uintptr_t)
#define DEFINE_DTRACE_PROBE(name) PROTO_DTRACE_PROBE(name)
#define DEFINE_DTRACE_PROBE1(name) PROTO_DTRACE_PROBE1(name)
#define DEFINE_DTRACE_PROBE2(name) PROTO_DTRACE_PROBE2(name)

View File

@ -195,6 +195,9 @@ typedef struct zfid_long {
#define SHORT_FID_LEN (sizeof (zfid_short_t) - sizeof (uint16_t))
#define LONG_FID_LEN (sizeof (zfid_long_t) - sizeof (uint16_t))
extern void zfs_init(void);
extern void zfs_fini(void);
extern int zfs_suspend_fs(zfsvfs_t *zfsvfs);
extern int zfs_resume_fs(zfsvfs_t *zfsvfs, struct dsl_dataset *ds);
extern int zfs_end_fs(zfsvfs_t *zfsvfs, struct dsl_dataset *ds);

View File

@ -15,6 +15,7 @@
extern ssize_t lcompat_sprintf(char *, size_t size, const char *, ...);
extern int64_t lcompat_strtoll(const char *, char **);
extern int64_t lcompat_pow(int64_t, int64_t);
extern int lcompat_hashnum(int64_t);
/*
** ==================================================================

View File

@ -133,6 +133,8 @@ typedef struct raidz_map {
#define RAIDZ_ORIGINAL_IMPL (INT_MAX)
extern const raidz_impl_ops_t vdev_raidz_scalar_impl;
extern boolean_t raidz_will_scalar_work(void);
#if defined(__x86_64) && defined(HAVE_SSE2) /* only x86_64 for now */
extern const raidz_impl_ops_t vdev_raidz_sse2_impl;
#endif

View File

@ -496,6 +496,7 @@ extern void zil_itx_assign(zilog_t *zilog, itx_t *itx, dmu_tx_t *tx);
extern void zil_async_to_sync(zilog_t *zilog, uint64_t oid);
extern void zil_commit(zilog_t *zilog, uint64_t oid);
extern void zil_commit_impl(zilog_t *zilog, uint64_t oid);
extern void zil_remove_async(zilog_t *zilog, uint64_t oid);
extern int zil_reset(const char *osname, void *txarg);
extern int zil_claim(struct dsl_pool *dp,

View File

@ -80,6 +80,11 @@ typedef struct umem_cache {
int cache_cflags;
} umem_cache_t;
/* Prototypes for functions to provide defaults for umem envvars */
const char *_umem_debug_init(void);
const char *_umem_options_init(void);
const char *_umem_logging_init(void);
static inline void *
umem_alloc(size_t size, int flags)
{

View File

@ -1722,114 +1722,6 @@ zfs_fix_auto_resv(zfs_handle_t *zhp, nvlist_t *nvl)
return (1);
}
void
zfs_setprop_error(libzfs_handle_t *hdl, zfs_prop_t prop, int err,
char *errbuf)
{
switch (err) {
case ENOSPC:
/*
* For quotas and reservations, ENOSPC indicates
* something different; setting a quota or reservation
* doesn't use any disk space.
*/
switch (prop) {
case ZFS_PROP_QUOTA:
case ZFS_PROP_REFQUOTA:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"size is less than current used or "
"reserved space"));
(void) zfs_error(hdl, EZFS_PROPSPACE, errbuf);
break;
case ZFS_PROP_RESERVATION:
case ZFS_PROP_REFRESERVATION:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"size is greater than available space"));
(void) zfs_error(hdl, EZFS_PROPSPACE, errbuf);
break;
default:
(void) zfs_standard_error(hdl, err, errbuf);
break;
}
break;
case EBUSY:
(void) zfs_standard_error(hdl, EBUSY, errbuf);
break;
case EROFS:
(void) zfs_error(hdl, EZFS_DSREADONLY, errbuf);
break;
case E2BIG:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property value too long"));
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
break;
case ENOTSUP:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"pool and or dataset must be upgraded to set this "
"property or value"));
(void) zfs_error(hdl, EZFS_BADVERSION, errbuf);
break;
case ERANGE:
if (prop == ZFS_PROP_COMPRESSION ||
prop == ZFS_PROP_DNODESIZE ||
prop == ZFS_PROP_RECORDSIZE) {
(void) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property setting is not allowed on "
"bootable datasets"));
(void) zfs_error(hdl, EZFS_NOTSUP, errbuf);
} else if (prop == ZFS_PROP_CHECKSUM ||
prop == ZFS_PROP_DEDUP) {
(void) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property setting is not allowed on "
"root pools"));
(void) zfs_error(hdl, EZFS_NOTSUP, errbuf);
} else {
(void) zfs_standard_error(hdl, err, errbuf);
}
break;
case EINVAL:
if (prop == ZPROP_INVAL) {
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
} else {
(void) zfs_standard_error(hdl, err, errbuf);
}
break;
case EACCES:
if (prop == ZFS_PROP_KEYLOCATION) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"keylocation may only be set on encryption roots"));
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
} else {
(void) zfs_standard_error(hdl, err, errbuf);
}
break;
case EOVERFLOW:
/*
* This platform can't address a volume this big.
*/
#ifdef _ILP32
if (prop == ZFS_PROP_VOLSIZE) {
(void) zfs_error(hdl, EZFS_VOLTOOBIG, errbuf);
break;
}
#endif
/* FALLTHROUGH */
default:
(void) zfs_standard_error(hdl, err, errbuf);
}
}
static boolean_t
zfs_is_namespace_prop(zfs_prop_t prop)
{

View File

@ -69,9 +69,6 @@
#include <sys/socket.h>
#include <sys/sha2.h>
/* in libzfs_dataset.c */
extern void zfs_setprop_error(libzfs_handle_t *, zfs_prop_t, int, char *);
static int zfs_receive_impl(libzfs_handle_t *, const char *, const char *,
recvflags_t *, int, const char *, nvlist_t *, avl_tree_t *, char **,
const char *, nvlist_t *);

View File

@ -481,6 +481,114 @@ zfs_standard_error_fmt(libzfs_handle_t *hdl, int error, const char *fmt, ...)
return (-1);
}
void
zfs_setprop_error(libzfs_handle_t *hdl, zfs_prop_t prop, int err,
char *errbuf)
{
switch (err) {
case ENOSPC:
/*
* For quotas and reservations, ENOSPC indicates
* something different; setting a quota or reservation
* doesn't use any disk space.
*/
switch (prop) {
case ZFS_PROP_QUOTA:
case ZFS_PROP_REFQUOTA:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"size is less than current used or "
"reserved space"));
(void) zfs_error(hdl, EZFS_PROPSPACE, errbuf);
break;
case ZFS_PROP_RESERVATION:
case ZFS_PROP_REFRESERVATION:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"size is greater than available space"));
(void) zfs_error(hdl, EZFS_PROPSPACE, errbuf);
break;
default:
(void) zfs_standard_error(hdl, err, errbuf);
break;
}
break;
case EBUSY:
(void) zfs_standard_error(hdl, EBUSY, errbuf);
break;
case EROFS:
(void) zfs_error(hdl, EZFS_DSREADONLY, errbuf);
break;
case E2BIG:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property value too long"));
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
break;
case ENOTSUP:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"pool and or dataset must be upgraded to set this "
"property or value"));
(void) zfs_error(hdl, EZFS_BADVERSION, errbuf);
break;
case ERANGE:
if (prop == ZFS_PROP_COMPRESSION ||
prop == ZFS_PROP_DNODESIZE ||
prop == ZFS_PROP_RECORDSIZE) {
(void) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property setting is not allowed on "
"bootable datasets"));
(void) zfs_error(hdl, EZFS_NOTSUP, errbuf);
} else if (prop == ZFS_PROP_CHECKSUM ||
prop == ZFS_PROP_DEDUP) {
(void) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"property setting is not allowed on "
"root pools"));
(void) zfs_error(hdl, EZFS_NOTSUP, errbuf);
} else {
(void) zfs_standard_error(hdl, err, errbuf);
}
break;
case EINVAL:
if (prop == ZPROP_INVAL) {
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
} else {
(void) zfs_standard_error(hdl, err, errbuf);
}
break;
case EACCES:
if (prop == ZFS_PROP_KEYLOCATION) {
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"keylocation may only be set on encryption roots"));
(void) zfs_error(hdl, EZFS_BADPROP, errbuf);
} else {
(void) zfs_standard_error(hdl, err, errbuf);
}
break;
case EOVERFLOW:
/*
* This platform can't address a volume this big.
*/
#ifdef _ILP32
if (prop == ZFS_PROP_VOLSIZE) {
(void) zfs_error(hdl, EZFS_VOLTOOBIG, errbuf);
break;
}
#endif
/* FALLTHROUGH */
default:
(void) zfs_standard_error(hdl, err, errbuf);
}
}
int
zpool_standard_error(libzfs_handle_t *hdl, int error, const char *msg)
{

View File

@ -25,18 +25,6 @@
#if defined(__x86_64)
#include <sys/simd.h>
/* These functions are used to execute amd64 instructions for AMD or Intel: */
extern int rijndael_key_setup_enc_amd64(uint32_t rk[],
const uint32_t cipherKey[], int keyBits);
extern int rijndael_key_setup_dec_amd64(uint32_t rk[],
const uint32_t cipherKey[], int keyBits);
extern void aes_encrypt_amd64(const uint32_t rk[], int Nr,
const uint32_t pt[4], uint32_t ct[4]);
extern void aes_decrypt_amd64(const uint32_t rk[], int Nr,
const uint32_t ct[4], uint32_t pt[4]);
#include <aes/aes_impl.h>
/*

View File

@ -12,14 +12,6 @@
#include <sys/skein.h> /* get the Skein API definitions */
#include "skein_impl.h" /* get internal definitions */
/* External function to process blkCnt (nonzero) full block(s) of data. */
void Skein_256_Process_Block(Skein_256_Ctxt_t *ctx, const uint8_t *blkPtr,
size_t blkCnt, size_t byteCntAdd);
void Skein_512_Process_Block(Skein_512_Ctxt_t *ctx, const uint8_t *blkPtr,
size_t blkCnt, size_t byteCntAdd);
void Skein1024_Process_Block(Skein1024_Ctxt_t *ctx, const uint8_t *blkPtr,
size_t blkCnt, size_t byteCntAdd);
/* 256-bit Skein */
/* init the context for a straight hashing operation */
int

View File

@ -281,4 +281,12 @@ extern const uint64_t SKEIN1024_IV_384[];
extern const uint64_t SKEIN1024_IV_512[];
extern const uint64_t SKEIN1024_IV_1024[];
/* Functions to process blkCnt (nonzero) full block(s) of data. */
void Skein_256_Process_Block(Skein_256_Ctxt_t *ctx, const uint8_t *blkPtr,
size_t blkCnt, size_t byteCntAdd);
void Skein_512_Process_Block(Skein_512_Ctxt_t *ctx, const uint8_t *blkPtr,
size_t blkCnt, size_t byteCntAdd);
void Skein1024_Process_Block(Skein1024_Ctxt_t *ctx, const uint8_t *blkPtr,
size_t blkCnt, size_t byteCntAdd);
#endif /* _SKEIN_IMPL_H_ */

View File

@ -195,6 +195,16 @@ struct aes_impl_ops {
extern const aes_impl_ops_t aes_generic_impl;
#if defined(__x86_64)
extern const aes_impl_ops_t aes_x86_64_impl;
/* These functions are used to execute amd64 instructions for AMD or Intel: */
extern int rijndael_key_setup_enc_amd64(uint32_t rk[],
const uint32_t cipherKey[], int keyBits);
extern int rijndael_key_setup_dec_amd64(uint32_t rk[],
const uint32_t cipherKey[], int keyBits);
extern void aes_encrypt_amd64(const uint32_t rk[], int Nr,
const uint32_t pt[4], uint32_t ct[4]);
extern void aes_decrypt_amd64(const uint32_t rk[], int Nr,
const uint32_t ct[4], uint32_t pt[4]);
#endif
#if defined(__x86_64) && defined(HAVE_AES)
extern const aes_impl_ops_t aes_aesni_impl;

View File

@ -281,8 +281,6 @@ union luai_Cast { double l_d; LUA_INT32 l_p[2]; };
#if defined(ltable_c) && !defined(luai_hashnum)
extern int lcompat_hashnum(int64_t);
#define luai_hashnum(i,n) (i = lcompat_hashnum(n))
#endif

View File

@ -159,7 +159,7 @@ typedef struct ace_list {
* returns (-1 = less than, 0 = equal, 1 = greater than
*/
void
ksort(caddr_t v, int n, int s, int (*f)())
ksort(caddr_t v, int n, int s, int (*f)(void *, void *))
{
int g, i, j, ii;
unsigned int *p1, *p2;

View File

@ -52,7 +52,8 @@ typedef struct callb {
char c_flag; /* info about the callb state */
uchar_t c_class; /* this callb's class */
kcondvar_t c_done_cv; /* signal callb completion */
boolean_t (*c_func)(); /* cb function: returns true if ok */
boolean_t (*c_func)(void *, int);
/* cb function: returns true if ok */
void *c_arg; /* arg to c_func */
char c_name[CB_MAXNAME+1]; /* debug:max func name length */
} callb_t;

View File

@ -106,11 +106,6 @@ SYSCTL_INT(_vfs_zfs_version, OID_AUTO, ioctl, CTLFLAG_RD, &zfs_version_ioctl,
static struct cdev *zfsdev;
extern void zfs_init(void);
extern void zfs_fini(void);
extern void zfs_ioctl_init(void);
static struct root_hold_token *zfs_root_token;
extern uint_t rrw_tsd_key;

View File

@ -37,6 +37,7 @@
#include <sys/zil.h>
#include <sys/ddt.h>
#include <sys/vdev_impl.h>
#include <sys/vdev_os.h>
#include <sys/vdev_removal.h>
#include <sys/vdev_indirect_mapping.h>
#include <sys/vdev_indirect_births.h>
@ -72,9 +73,6 @@
#include "zfs_prop.h"
#include "zfs_comutil.h"
extern int vdev_geom_read_pool_label(const char *name, nvlist_t ***configs,
uint64_t *count);
static nvlist_t *
spa_generate_rootconf(const char *name)
{

View File

@ -32,6 +32,7 @@
#include <sys/spa.h>
#include <sys/spa_impl.h>
#include <sys/vdev_impl.h>
#include <sys/vdev_os.h>
#include <sys/fs/zfs.h>
#include <sys/zio.h>
#include <geom/geom.h>

View File

@ -31,8 +31,6 @@
#include <sys/vdev_raidz_impl.h>
#include <sys/simd.h>
extern boolean_t raidz_will_scalar_work(void);
/* Opaque implementation with NULL methods to represent original methods */
static const raidz_impl_ops_t vdev_raidz_original_impl = {
.name = "original",

View File

@ -222,9 +222,6 @@
kmutex_t zfsdev_state_lock;
zfsdev_state_t *zfsdev_state_list;
extern void zfs_init(void);
extern void zfs_fini(void);
/*
* Limit maximum nvlist size. We don't want users passing in insane values
* for zc->zc_nvlist_src_size, since we will need to allocate that much memory.

View File

@ -408,8 +408,6 @@ zfs_log_create(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype,
zil_itx_assign(zilog, itx, tx);
}
void zil_remove_async(zilog_t *zilog, uint64_t oid);
/*
* Handles both TX_REMOVE and TX_RMDIR transactions.
*/