summaryrefslogtreecommitdiffstats
path: root/lib/libcam
diff options
context:
space:
mode:
authorkbyanc <kbyanc@FreeBSD.org>2001-12-18 00:48:44 +0000
committerkbyanc <kbyanc@FreeBSD.org>2001-12-18 00:48:44 +0000
commitbba76f2085975aeba776356b2556c99b8c882bd5 (patch)
tree24c359962a5b0cb538373cfddc1ad98c4f8d6522 /lib/libcam
parenta3b98398cbfb4b809f8577b6a95aabb2c30a1aeb (diff)
downloadFreeBSD-src-bba76f2085975aeba776356b2556c99b8c882bd5.zip
FreeBSD-src-bba76f2085975aeba776356b2556c99b8c882bd5.tar.gz
Const'ify the CDB format string passed to the CDB parsing routines
(csio_decode_visit() and family). Reviewed by: ken
Diffstat (limited to 'lib/libcam')
-rw-r--r--lib/libcam/cam_cdbparse.318
-rw-r--r--lib/libcam/camlib.h21
-rw-r--r--lib/libcam/scsi_cmdparse.c66
3 files changed, 62 insertions, 43 deletions
diff --git a/lib/libcam/cam_cdbparse.3 b/lib/libcam/cam_cdbparse.3
index 8379899..1b9fb02 100644
--- a/lib/libcam/cam_cdbparse.3
+++ b/lib/libcam/cam_cdbparse.3
@@ -88,7 +88,7 @@
.Fa "u_int32_t flags"
.Fa "int retry_count"
.Fa "int timeout"
-.Fa "char *cmd_spec"
+.Fa "const char *cmd_spec"
.Fa "..."
.Fc
.Ft int
@@ -99,20 +99,20 @@
.Fa "u_int32_t flags"
.Fa "int retry_count"
.Fa "int timeout"
-.Fa "char *cmd_spec"
+.Fa "const char *cmd_spec"
.Fa "int (*arg_get)(void *hook, char *field_name)"
.Fa "void *gethook"
.Fc
.Ft int
.Fo csio_decode
.Fa "struct ccb_scsiio *csio"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "..."
.Fc
.Ft int
.Fo csio_decode_visit
.Fa "struct ccb_scsiio *csio"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "void (*arg_put)(void *hook"
.Fa "int letter"
.Fa "void *val"
@@ -124,27 +124,27 @@
.Fo buff_decode
.Fa "u_int8_t *buff"
.Fa "size_t len"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "..."
.Fc
.Ft int
.Fo buff_decode_visit
.Fa "u_int8_t *buff"
.Fa "size_t len"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "void (*arg_put)(void *, int, void *, int, char *)"
.Fa "void *puthook"
.Fc
.Ft int
.Fo csio_encode
.Fa "struct ccb_scsiio *csio"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "..."
.Fc
.Ft int
.Fo csio_encode_visit
.Fa "struct ccb_scsiio *csio"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "int (*arg_get)(void *hook, char *field_name)"
.Fa "void *gethook"
.Fc
@@ -152,7 +152,7 @@
.Fo buff_encode_visit
.Fa "u_int8_t *buff"
.Fa "size_t len"
-.Fa "char *fmt"
+.Fa "const char *fmt"
.Fa "int (*arg_get)(void *hook, char *field_name)"
.Fa "void *gethook"
.Fc
diff --git a/lib/libcam/camlib.h b/lib/libcam/camlib.h
index 8d1823a..46affd6 100644
--- a/lib/libcam/camlib.h
+++ b/lib/libcam/camlib.h
@@ -150,27 +150,30 @@ int cam_get_device(const char *path, char *dev_name,
/*
* Buffer encoding/decoding routines, from the old SCSI library.
*/
-int csio_decode(struct ccb_scsiio *csio, char *fmt, ...) __printflike(2, 3);
-int csio_decode_visit(struct ccb_scsiio *csio, char *fmt,
+int csio_decode(struct ccb_scsiio *csio, const char *fmt, ...)
+ __printflike(2, 3);
+int csio_decode_visit(struct ccb_scsiio *csio, const char *fmt,
void (*arg_put)(void *, int, void *, int, char *),
void *puthook);
-int buff_decode(u_int8_t *buff, size_t len, char *fmt, ...) __printflike(3, 4);
-int buff_decode_visit(u_int8_t *buff, size_t len, char *fmt,
+int buff_decode(u_int8_t *buff, size_t len, const char *fmt, ...)
+ __printflike(3, 4);
+int buff_decode_visit(u_int8_t *buff, size_t len, const char *fmt,
void (*arg_put)(void *, int, void *, int, char *),
void *puthook);
int csio_build(struct ccb_scsiio *csio, u_int8_t *data_ptr,
u_int32_t dxfer_len, u_int32_t flags, int retry_count,
- int timeout, char *cmd_spec, ...);
+ int timeout, const char *cmd_spec, ...);
int csio_build_visit(struct ccb_scsiio *csio, u_int8_t *data_ptr,
u_int32_t dxfer_len, u_int32_t flags, int retry_count,
- int timeout, char *cmd_spec,
+ int timeout, const char *cmd_spec,
int (*arg_get)(void *hook, char *field_name),
void *gethook);
-int csio_encode(struct ccb_scsiio *csio, char *fmt, ...) __printflike(2, 3);
-int buff_encode_visit(u_int8_t *buff, size_t len, char *fmt,
+int csio_encode(struct ccb_scsiio *csio, const char *fmt, ...)
+ __printflike(2, 3);
+int buff_encode_visit(u_int8_t *buff, size_t len, const char *fmt,
int (*arg_get)(void *hook, char *field_name),
void *gethook);
-int csio_encode_visit(struct ccb_scsiio *csio, char *fmt,
+int csio_encode_visit(struct ccb_scsiio *csio, const char *fmt,
int (*arg_get)(void *hook, char *field_name),
void *gethook);
__END_DECLS
diff --git a/lib/libcam/scsi_cmdparse.c b/lib/libcam/scsi_cmdparse.c
index e853f2d..f0cb724 100644
--- a/lib/libcam/scsi_cmdparse.c
+++ b/lib/libcam/scsi_cmdparse.c
@@ -100,7 +100,7 @@ __FBSDID("$FreeBSD$");
static int
do_buff_decode(u_int8_t *databuf, size_t len,
void (*arg_put)(void *, int , void *, int, char *),
- void *puthook, char *fmt, va_list ap)
+ void *puthook, const char *fmt, va_list ap)
{
int assigned = 0;
int width;
@@ -111,6 +111,7 @@ do_buff_decode(u_int8_t *databuf, size_t len,
0x1f, 0x3f, 0x7f, 0xff};
int value;
u_char *base = databuf;
+ char *intendp;
char letter;
char field_name[80];
@@ -178,7 +179,8 @@ do_buff_decode(u_int8_t *databuf, size_t len,
case 't': /* Bit (field) */
case 'b': /* Bits */
fmt++;
- width = strtol(fmt, &fmt, 10);
+ width = strtol(fmt, &intendp, 10);
+ fmt = intendp;
if (width > 8)
done = 1;
else {
@@ -203,7 +205,8 @@ do_buff_decode(u_int8_t *databuf, size_t len,
case 'i': /* Integral values */
shift = 0;
fmt++;
- width = strtol(fmt, &fmt, 10);
+ width = strtol(fmt, &intendp, 10);
+ fmt = intendp;
switch(width) {
case 1:
ARG_PUT(*databuf);
@@ -241,7 +244,8 @@ do_buff_decode(u_int8_t *databuf, size_t len,
spaces */
shift = 0;
fmt++;
- width = strtol(fmt, &fmt, 10);
+ width = strtol(fmt, &intendp, 10);
+ fmt = intendp;
if (!suppress) {
if (arg_put)
(*arg_put)(puthook,
@@ -283,8 +287,10 @@ do_buff_decode(u_int8_t *databuf, size_t len,
*/
width = (arg_put) ? 0 : va_arg(ap, int);
fmt++;
- } else
- width = strtol(fmt, &fmt, 10);
+ } else {
+ width = strtol(fmt, &intendp, 10);
+ fmt = intendp;
+ }
if (plus)
databuf += width; /* Relative seek */
@@ -341,10 +347,11 @@ do_buff_decode(u_int8_t *databuf, size_t len,
*/
static int
-next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
+next_field(const char **pp, char *fmt, int *width_p, int *value_p, char *name,
int n_name, int *error_p, int *suppress_p)
{
- char *p = *pp;
+ const char *p = *pp;
+ char *intendp;
int something = 0;
@@ -404,7 +411,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
suppress = 1;
} else if (isxdigit(*p)) {
something = 1;
- value = strtol(p, &p, 16);
+ value = strtol(p, &intendp, 16);
+ p = intendp;
state = START_FIELD;
} else if (tolower(*p) == 'v') {
p++;
@@ -421,7 +429,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
*fmt = 'i';
field_size = 8;
- field_width = strtol(p, &p, 10);
+ field_width = strtol(p, &intendp, 10);
+ p = intendp;
state = DONE;
} else if (tolower(*p) == 't') {
@@ -436,7 +445,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
*fmt = 'b';
field_size = 1;
- field_width = strtol(p, &p, 10);
+ field_width = strtol(p, &intendp, 10);
+ p = intendp;
state = DONE;
} else if (tolower(*p) == 's') {
/* Seek */
@@ -448,7 +458,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
value = *value_p;
} else {
something = 1;
- value = strtol(p, &p, 0);
+ value = strtol(p, &intendp, 0);
+ p = intendp;
}
state = DONE;
} else {
@@ -473,7 +484,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
if (isdigit(*p)) {
*fmt = 'b';
field_size = 1;
- field_width = strtol(p, &p, 10);
+ field_width = strtol(p, &intendp, 10);
+ p = intendp;
state = DONE;
} else if (*p == 'i') {
@@ -482,7 +494,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
*fmt = 'i';
field_size = 8;
- field_width = strtol(p, &p, 10);
+ field_width = strtol(p, &intendp, 10);
+ p = intendp;
state = DONE;
} else if (*p == 'b') {
@@ -491,7 +504,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
*fmt = 'b';
field_size = 1;
- field_width = strtol(p, &p, 10);
+ field_width = strtol(p, &intendp, 10);
+ p = intendp;
state = DONE;
} else {
fprintf(stderr, "Invalid startfield %c "
@@ -522,7 +536,8 @@ next_field(char **pp, char *fmt, int *width_p, int *value_p, char *name,
static int
do_encode(u_char *buff, size_t vec_max, size_t *used,
- int (*arg_get)(void *, char *), void *gethook, char *fmt, va_list ap)
+ int (*arg_get)(void *, char *), void *gethook, const char *fmt,
+ va_list ap)
{
int ind;
int shift;
@@ -642,7 +657,7 @@ do_encode(u_char *buff, size_t vec_max, size_t *used,
}
int
-csio_decode(struct ccb_scsiio *csio, char *fmt, ...)
+csio_decode(struct ccb_scsiio *csio, const char *fmt, ...)
{
va_list ap;
@@ -653,7 +668,7 @@ csio_decode(struct ccb_scsiio *csio, char *fmt, ...)
}
int
-csio_decode_visit(struct ccb_scsiio *csio, char *fmt,
+csio_decode_visit(struct ccb_scsiio *csio, const char *fmt,
void (*arg_put)(void *, int, void *, int, char *),
void *puthook)
{
@@ -673,7 +688,7 @@ csio_decode_visit(struct ccb_scsiio *csio, char *fmt,
}
int
-buff_decode(u_int8_t *buff, size_t len, char *fmt, ...)
+buff_decode(u_int8_t *buff, size_t len, const char *fmt, ...)
{
va_list ap;
@@ -683,7 +698,7 @@ buff_decode(u_int8_t *buff, size_t len, char *fmt, ...)
}
int
-buff_decode_visit(u_int8_t *buff, size_t len, char *fmt,
+buff_decode_visit(u_int8_t *buff, size_t len, const char *fmt,
void (*arg_put)(void *, int, void *, int, char *),
void *puthook)
{
@@ -707,7 +722,8 @@ buff_decode_visit(u_int8_t *buff, size_t len, char *fmt,
*/
int
csio_build(struct ccb_scsiio *csio, u_int8_t *data_ptr, u_int32_t dxfer_len,
- u_int32_t flags, int retry_count, int timeout, char *cmd_spec, ...)
+ u_int32_t flags, int retry_count, int timeout, const char *cmd_spec,
+ ...)
{
size_t cmdlen;
int retval;
@@ -741,7 +757,7 @@ csio_build(struct ccb_scsiio *csio, u_int8_t *data_ptr, u_int32_t dxfer_len,
int
csio_build_visit(struct ccb_scsiio *csio, u_int8_t *data_ptr,
u_int32_t dxfer_len, u_int32_t flags, int retry_count,
- int timeout, char *cmd_spec,
+ int timeout, const char *cmd_spec,
int (*arg_get)(void *hook, char *field_name), void *gethook)
{
va_list ap;
@@ -781,7 +797,7 @@ csio_build_visit(struct ccb_scsiio *csio, u_int8_t *data_ptr,
}
int
-csio_encode(struct ccb_scsiio *csio, char *fmt, ...)
+csio_encode(struct ccb_scsiio *csio, const char *fmt, ...)
{
va_list ap;
@@ -794,7 +810,7 @@ csio_encode(struct ccb_scsiio *csio, char *fmt, ...)
}
int
-buff_encode_visit(u_int8_t *buff, size_t len, char *fmt,
+buff_encode_visit(u_int8_t *buff, size_t len, const char *fmt,
int (*arg_get)(void *hook, char *field_name), void *gethook)
{
va_list ap;
@@ -812,7 +828,7 @@ buff_encode_visit(u_int8_t *buff, size_t len, char *fmt,
}
int
-csio_encode_visit(struct ccb_scsiio *csio, char *fmt,
+csio_encode_visit(struct ccb_scsiio *csio, const char *fmt,
int (*arg_get)(void *hook, char *field_name), void *gethook)
{
va_list ap;
OpenPOWER on IntegriCloud