svn commit: r217369 - in head/sys: cam/scsi sys
Matthew D Fleming
mdf at FreeBSD.org
Thu Jan 13 18:20:34 UTC 2011
Author: mdf
Date: Thu Jan 13 18:20:33 2011
New Revision: 217369
URL: http://svn.freebsd.org/changeset/base/217369
Log:
Add a 64-bit hex-printed sysctl(9) since there is at least one place in
the code that wanted it. It is named X64 rather than XQUAD since the
quad name is a historical abomination that should not be perpetuated.
Modified:
head/sys/cam/scsi/scsi_da.c
head/sys/sys/sysctl.h
Modified: head/sys/cam/scsi/scsi_da.c
==============================================================================
--- head/sys/cam/scsi/scsi_da.c Thu Jan 13 18:20:27 2011 (r217368)
+++ head/sys/cam/scsi/scsi_da.c Thu Jan 13 18:20:33 2011 (r217369)
@@ -1127,9 +1127,9 @@ dasysctlinit(void *context, int pending)
struct ccb_trans_settings_fc *fc = &cts.xport_specific.fc;
if (fc->valid & CTS_FC_VALID_WWPN) {
softc->wwpn = fc->wwpn;
- SYSCTL_ADD_XLONG(&softc->sysctl_ctx,
+ SYSCTL_ADD_X64(&softc->sysctl_ctx,
SYSCTL_CHILDREN(softc->sysctl_tree),
- OID_AUTO, "wwpn", CTLTYPE_QUAD | CTLFLAG_RD,
+ OID_AUTO, "wwpn", CTLFLAG_RD,
&softc->wwpn, "World Wide Port Name");
}
}
Modified: head/sys/sys/sysctl.h
==============================================================================
--- head/sys/sys/sysctl.h Thu Jan 13 18:20:27 2011 (r217368)
+++ head/sys/sys/sysctl.h Thu Jan 13 18:20:33 2011 (r217369)
@@ -245,6 +245,8 @@ SYSCTL_ALLOWED_TYPES(ULONG, unsigned lon
SYSCTL_ALLOWED_TYPES(XLONG, unsigned long *a; long *b; );
SYSCTL_ALLOWED_TYPES(INT64, int64_t *a; long long *b; );
SYSCTL_ALLOWED_TYPES(UINT64, uint64_t *a; unsigned long long *b; );
+SYSCTL_ALLOWED_TYPES(XINT64, uint64_t *a; int64_t *b;
+ unsigned long long *c; long long *d; );
#ifdef notyet
#define SYSCTL_ADD_ASSERT_TYPE(type, ptr) \
@@ -389,7 +391,6 @@ SYSCTL_ALLOWED_TYPES(UINT64, uint64_t *a
SYSCTL_ADD_ASSERT_TYPE(INT64, ptr), 0, \
sysctl_handle_quad, "Q", __DESCR(descr))
-/* Oid for a quad. The pointer must be non NULL. */
#define SYSCTL_UQUAD(parent, nbr, name, access, ptr, val, descr) \
SYSCTL_ASSERT_TYPE(UINT64, ptr, parent, name); \
SYSCTL_OID(parent, nbr, name, \
@@ -402,6 +403,18 @@ SYSCTL_ALLOWED_TYPES(UINT64, uint64_t *a
SYSCTL_ADD_ASSERT_TYPE(UINT64, ptr), 0, \
sysctl_handle_quad, "QU", __DESCR(descr))
+#define SYSCTL_X64(parent, nbr, name, access, ptr, val, descr) \
+ SYSCTL_ASSERT_TYPE(XINT64, ptr, parent, name); \
+ SYSCTL_OID(parent, nbr, name, \
+ CTLTYPE_QUAD | CTLFLAG_MPSAFE | (access), \
+ ptr, val, sysctl_handle_quad, "QX", descr)
+
+#define SYSCTL_ADD_X64(ctx, parent, nbr, name, access, ptr, descr) \
+ sysctl_add_oid(ctx, parent, nbr, name, \
+ CTLTYPE_QUAD | CTLFLAG_MPSAFE | (access), \
+ SYSCTL_ADD_ASSERT_TYPE(XINT64, ptr), 0, \
+ sysctl_handle_quad, "QX", __DESCR(descr))
+
/* Oid for an opaque object. Specified by a pointer and a length. */
#define SYSCTL_OPAQUE(parent, nbr, name, access, ptr, len, fmt, descr) \
SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|(access), \
More information about the svn-src-all
mailing list