}

static int
dacmdsizesysctl(SYSCTL_HANDLER_ARGS)
{
    int error, value;

    value = *(int *)arg1;

    error = sysctl_handle_int(oidp, &value, 0, req);

    if ((error != 0)
     || (req->newptr == NULL))
        return (error);

    /*
     * Acceptable values here are 6, 10, 12 or 16.
     */
    if (value < 6)
        value = 6;
    else if ((value > 6)
          && (value <= 10))
        value = 10;
    else if ((value > 10)
          && (value <= 12))
        value = 12;
    else if (value > 12)
        value = 16;

    *(int *)arg1 = value;

    return (0);
}

static cam_status
daregister(struct cam_periph *periph, void *arg)

Au moins, ça ne manque pas d'originalité. Je vous ai mis ce qu'il y autour afin de bien se rendre compte du vide intersidéral de commentaires utiles autour de ce fabuleux effet de bord sur une variable récupérée par macro, et transvasée de manière bien folklorique (dommage que le traitement ne soit pas fait par masques de bits, tout de même !). Autour de la ligne 1010 du driver SCSI de freebsd.