Date: Wed, 7 May 2025 21:37:03 GMT From: Warner Losh <imp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 231d36dccb82 - main - scsi/da: Export quirks as sysctl Message-ID: <202505072137.547Lb3Uc091878@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=231d36dccb820aa874800bdcd7e3e250bbd6df79 commit 231d36dccb820aa874800bdcd7e3e250bbd6df79 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2025-05-07 16:06:52 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2025-05-07 21:36:53 +0000 scsi/da: Export quirks as sysctl Differential Revision: https://reviews.freebsd.org/D49464 Sponsored by: Netflix --- sys/cam/scsi/scsi_da.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c index 1fd6d4919c61..71a4b0fa6b22 100644 --- a/sys/cam/scsi/scsi_da.c +++ b/sys/cam/scsi/scsi_da.c @@ -1496,6 +1496,7 @@ static int dacmdsizesysctl(SYSCTL_HANDLER_ARGS); static int dadeletemethodsysctl(SYSCTL_HANDLER_ARGS); static int dabitsysctl(SYSCTL_HANDLER_ARGS); static int daflagssysctl(SYSCTL_HANDLER_ARGS); +static int daquirkssysctl(SYSCTL_HANDLER_ARGS); static int dazonemodesysctl(SYSCTL_HANDLER_ARGS); static int dazonesupsysctl(SYSCTL_HANDLER_ARGS); static int dadeletemaxsysctl(SYSCTL_HANDLER_ARGS); @@ -2394,6 +2395,10 @@ dasysctlinit(void *context, int pending) OID_AUTO, "flags", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, softc, 0, daflagssysctl, "A", "Flags for drive"); + SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "quirks", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + softc, 0, daquirkssysctl, "A", + "Active quirks for drive"); SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), OID_AUTO, "rotating", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE, &softc->flags, (u_int)DA_FLAG_ROTATING, dabitsysctl, "I", @@ -2718,6 +2723,24 @@ daflagssysctl(SYSCTL_HANDLER_ARGS) return (error); } +static int +daquirkssysctl(SYSCTL_HANDLER_ARGS) +{ + struct sbuf sbuf; + struct da_softc *softc = arg1; + int error; + + sbuf_new_for_sysctl(&sbuf, NULL, 0, req); + if (softc->quirks != 0) + sbuf_printf(&sbuf, "0x%b", (unsigned)softc->quirks, DA_Q_BIT_STRING); + else + sbuf_putc(&sbuf, '0'); + error = sbuf_finish(&sbuf); + sbuf_delete(&sbuf); + + return (error); +} + static int dadeletemethodsysctl(SYSCTL_HANDLER_ARGS) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202505072137.547Lb3Uc091878>