diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2020-02-27 12:32:44 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2020-02-27 12:32:44 +0000 |
commit | faeaa26e163d52687050158b42d206b04398000f (patch) | |
tree | 4d93980f007cdf66a86b6224453eb671e934d46e /usr/src | |
parent | 5cbb72a848d670186cc8a950e564d70c7208f889 (diff) | |
parent | 3e8c7f16168b2700c28b981ab66ca8ff755c5a5d (diff) | |
download | illumos-joyent-faeaa26e163d52687050158b42d206b04398000f.tar.gz |
[illumos-gate merge]
commit 3e8c7f16168b2700c28b981ab66ca8ff755c5a5d
12333 loader: replace zfs_alloc/zfs_free with malloc/free
commit 1743a90d9abccc6cd1e57ef89729c674b859fc6e
12099 fm: cast between incompatible function types
Diffstat (limited to 'usr/src')
21 files changed, 196 insertions, 164 deletions
diff --git a/usr/src/boot/Makefile.version b/usr/src/boot/Makefile.version index dd8b6a292d..600cec3537 100644 --- a/usr/src/boot/Makefile.version +++ b/usr/src/boot/Makefile.version @@ -33,4 +33,4 @@ LOADER_VERSION = 1.1 # Use date like formatting here, YYYY.MM.DD.XX, without leading zeroes. # The version is processed from left to right, the version number can only # be increased. -BOOT_VERSION = $(LOADER_VERSION)-2020.02.21.1 +BOOT_VERSION = $(LOADER_VERSION)-2020.02.26.1 diff --git a/usr/src/boot/lib/libstand/zfs/zfsimpl.c b/usr/src/boot/lib/libstand/zfs/zfsimpl.c index c291ef771e..a5c0d4fc73 100644 --- a/usr/src/boot/lib/libstand/zfs/zfsimpl.c +++ b/usr/src/boot/lib/libstand/zfs/zfsimpl.c @@ -137,9 +137,6 @@ static spa_list_t zfs_pools; static const dnode_phys_t *dnode_cache_obj; static uint64_t dnode_cache_bn; static char *dnode_cache_buf; -static char *zfs_temp_buf, *zfs_temp_end, *zfs_temp_ptr; - -#define TEMP_SIZE (1024 * 1024) static int zio_read(const spa_t *spa, const blkptr_t *bp, void *buf); static int zfs_get_root(const spa_t *spa, uint64_t *objid); @@ -162,38 +159,11 @@ zfs_init(void) STAILQ_INIT(&zfs_vdevs); STAILQ_INIT(&zfs_pools); - zfs_temp_buf = malloc(TEMP_SIZE); - zfs_temp_end = zfs_temp_buf + TEMP_SIZE; - zfs_temp_ptr = zfs_temp_buf; dnode_cache_buf = malloc(SPA_MAXBLOCKSIZE); zfs_init_crc(); } -static void * -zfs_alloc(size_t size) -{ - char *ptr; - - if (zfs_temp_ptr + size > zfs_temp_end) { - panic("ZFS: out of temporary buffer space"); - } - ptr = zfs_temp_ptr; - zfs_temp_ptr += size; - - return (ptr); -} - -static void -zfs_free(void *ptr, size_t size) -{ - - zfs_temp_ptr -= size; - if (zfs_temp_ptr != ptr) { - panic("ZFS: zfs_alloc()/zfs_free() mismatch"); - } -} - static int xdr_int(const unsigned char **xdr, int *ip) { @@ -2151,17 +2121,20 @@ zio_read(const spa_t *spa, const blkptr_t *bp, void *buf) ASSERT(size <= BPE_PAYLOAD_SIZE); if (cpfunc != ZIO_COMPRESS_OFF) - pbuf = zfs_alloc(size); + pbuf = malloc(size); else pbuf = buf; + if (pbuf == NULL) + return (ENOMEM); + decode_embedded_bp_compressed(bp, pbuf); error = 0; if (cpfunc != ZIO_COMPRESS_OFF) { error = zio_decompress_data(cpfunc, pbuf, size, buf, BP_GET_LSIZE(bp)); - zfs_free(pbuf, size); + free(pbuf); } if (error != 0) printf("ZFS: i/o error - unable to decompress " @@ -2198,10 +2171,15 @@ zio_read(const spa_t *spa, const blkptr_t *bp, void *buf) size = P2ROUNDUP(size, align); } if (size != BP_GET_PSIZE(bp) || cpfunc != ZIO_COMPRESS_OFF) - pbuf = zfs_alloc(size); + pbuf = malloc(size); else pbuf = buf; + if (pbuf == NULL) { + error = ENOMEM; + break; + } + if (DVA_GET_GANG(dva)) error = zio_read_gang(spa, bp, pbuf); else @@ -2214,12 +2192,13 @@ zio_read(const spa_t *spa, const blkptr_t *bp, void *buf) bcopy(pbuf, buf, BP_GET_PSIZE(bp)); } if (buf != pbuf) - zfs_free(pbuf, size); + free(pbuf); if (error == 0) break; } if (error != 0) printf("ZFS: i/o error - all block copies unavailable\n"); + return (error); } @@ -3425,10 +3404,14 @@ zfs_dnode_stat(const spa_t *spa, dnode_phys_t *dn, struct stat *sb) int error; size = BP_GET_LSIZE(bp); - buf = zfs_alloc(size); - error = zio_read(spa, bp, buf); + buf = malloc(size); + if (buf == NULL) + error = ENOMEM; + else + error = zio_read(spa, bp, buf); + if (error != 0) { - zfs_free(buf, size); + free(buf); return (error); } sahdrp = buf; @@ -3445,8 +3428,7 @@ zfs_dnode_stat(const spa_t *spa, dnode_phys_t *dn, struct stat *sb) SA_GID_OFFSET); sb->st_size = *(uint64_t *)((char *)sahdrp + hdrsize + SA_SIZE_OFFSET); - if (buf != NULL) - zfs_free(buf, size); + free(buf); } return (0); @@ -3464,9 +3446,9 @@ zfs_dnode_readlink(const spa_t *spa, dnode_phys_t *dn, char *path, size_t psize) int hdrsize; char *p; - if (dn->dn_bonuslen != 0) + if (dn->dn_bonuslen != 0) { sahdrp = (sa_hdr_phys_t *)DN_BONUS(dn); - else { + } else { blkptr_t *bp; if ((dn->dn_flags & DNODE_FLAG_SPILL_BLKPTR) == 0) @@ -3474,10 +3456,13 @@ zfs_dnode_readlink(const spa_t *spa, dnode_phys_t *dn, char *path, size_t psize) bp = DN_SPILL_BLKPTR(dn); size = BP_GET_LSIZE(bp); - buf = zfs_alloc(size); - rc = zio_read(spa, bp, buf); + buf = malloc(size); + if (buf == NULL) + rc = ENOMEM; + else + rc = zio_read(spa, bp, buf); if (rc != 0) { - zfs_free(buf, size); + free(buf); return (rc); } sahdrp = buf; @@ -3485,8 +3470,7 @@ zfs_dnode_readlink(const spa_t *spa, dnode_phys_t *dn, char *path, size_t psize) hdrsize = SA_HDR_SIZE(sahdrp); p = (char *)((uintptr_t)sahdrp + hdrsize + SA_SYMLINK_OFFSET); memcpy(path, p, psize); - if (buf != NULL) - zfs_free(buf, size); + free(buf); return (0); } /* diff --git a/usr/src/boot/sys/cddl/boot/zfs/zfssubr.c b/usr/src/boot/sys/cddl/boot/zfs/zfssubr.c index 0d509ed4a1..d4bcb9ac06 100644 --- a/usr/src/boot/sys/cddl/boot/zfs/zfssubr.c +++ b/usr/src/boot/sys/cddl/boot/zfs/zfssubr.c @@ -36,9 +36,6 @@ static uint64_t zfs_crc64_table[256]; #define ASSERT0(x) ((void)0) #define ASSERT(x) ((void)0) -#define kmem_alloc(size, flag) zfs_alloc((size)) -#define kmem_free(ptr, size) zfs_free((ptr), (size)) - static void zfs_init_crc(void) { @@ -377,9 +374,6 @@ zap_hash(uint64_t salt, const char *name) return (crc); } -static void *zfs_alloc(size_t size); -static void zfs_free(void *ptr, size_t size); - typedef struct raidz_col { uint64_t rc_devidx; /* child device index for I/O */ uint64_t rc_offset; /* device offset */ @@ -982,7 +976,11 @@ vdev_raidz_matrix_reconstruct(raidz_map_t *rm, int n, int nmissing, log = 0; /* gcc */ psize = sizeof (invlog[0][0]) * n * nmissing; - p = zfs_alloc(psize); + p = malloc(psize); + if (p == NULL) { + printf("Out of memory\n"); + return; + } for (pp = p, i = 0; i < nmissing; i++) { invlog[i] = pp; @@ -1038,7 +1036,7 @@ vdev_raidz_matrix_reconstruct(raidz_map_t *rm, int n, int nmissing, } } - zfs_free(p, psize); + free(p); } static int @@ -1099,7 +1097,11 @@ vdev_raidz_reconstruct_general(raidz_map_t *rm, int *tgts, int ntgts) psize = (sizeof (rows[0][0]) + sizeof (invrows[0][0])) * nmissing_rows * n + sizeof (used[0]) * n; - p = kmem_alloc(psize, KM_SLEEP); + p = malloc(psize); + if (p == NULL) { + printf("Out of memory\n"); + return (code); + } for (pp = p, i = 0; i < nmissing_rows; i++) { rows[i] = pp; @@ -1142,7 +1144,7 @@ vdev_raidz_reconstruct_general(raidz_map_t *rm, int *tgts, int ntgts) vdev_raidz_matrix_reconstruct(rm, n, nmissing_rows, missing_rows, invrows, used); - kmem_free(p, psize); + free(p); return (code); } @@ -1215,7 +1217,9 @@ vdev_raidz_map_alloc(void *data, off_t offset, size_t size, uint64_t unit_shift, ASSERT3U(acols, <=, scols); - rm = zfs_alloc(offsetof(raidz_map_t, rm_col[scols])); + rm = malloc(offsetof(raidz_map_t, rm_col[scols])); + if (rm == NULL) + return (rm); rm->rm_cols = acols; rm->rm_scols = scols; @@ -1260,8 +1264,16 @@ vdev_raidz_map_alloc(void *data, off_t offset, size_t size, uint64_t unit_shift, ASSERT3U(rm->rm_asize - asize, ==, rm->rm_nskip << unit_shift); ASSERT3U(rm->rm_nskip, <=, nparity); - for (c = 0; c < rm->rm_firstdatacol; c++) - rm->rm_col[c].rc_data = zfs_alloc(rm->rm_col[c].rc_size); + for (c = 0; c < rm->rm_firstdatacol; c++) { + rm->rm_col[c].rc_data = malloc(rm->rm_col[c].rc_size); + if (rm->rm_col[c].rc_data == NULL) { + c++; + while (c != 0) + free(rm->rm_col[--c].rc_data); + free(rm); + return (NULL); + } + } rm->rm_col[c].rc_data = data; @@ -1313,9 +1325,9 @@ vdev_raidz_map_free(raidz_map_t *rm) int c; for (c = rm->rm_firstdatacol - 1; c >= 0; c--) - zfs_free(rm->rm_col[c].rc_data, rm->rm_col[c].rc_size); + free(rm->rm_col[c].rc_data); - zfs_free(rm, offsetof(raidz_map_t, rm_col[rm->rm_scols])); + free(rm); } static vdev_t * @@ -1360,8 +1372,12 @@ raidz_parity_verify(raidz_map_t *rm) rc = &rm->rm_col[c]; if (!rc->rc_tried || rc->rc_error != 0) continue; - orig[c] = zfs_alloc(rc->rc_size); - bcopy(rc->rc_data, orig[c], rc->rc_size); + orig[c] = malloc(rc->rc_size); + if (orig[c] != NULL) { + bcopy(rc->rc_data, orig[c], rc->rc_size); + } else { + printf("Out of memory\n"); + } } vdev_raidz_generate_parity(rm); @@ -1370,11 +1386,12 @@ raidz_parity_verify(raidz_map_t *rm) rc = &rm->rm_col[c]; if (!rc->rc_tried || rc->rc_error != 0) continue; - if (bcmp(orig[c], rc->rc_data, rc->rc_size) != 0) { + if (orig[c] == NULL || + bcmp(orig[c], rc->rc_data, rc->rc_size) != 0) { rc->rc_error = ECKSUM; ret++; } - zfs_free(orig[c], rc->rc_size); + free(orig[c]); } return (ret); @@ -1443,7 +1460,11 @@ vdev_raidz_combrec(const spa_t *spa, raidz_map_t *rm, const blkptr_t *bp, ASSERT(orig[i] != NULL); } - orig[n - 1] = zfs_alloc(rm->rm_col[0].rc_size); + orig[n - 1] = malloc(rm->rm_col[0].rc_size); + if (orig[n - 1] == NULL) { + ret = ENOMEM; + goto done; + } current = 0; next = tgts[current]; @@ -1526,7 +1547,7 @@ vdev_raidz_combrec(const spa_t *spa, raidz_map_t *rm, const blkptr_t *bp, n--; done: for (i = n - 1; i >= 0; i--) { - zfs_free(orig[i], rm->rm_col[0].rc_size); + free(orig[i]); } return (ret); @@ -1555,6 +1576,8 @@ vdev_raidz_read(vdev_t *vd, const blkptr_t *bp, void *data, rm = vdev_raidz_map_alloc(data, offset, bytes, tvd->v_ashift, vd->v_nchildren, vd->v_nparity); + if (rm == NULL) + return (ENOMEM); /* * Iterate over the columns in reverse order so that we hit the parity diff --git a/usr/src/cmd/fm/fmd/common/fmd.c b/usr/src/cmd/fm/fmd/common/fmd.c index 8177c81049..7369a68047 100644 --- a/usr/src/cmd/fm/fmd/common/fmd.c +++ b/usr/src/cmd/fm/fmd/common/fmd.c @@ -169,8 +169,8 @@ fmd_trmode_set(fmd_conf_param_t *pp, const char *value) else return (fmd_set_errno(EFMD_CONF_INVAL)); - fmd.d_thr_trace = (void (*)())func; - pp->cp_value.cpv_ptr = (void *)func; + fmd.d_thr_trace = func; + pp->cp_value.cpv_ptr = func; return (0); } diff --git a/usr/src/cmd/fm/fmd/common/fmd.h b/usr/src/cmd/fm/fmd/common/fmd.h index 272fa3c305..fa2d4710b7 100644 --- a/usr/src/cmd/fm/fmd/common/fmd.h +++ b/usr/src/cmd/fm/fmd/common/fmd.h @@ -36,6 +36,7 @@ extern "C" { #include <fmd_list.h> #include <fmd_time.h> #include <fmd_api.h> +#include <fmd_trace.h> struct fmd_conf; /* see <fmd_conf.h> */ struct fmd_dispq; /* see <fmd_dispq.h> */ @@ -89,7 +90,7 @@ typedef struct fmd { pthread_mutex_t d_thr_lock; /* lock for d_thr_list */ fmd_list_t d_thr_list; /* list of all fmd_thread_t's */ - void (*d_thr_trace)(); /* thread trace buffer function */ + fmd_tracebuf_f *d_thr_trace; /* thread trace buffer function */ int d_thr_sig; /* cached copy of client.thrsig */ pthread_mutex_t d_mod_lock; /* lock for d_mod_list */ diff --git a/usr/src/cmd/fm/fmd/common/fmd_api.c b/usr/src/cmd/fm/fmd/common/fmd_api.c index 008a55c90f..594e41896d 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_api.c +++ b/usr/src/cmd/fm/fmd/common/fmd_api.c @@ -1872,7 +1872,7 @@ fmd_doorthr_create(door_info_t *dip, void *(*crf)(void *), void *crarg, return (0); } - if ((new_tp = fmd_doorthread_create(mp, (fmd_thread_f *)crf, + if ((new_tp = fmd_doorthread_create(mp, (fmd_thread_f *)(uintptr_t)crf, crarg)) != NULL) { tid = new_tp->thr_tid; mp->mod_stats->ms_doorthrtotal.fmds_value.ui32++; diff --git a/usr/src/cmd/fm/fmd/common/fmd_case.c b/usr/src/cmd/fm/fmd/common/fmd_case.c index dff15220a7..9ffa939cd1 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_case.c +++ b/usr/src/cmd/fm/fmd/common/fmd_case.c @@ -1572,9 +1572,9 @@ fmd_case_rele_locked(fmd_case_t *cp) } int -fmd_case_insert_principal(fmd_case_t *cp, fmd_event_t *ep) +fmd_case_insert_principal(void *cp, fmd_event_t *ep) { - fmd_case_impl_t *cip = (fmd_case_impl_t *)cp; + fmd_case_impl_t *cip = cp; fmd_case_item_t *cit; fmd_event_t *oep; uint_t state; @@ -1611,9 +1611,9 @@ fmd_case_insert_principal(fmd_case_t *cp, fmd_event_t *ep) } int -fmd_case_insert_event(fmd_case_t *cp, fmd_event_t *ep) +fmd_case_insert_event(void *cp, fmd_event_t *ep) { - fmd_case_impl_t *cip = (fmd_case_impl_t *)cp; + fmd_case_impl_t *cip = cp; fmd_case_item_t *cit; uint_t state; int new; diff --git a/usr/src/cmd/fm/fmd/common/fmd_case.h b/usr/src/cmd/fm/fmd/common/fmd_case.h index 733826e91c..92b6a91de5 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_case.h +++ b/usr/src/cmd/fm/fmd/common/fmd_case.h @@ -130,8 +130,8 @@ extern void fmd_case_rele(fmd_case_t *); extern void fmd_case_rele_locked(fmd_case_t *); extern void fmd_case_update(fmd_case_t *); -extern int fmd_case_insert_principal(fmd_case_t *, fmd_event_t *); -extern int fmd_case_insert_event(fmd_case_t *, fmd_event_t *); +extern int fmd_case_insert_principal(void *, fmd_event_t *); +extern int fmd_case_insert_event(void *, fmd_event_t *); extern void fmd_case_insert_suspect(fmd_case_t *, nvlist_t *); extern void fmd_case_recreate_suspect(fmd_case_t *, nvlist_t *); diff --git a/usr/src/cmd/fm/fmd/common/fmd_ckpt.c b/usr/src/cmd/fm/fmd/common/fmd_ckpt.c index 4bae10f7b4..c923cbbb22 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_ckpt.c +++ b/usr/src/cmd/fm/fmd/common/fmd_ckpt.c @@ -894,7 +894,7 @@ fmd_ckpt_strptr(fmd_ckpt_t *ckp, fcf_stridx_t sid, const char *defstr) static void fmd_ckpt_restore_events(fmd_ckpt_t *ckp, fcf_secidx_t sid, - void (*func)(void *, fmd_event_t *), void *arg) + int (*func)(void *, fmd_event_t *), void *arg) { const fcf_event_t *fcfe; const fcf_sec_t *sp; @@ -942,7 +942,7 @@ fmd_ckpt_restore_events(fmd_ckpt_t *ckp, fcf_secidx_t sid, ep = fmd_event_recreate(FMD_EVT_PROTOCOL, &ftv, NULL, NULL, lp, fcfe->fcfe_offset, 0); fmd_event_hold(ep); - func(arg, ep); + (void) func(arg, ep); fmd_event_rele(ep); fcfe = (fcf_event_t *)((uintptr_t)fcfe + sp->fcfs_entsize); @@ -1050,10 +1050,10 @@ fmd_ckpt_restore_case(fmd_ckpt_t *ckp, fmd_module_t *mp, const fcf_sec_t *sp) } fmd_ckpt_restore_events(ckp, fcfc->fcfc_principal, - (void (*)(void *, fmd_event_t *))fmd_case_insert_principal, cp); + fmd_case_insert_principal, cp); fmd_ckpt_restore_events(ckp, fcfc->fcfc_events, - (void (*)(void *, fmd_event_t *))fmd_case_insert_event, cp); + fmd_case_insert_event, cp); /* * Once solved, treat suspects from resource cache as master copy. @@ -1105,7 +1105,7 @@ fmd_ckpt_restore_serd(fmd_ckpt_t *ckp, fmd_module_t *mp, const fcf_sec_t *sp) fmd_module_lock(mp); fmd_ckpt_restore_events(ckp, fcfd->fcfd_events, - (void (*)(void *, fmd_event_t *))fmd_serd_eng_record, + fmd_serd_eng_record, fmd_serd_eng_lookup(&mp->mod_serds, s)); fmd_module_unlock(mp); diff --git a/usr/src/cmd/fm/fmd/common/fmd_mdb.c b/usr/src/cmd/fm/fmd/common/fmd_mdb.c index 8ad141ab27..c24d0cee39 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_mdb.c +++ b/usr/src/cmd/fm/fmd/common/fmd_mdb.c @@ -208,8 +208,11 @@ trwalk_fini(mdb_walk_state_t *wsp) /*ARGSUSED*/ static int -trprint_msg(uintptr_t addr, const fmd_tracerec_t *trp, uintptr_t tid) +trprint_msg(uintptr_t addr, const void *arg, void *arg1) { + const fmd_tracerec_t *trp = arg; + uintptr_t tid = (uintptr_t)arg1; + if (tid == 0) mdb_printf("%3lu ", trp->tr_stack[trp->tr_depth]); else if (trp->tr_stack[trp->tr_depth] != tid) @@ -223,8 +226,10 @@ trprint_msg(uintptr_t addr, const fmd_tracerec_t *trp, uintptr_t tid) /*ARGSUSED*/ static int -trprint_cpp(uintptr_t addr, const fmd_tracerec_t *trp, uintptr_t tid) +trprint_cpp(uintptr_t addr, const void *arg, void *arg1) { + const fmd_tracerec_t *trp = arg; + uintptr_t tid = (uintptr_t)arg1; char file[64]; if (tid == 0) @@ -254,17 +259,19 @@ trprint_stack(const fmd_tracerec_t *trp) } static int -trprint_msg_stack(uintptr_t addr, const fmd_tracerec_t *trp, uintptr_t tid) +trprint_msg_stack(uintptr_t addr, const void *arg, void *arg1) { - int status = trprint_msg(addr, trp, tid); + const fmd_tracerec_t *trp = arg; + int status = trprint_msg(addr, trp, arg1); trprint_stack(trp); return (status); } static int -trprint_cpp_stack(uintptr_t addr, const fmd_tracerec_t *trp, uintptr_t tid) +trprint_cpp_stack(uintptr_t addr, const void *arg, void *arg1) { - int status = trprint_cpp(addr, trp, tid); + const fmd_tracerec_t *trp = arg; + int status = trprint_cpp(addr, trp, arg1); trprint_stack(trp); return (status); } @@ -272,7 +279,7 @@ trprint_cpp_stack(uintptr_t addr, const fmd_tracerec_t *trp, uintptr_t tid) static int fmd_trace(uintptr_t tid, uint_t flags, int argc, const mdb_arg_t *argv) { - int (*func)(uintptr_t, const fmd_tracerec_t *, uintptr_t); + int (*func)(uintptr_t, const void *, void *); uint_t opt_c = FALSE, opt_s = FALSE; if (mdb_getopts(argc, argv, @@ -293,7 +300,7 @@ fmd_trace(uintptr_t tid, uint_t flags, int argc, const mdb_arg_t *argv) func = opt_s ? trprint_msg_stack : trprint_msg; } - if (mdb_walk("fmd_trace", (mdb_walk_cb_t)func, (void *)tid) == -1) { + if (mdb_walk("fmd_trace", func, (void *)tid) == -1) { mdb_warn("failed to walk fmd_trace"); return (DCMD_ERR); } diff --git a/usr/src/cmd/fm/fmd/common/fmd_module.c b/usr/src/cmd/fm/fmd/common/fmd_module.c index ad3b8f424d..5fe1c701ce 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_module.c +++ b/usr/src/cmd/fm/fmd/common/fmd_module.c @@ -641,8 +641,7 @@ fmd_module_gc(fmd_module_t *mp) fmd_module_lock(mp); if ((info = mp->mod_info) != NULL) { - fmd_serd_hash_apply(&mp->mod_serds, - (fmd_serd_eng_f *)fmd_serd_eng_gc, NULL); + fmd_serd_hash_apply(&mp->mod_serds, fmd_serd_eng_gc, NULL); } fmd_module_unlock(mp); @@ -657,8 +656,7 @@ void fmd_module_trygc(fmd_module_t *mp) { if (fmd_module_trylock(mp)) { - fmd_serd_hash_apply(&mp->mod_serds, - (fmd_serd_eng_f *)fmd_serd_eng_gc, NULL); + fmd_serd_hash_apply(&mp->mod_serds, fmd_serd_eng_gc, NULL); fmd_module_unlock(mp); } } @@ -715,7 +713,7 @@ fmd_module_clrdirty(fmd_module_t *mp) if (mp->mod_flags & FMD_MOD_MDIRTY) { fmd_serd_hash_apply(&mp->mod_serds, - (fmd_serd_eng_f *)fmd_serd_eng_clrdirty, NULL); + fmd_serd_eng_clrdirty, NULL); fmd_buf_hash_commit(&mp->mod_bufs); } @@ -740,8 +738,7 @@ fmd_module_commit(fmd_module_t *mp) } if (mp->mod_flags & FMD_MOD_MDIRTY) { - fmd_serd_hash_apply(&mp->mod_serds, - (fmd_serd_eng_f *)fmd_serd_eng_commit, NULL); + fmd_serd_hash_apply(&mp->mod_serds, fmd_serd_eng_commit, NULL); fmd_buf_hash_commit(&mp->mod_bufs); } diff --git a/usr/src/cmd/fm/fmd/common/fmd_scheme.c b/usr/src/cmd/fm/fmd/common/fmd_scheme.c index 4ddad713a6..367ecde455 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_scheme.c +++ b/usr/src/cmd/fm/fmd/common/fmd_scheme.c @@ -142,21 +142,38 @@ fmd_scheme_fmd_unusable(nvlist_t *nvl) return (rv); } -/*ARGSUSED*/ static nvlist_t * -fmd_scheme_notranslate(nvlist_t *fmri, nvlist_t *auth) +fmd_scheme_notranslate(nvlist_t *fmri, nvlist_t *auth __unused) { (void) nvlist_xdup(fmri, &fmri, &fmd.d_nva); return (fmri); } -static long -fmd_scheme_notsup(void) +static ssize_t +fmd_scheme_notsup_nvl2str(nvlist_t *fmri __unused, char *arg1 __unused, + size_t arg2 __unused) +{ + return (fmd_set_errno(EFMD_FMRI_NOTSUP)); +} + +static int +fmd_scheme_notsup(nvlist_t *fmri __unused) { return (fmd_set_errno(EFMD_FMRI_NOTSUP)); } static int +fmd_scheme_notsup2(nvlist_t *fmri1 __unused, nvlist_t *fmri2 __unused) +{ + return (fmd_set_errno(EFMD_FMRI_NOTSUP)); +} + +static void +fmd_scheme_vnop(void) +{ +} + +static int fmd_scheme_nop(void) { return (0); @@ -167,29 +184,29 @@ fmd_scheme_nop(void) * the module, then this operation is implemented using the default function. */ static const fmd_scheme_ops_t _fmd_scheme_default_ops = { - (int (*)())fmd_scheme_nop, /* sop_init */ - (void (*)())fmd_scheme_nop, /* sop_fini */ - (ssize_t (*)())fmd_scheme_notsup, /* sop_nvl2str */ - (int (*)())fmd_scheme_nop, /* sop_expand */ - (int (*)())fmd_scheme_notsup, /* sop_present */ - (int (*)())fmd_scheme_notsup, /* sop_replaced */ - (int (*)())fmd_scheme_notsup, /* sop_service_state */ - (int (*)())fmd_scheme_notsup, /* sop_unusable */ - (int (*)())fmd_scheme_notsup, /* sop_contains */ - fmd_scheme_notranslate /* sop_translate */ + .sop_init = fmd_scheme_nop, + .sop_fini = fmd_scheme_vnop, + .sop_nvl2str = fmd_scheme_notsup_nvl2str, + .sop_expand = fmd_scheme_notsup, + .sop_present = fmd_scheme_notsup, + .sop_replaced = fmd_scheme_notsup, + .sop_service_state = fmd_scheme_notsup, + .sop_unusable = fmd_scheme_notsup, + .sop_contains = fmd_scheme_notsup2, + .sop_translate = fmd_scheme_notranslate }; static const fmd_scheme_ops_t _fmd_scheme_builtin_ops = { - (int (*)())fmd_scheme_nop, /* sop_init */ - (void (*)())fmd_scheme_nop, /* sop_fini */ - fmd_scheme_fmd_nvl2str, /* sop_nvl2str */ - (int (*)())fmd_scheme_nop, /* sop_expand */ - fmd_scheme_fmd_present, /* sop_present */ - fmd_scheme_fmd_replaced, /* sop_replaced */ - fmd_scheme_fmd_service_state, /* sop_service_state */ - fmd_scheme_fmd_unusable, /* sop_unusable */ - (int (*)())fmd_scheme_notsup, /* sop_contains */ - fmd_scheme_notranslate /* sop_translate */ + .sop_init = fmd_scheme_nop, + .sop_fini = fmd_scheme_vnop, + .sop_nvl2str = fmd_scheme_fmd_nvl2str, + .sop_expand = fmd_scheme_notsup, + .sop_present = fmd_scheme_fmd_present, + .sop_replaced = fmd_scheme_fmd_replaced, + .sop_service_state = fmd_scheme_fmd_service_state, + .sop_unusable = fmd_scheme_fmd_unusable, + .sop_contains = fmd_scheme_notsup2, + .sop_translate = fmd_scheme_notranslate }; /* diff --git a/usr/src/cmd/fm/fmd/common/fmd_serd.c b/usr/src/cmd/fm/fmd/common/fmd_serd.c index 166b565666..0c817ef07d 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_serd.c +++ b/usr/src/cmd/fm/fmd/common/fmd_serd.c @@ -24,8 +24,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <fmd_alloc.h> #include <fmd_string.h> #include <fmd_subr.h> @@ -189,8 +187,9 @@ fmd_serd_eng_contains(fmd_serd_eng_t *sgp, fmd_event_t *ep) } int -fmd_serd_eng_record(fmd_serd_eng_t *sgp, fmd_event_t *ep) +fmd_serd_eng_record(void *ptr, fmd_event_t *ep) { + fmd_serd_eng_t *sgp = ptr; fmd_serd_elem_t *sep, *oep; /* @@ -253,7 +252,7 @@ fmd_serd_eng_reset(fmd_serd_eng_t *sgp) } void -fmd_serd_eng_gc(fmd_serd_eng_t *sgp) +fmd_serd_eng_gc(fmd_serd_eng_t *sgp, void *arg __unused) { fmd_serd_elem_t *sep, *nep; hrtime_t hrt; @@ -275,7 +274,7 @@ fmd_serd_eng_gc(fmd_serd_eng_t *sgp) } void -fmd_serd_eng_commit(fmd_serd_eng_t *sgp) +fmd_serd_eng_commit(fmd_serd_eng_t *sgp, void *arg __unused) { fmd_serd_elem_t *sep; @@ -290,7 +289,7 @@ fmd_serd_eng_commit(fmd_serd_eng_t *sgp) } void -fmd_serd_eng_clrdirty(fmd_serd_eng_t *sgp) +fmd_serd_eng_clrdirty(fmd_serd_eng_t *sgp, void *arg __unused) { sgp->sg_flags &= ~FMD_SERD_DIRTY; } diff --git a/usr/src/cmd/fm/fmd/common/fmd_serd.h b/usr/src/cmd/fm/fmd/common/fmd_serd.h index 3841f91999..48190a9058 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_serd.h +++ b/usr/src/cmd/fm/fmd/common/fmd_serd.h @@ -27,8 +27,6 @@ #ifndef _FMD_SERD_H #define _FMD_SERD_H -#pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif @@ -75,14 +73,14 @@ extern fmd_serd_eng_t *fmd_serd_eng_lookup(fmd_serd_hash_t *, const char *); extern void fmd_serd_eng_delete(fmd_serd_hash_t *, const char *); extern int fmd_serd_eng_contains(fmd_serd_eng_t *, fmd_event_t *); -extern int fmd_serd_eng_record(fmd_serd_eng_t *, fmd_event_t *); +extern int fmd_serd_eng_record(void *, fmd_event_t *); extern int fmd_serd_eng_fired(fmd_serd_eng_t *); extern int fmd_serd_eng_empty(fmd_serd_eng_t *); extern void fmd_serd_eng_reset(fmd_serd_eng_t *); -extern void fmd_serd_eng_gc(fmd_serd_eng_t *); -extern void fmd_serd_eng_commit(fmd_serd_eng_t *); -extern void fmd_serd_eng_clrdirty(fmd_serd_eng_t *); +extern void fmd_serd_eng_gc(fmd_serd_eng_t *, void *); +extern void fmd_serd_eng_commit(fmd_serd_eng_t *, void*); +extern void fmd_serd_eng_clrdirty(fmd_serd_eng_t *, void*); #ifdef __cplusplus } diff --git a/usr/src/cmd/fm/fmd/common/fmd_thread.c b/usr/src/cmd/fm/fmd/common/fmd_thread.c index cb0cb0745d..5de69238b5 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_thread.c +++ b/usr/src/cmd/fm/fmd/common/fmd_thread.c @@ -41,7 +41,7 @@ fmd_thread_xcreate(fmd_module_t *mp, pthread_t tid) tp->thr_func = NULL; tp->thr_arg = NULL; tp->thr_trdata = fmd_trace_create(); - tp->thr_trfunc = (fmd_tracebuf_f *)fmd.d_thr_trace; + tp->thr_trfunc = fmd.d_thr_trace; tp->thr_errdepth = 0; tp->thr_isdoor = 0; @@ -81,7 +81,7 @@ fmd_thread_create_cmn(fmd_module_t *mp, fmd_thread_f *func, void *arg, tp->thr_func = func; tp->thr_arg = arg; tp->thr_trdata = fmd_trace_create(); - tp->thr_trfunc = (fmd_tracebuf_f *)fmd.d_thr_trace; + tp->thr_trfunc = fmd.d_thr_trace; tp->thr_errdepth = 0; tp->thr_isdoor = isdoor; diff --git a/usr/src/cmd/fm/fmd/common/fmd_time.c b/usr/src/cmd/fm/fmd/common/fmd_time.c index ace772a476..a735ba03bf 100644 --- a/usr/src/cmd/fm/fmd/common/fmd_time.c +++ b/usr/src/cmd/fm/fmd/common/fmd_time.c @@ -186,7 +186,7 @@ fmd_time_tod2hrt(hrtime_t hrt_base, const fmd_timeval_t *tod_base, * period between 'hrt' and 't0', therefore to check which one came first, we * test their subtraction against the highest bit of mask, if the bit is not * set, then 't0' is earlier. This is equivalent to - * ((hrt - t0) & mask) < ((mask + 1) / 2) + * ((hrt - t0) & mask) < ((mask + 1) / 2) */ hrtime_t fmd_time_ena2hrt(hrtime_t hrt, uint64_t ena) @@ -366,6 +366,11 @@ fmd_native_cancel(pthread_t tid) (void) pthread_kill(tid, SIGALRM); } +static void +fmd_time_vnop(void) +{ +} + static void * fmd_time_nop(void) { @@ -374,10 +379,10 @@ fmd_time_nop(void) const fmd_timeops_t fmd_timeops_native = { (void *(*)())fmd_time_nop, /* fto_init */ - (void (*)())fmd_time_nop, /* fto_fini */ + (void (*)())fmd_time_vnop, /* fto_fini */ gettimeofday, /* fto_gettimeofday */ gethrtime, /* fto_gethrtime */ - (void (*)())fmd_time_nop, /* fto_addhrtime */ + (void (*)())fmd_time_vnop, /* fto_addhrtime */ fmd_native_wait, /* fto_waithrtime */ fmd_native_cancel, /* fto_waitcancel */ }; diff --git a/usr/src/cmd/fm/fmdump/common/scheme.c b/usr/src/cmd/fm/fmdump/common/scheme.c index 425fbd302c..20cad01a50 100644 --- a/usr/src/cmd/fm/fmdump/common/scheme.c +++ b/usr/src/cmd/fm/fmdump/common/scheme.c @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> #include <sys/systeminfo.h> @@ -79,6 +77,11 @@ fmd_scheme_notsup(void) return (-1); } +static void +fmd_scheme_vnop(void) +{ +} + static int fmd_scheme_nop(void) { @@ -91,7 +94,7 @@ fmd_scheme_nop(void) */ static const fmd_scheme_ops_t _fmd_scheme_default_ops = { (int (*)())fmd_scheme_nop, /* sop_init */ - (void (*)())fmd_scheme_nop, /* sop_fini */ + (void (*)())fmd_scheme_vnop, /* sop_fini */ (ssize_t (*)())fmd_scheme_notsup, /* sop_nvl2str */ }; diff --git a/usr/src/lib/fm/libfmd_snmp/common/module.c b/usr/src/lib/fm/libfmd_snmp/common/module.c index 6f6161f366..0521cf40fb 100644 --- a/usr/src/lib/fm/libfmd_snmp/common/module.c +++ b/usr/src/lib/fm/libfmd_snmp/common/module.c @@ -270,9 +270,8 @@ modinfo_update(sunFmModule_update_ctx_t *update_ctx) return (SNMP_ERR_NOERROR); } -/*ARGSUSED*/ -static void -update_thread(void *arg) +__NORETURN static void * +update_thread(void *arg __unused) { /* * The current modinfo_update implementation offers minimal savings @@ -357,8 +356,7 @@ sunFmModuleTable_init(void) return (MIB_REGISTRATION_FAILED); } - if ((err = pthread_create(NULL, NULL, (void *(*)(void *))update_thread, - NULL)) != 0) { + if ((err = pthread_create(NULL, NULL, update_thread, NULL)) != 0) { (void) snmp_log(LOG_ERR, MODNAME_STR ": error creating update " "thread: %s\n", strerror(err)); return (MIB_REGISTRATION_FAILED); diff --git a/usr/src/lib/fm/libfmd_snmp/common/problem.c b/usr/src/lib/fm/libfmd_snmp/common/problem.c index dc1fc7a158..21835ec8a0 100644 --- a/usr/src/lib/fm/libfmd_snmp/common/problem.c +++ b/usr/src/lib/fm/libfmd_snmp/common/problem.c @@ -274,9 +274,8 @@ problem_update(sunFmProblem_update_ctx_t *update_ctx) return (SNMP_ERR_NOERROR); } -/*ARGSUSED*/ -static void -update_thread(void *arg) +__NORETURN static void * +update_thread(void *arg __unused) { /* * The current problem_update implementation offers minimal savings @@ -348,8 +347,7 @@ sunFmProblemTable_init(void) return (MIB_REGISTRATION_FAILED); } - if ((err = pthread_create(NULL, NULL, (void *(*)(void *))update_thread, - NULL)) != 0) { + if ((err = pthread_create(NULL, NULL, update_thread, NULL)) != 0) { (void) snmp_log(LOG_ERR, MODNAME_STR ": error creating update " "thread: %s\n", strerror(err)); return (MIB_REGISTRATION_FAILED); diff --git a/usr/src/lib/fm/libfmd_snmp/common/resource.c b/usr/src/lib/fm/libfmd_snmp/common/resource.c index 59e202337e..7cf3e1131c 100644 --- a/usr/src/lib/fm/libfmd_snmp/common/resource.c +++ b/usr/src/lib/fm/libfmd_snmp/common/resource.c @@ -265,9 +265,8 @@ rsrcinfo_update(sunFmResource_update_ctx_t *update_ctx) return (SNMP_ERR_NOERROR); } -/*ARGSUSED*/ -static void -update_thread(void *arg) +__NORETURN static void * +update_thread(void *arg __unused) { /* * The current rsrcinfo_update implementation offers minimal savings @@ -354,8 +353,7 @@ sunFmResourceTable_init(void) return (MIB_REGISTRATION_FAILED); } - if ((err = pthread_create(NULL, NULL, (void *(*)(void *))update_thread, - NULL)) != 0) { + if ((err = pthread_create(NULL, NULL, update_thread, NULL)) != 0) { (void) snmp_log(LOG_ERR, MODNAME_STR ": error creating update " "thread: %s\n", strerror(err)); return (MIB_REGISTRATION_FAILED); diff --git a/usr/src/lib/fm/libfmd_snmp/common/scheme.c b/usr/src/lib/fm/libfmd_snmp/common/scheme.c index 55c45a7ae3..771763f6d1 100644 --- a/usr/src/lib/fm/libfmd_snmp/common/scheme.c +++ b/usr/src/lib/fm/libfmd_snmp/common/scheme.c @@ -24,8 +24,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/fm/protocol.h> #include <sys/types.h> #include <sys/systeminfo.h> @@ -75,13 +73,19 @@ static fmd_scheme_t *sch_list; /* list of cached schemes */ static char *g_root; /* fmd root dir */ static struct topo_hdl *g_thp; -static long -fmd_scheme_notsup(void) +static ssize_t +fmd_scheme_notsup(nvlist_t *nv __unused, char *arg1 __unused, + size_t arg2 __unused) { errno = ENOTSUP; return (-1); } +static void +fmd_scheme_vnop(void) +{ +} + static int fmd_scheme_nop(void) { @@ -93,9 +97,9 @@ fmd_scheme_nop(void) * the module, then this operation is implemented using the default function. */ static const fmd_scheme_ops_t _fmd_scheme_default_ops = { - (int (*)())fmd_scheme_nop, /* sop_init */ - (void (*)())fmd_scheme_nop, /* sop_fini */ - (ssize_t (*)())fmd_scheme_notsup, /* sop_nvl2str */ + .sop_init = fmd_scheme_nop, /* sop_init */ + .sop_fini = fmd_scheme_vnop, /* sop_fini */ + .sop_nvl2str = fmd_scheme_notsup /* sop_nvl2str */ }; /* |