aboutsummaryrefslogtreecommitdiff
path: root/sg_pt_freebsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sg_pt_freebsd.c')
-rw-r--r--sg_pt_freebsd.c59
1 files changed, 34 insertions, 25 deletions
diff --git a/sg_pt_freebsd.c b/sg_pt_freebsd.c
index a0645e6a..f8f59b90 100644
--- a/sg_pt_freebsd.c
+++ b/sg_pt_freebsd.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005-2006 Douglas Gilbert.
+ * Copyright (c) 2005-2007 Douglas Gilbert.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -27,7 +27,7 @@
*
*/
-/* version 1.03 2006/1/9 */
+/* version 1.05 2007/1/21 */
#include <stdio.h>
#include <stdlib.h>
@@ -53,7 +53,6 @@
#define FREEBSD_MAXDEV 64
#define FREEBSD_FDOFFSET 16;
-#define MAX_NUM_DEV 26
struct freebsd_dev_channel {
@@ -64,7 +63,7 @@ struct freebsd_dev_channel {
// Private table of open devices: guaranteed zero on startup since
// part of static data.
-struct freebsd_dev_channel *devicetable[FREEBSD_MAXDEV];
+static struct freebsd_dev_channel *devicetable[FREEBSD_MAXDEV];
#define DEF_TIMEOUT 60000 /* 60,000 milliseconds (60 seconds) */
@@ -109,17 +108,18 @@ int scsi_pt_open_device(const char * device_name,
if (verbose)
fprintf(sg_warnings_strm, "too many open file descriptors "
"(%d)\n", FREEBSD_MAXDEV);
- errno=EMFILE;
+ errno = EMFILE;
return -1;
}
- fdchan = calloc(1,sizeof(struct freebsd_dev_channel));
+ fdchan = (struct freebsd_dev_channel *)
+ calloc(1,sizeof(struct freebsd_dev_channel));
if (fdchan == NULL) {
// errno already set by call to malloc()
return -1;
}
- if (! (fdchan->devname = calloc(1, DEV_IDLEN+1)))
+ if (! (fdchan->devname = (char *)calloc(1, DEV_IDLEN+1)))
return -1;
if (cam_get_device(device_name, fdchan->devname, DEV_IDLEN,
@@ -172,7 +172,8 @@ void * construct_scsi_pt_obj()
{
struct sg_pt_freebsd_scsi * ptp;
- ptp = malloc(sizeof(struct sg_pt_freebsd_scsi));
+ ptp = (struct sg_pt_freebsd_scsi *)
+ malloc(sizeof(struct sg_pt_freebsd_scsi));
if (ptp) {
memset(ptp, 0, sizeof(struct sg_pt_freebsd_scsi));
ptp->dxfer_dir = CAM_DIR_NONE;
@@ -182,7 +183,7 @@ void * construct_scsi_pt_obj()
void destruct_scsi_pt_obj(void * vp)
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
if (ptp) {
if (ptp->ccb)
@@ -193,7 +194,7 @@ void destruct_scsi_pt_obj(void * vp)
void set_scsi_pt_cdb(void * vp, const unsigned char * cdb, int cdb_len)
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
if (ptp->cdb)
++ptp->in_err;
@@ -204,7 +205,7 @@ void set_scsi_pt_cdb(void * vp, const unsigned char * cdb, int cdb_len)
void set_scsi_pt_sense(void * vp, unsigned char * sense,
int max_sense_len)
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
if (ptp->sense)
++ptp->in_err;
@@ -216,7 +217,7 @@ void set_scsi_pt_sense(void * vp, unsigned char * sense,
void set_scsi_pt_data_in(void * vp, /* from device */
unsigned char * dxferp, int dxfer_len)
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
if (ptp->dxferp)
++ptp->in_err;
@@ -230,7 +231,7 @@ void set_scsi_pt_data_in(void * vp, /* from device */
void set_scsi_pt_data_out(void * vp, /* to device */
const unsigned char * dxferp, int dxfer_len)
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
if (ptp->dxferp)
++ptp->in_err;
@@ -248,7 +249,7 @@ void set_scsi_pt_packet_id(void * vp __attribute__ ((unused)),
void set_scsi_pt_tag(void * vp, int tag __attribute__ ((unused)))
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
++ptp->in_err;
}
@@ -256,7 +257,7 @@ void set_scsi_pt_tag(void * vp, int tag __attribute__ ((unused)))
void set_scsi_pt_task_management(void * vp,
int tmf_code __attribute__ ((unused)))
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
++ptp->in_err;
}
@@ -264,7 +265,7 @@ void set_scsi_pt_task_management(void * vp,
void set_scsi_pt_task_attr(void * vp, int attrib __attribute__ ((unused)),
int priority __attribute__ ((unused)))
{
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
++ptp->in_err;
}
@@ -272,7 +273,7 @@ void set_scsi_pt_task_attr(void * vp, int attrib __attribute__ ((unused)),
int do_scsi_pt(void * vp, int device_fd, int time_secs, int verbose)
{
int fd = device_fd - FREEBSD_FDOFFSET;
- struct sg_pt_freebsd_scsi * ptp = vp;
+ struct sg_pt_freebsd_scsi * ptp = (struct sg_pt_freebsd_scsi *)vp;
struct freebsd_dev_channel *fdchan;
union ccb *ccb;
int len, timout_ms;
@@ -369,7 +370,8 @@ int do_scsi_pt(void * vp, int device_fd, int time_secs, int verbose)
int get_scsi_pt_result_category(const void * vp)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
if (ptp->os_err)
return SCSI_PT_RESULT_OS_ERR;
@@ -386,21 +388,24 @@ int get_scsi_pt_result_category(const void * vp)
int get_scsi_pt_resid(const void * vp)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
return ptp->resid;
}
int get_scsi_pt_status_response(const void * vp)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
return ptp->scsi_status;
}
int get_scsi_pt_sense_len(const void * vp)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
int len;
len = ptp->sense_len - ptp->sense_resid;
@@ -416,14 +421,16 @@ int get_scsi_pt_duration_ms(const void * vp __attribute__ ((unused)))
int get_scsi_pt_transport_err(const void * vp)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
return ptp->transport_err;
}
int get_scsi_pt_os_err(const void * vp)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
return ptp->os_err;
}
@@ -431,7 +438,8 @@ int get_scsi_pt_os_err(const void * vp)
char * get_scsi_pt_transport_err_str(const void * vp, int max_b_len, char * b)
{
- struct sg_pt_freebsd_scsi * ptp = (void *)vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
if (0 == ptp->transport_err) {
strncpy(b, "no transport error available", max_b_len);
@@ -456,7 +464,8 @@ char * get_scsi_pt_transport_err_str(const void * vp, int max_b_len, char * b)
char * get_scsi_pt_os_err_str(const void * vp,
int max_b_len, char * b)
{
- const struct sg_pt_freebsd_scsi * ptp = vp;
+ const struct sg_pt_freebsd_scsi * ptp =
+ (const struct sg_pt_freebsd_scsi *)vp;
const char * cp;
cp = safe_strerror(ptp->os_err);