Module Name: othersrc
Committed By: agc
Date: Sat Oct 22 19:09:37 UTC 2011
Modified Files:
othersrc/external/bsd/iscsi/sbin/iscsictl: iscsic_daemonif.c
iscsic_driverif.c iscsic_globals.h
Log Message:
make this compile with gcc 4.5
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 \
othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_daemonif.c \
othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_driverif.c \
othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_globals.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_daemonif.c
diff -u othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_daemonif.c:1.3 othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_daemonif.c:1.4
--- othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_daemonif.c:1.3 Mon Aug 15 17:46:36 2011
+++ othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_daemonif.c Sat Oct 22 19:09:37 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: iscsic_daemonif.c,v 1.3 2011/08/15 17:46:36 riz Exp $ */
+/* $NetBSD: iscsic_daemonif.c,v 1.4 2011/10/22 19:09:37 agc Exp $ */
/*-
* Copyright (c) 2005,2006,2011 The NetBSD Foundation, Inc.
@@ -148,7 +148,7 @@ do_remove_target(int argc, char **argv,
if (rsp->status) {
status_error_slist(rsp->status);
}
- req.id.id = ((iscsid_sym_id_t *) & rsp->parameter)->id;
+ GET_SYM_ID(req.id.id, rsp->parameter);
free_response(rsp);
} else {
check_extra_args(argc, argv);
@@ -201,7 +201,7 @@ do_refresh(int argc, char **argv, iscsid
if (rsp->status) {
status_error_slist(rsp->status);
}
- req.id[0] = ((iscsid_sym_id_t *) & rsp->parameter)->id;
+ GET_SYM_ID(req.id[0], rsp->parameter);
free_response(rsp);
} else {
req.id[0] = id.id;
@@ -568,7 +568,7 @@ remove_isns_server(int argc, char **argv
if (rsp->status) {
status_error_slist(rsp->status);
}
- req.id = ((iscsid_sym_id_t *) & rsp->parameter)->id;
+ GET_SYM_ID(req.id, rsp->parameter);
free_response(rsp);
} else {
check_extra_args(argc, argv);
@@ -799,6 +799,7 @@ STATIC void
login_or_add(iscsid_login_req_t * loginp, int argc, char **argv)
{
iscsid_add_target_req_t *targ = NULL;
+ iscsid_add_target_rsp_t *tgtrsp;
iscsid_set_target_authentication_req_t auth;
iscsid_get_set_target_options_t opt;
iscsid_search_list_req_t srch;
@@ -832,8 +833,9 @@ login_or_add(iscsid_login_req_t * loginp
if (rsp->status) {
status_error(rsp->status);
}
- loginp->portal_id.id =
- ((iscsid_add_target_rsp_t *)&rsp->parameter)->target_id;
+ tgtrsp = (iscsid_add_target_rsp_t *)(void *)(rsp->parameter);
+ (void) memcpy(&loginp->portal_id.id, &tgtrsp->target_id,
+ sizeof(loginp->portal_id.id));
} else {
/* else find the target by its TargetName */
srch.search_kind = FIND_TARGET_NAME;
@@ -846,7 +848,7 @@ login_or_add(iscsid_login_req_t * loginp
if (rsp->status) {
status_error_slist(rsp->status);
}
- loginp->portal_id.id = ((iscsid_sym_id_t *)&rsp->parameter)->id;
+ GET_SYM_ID(loginp->portal_id.id, rsp->parameter);
}
free_response(rsp);
}
@@ -960,6 +962,7 @@ int
add_connection(int argc, char **argv)
{
iscsid_login_req_t loginp;
+ iscsid_login_rsp_t *loginrsp;
iscsid_response_t *rsp;
memset(&loginp, 0x0, sizeof(loginp));
@@ -974,8 +977,8 @@ add_connection(int argc, char **argv)
if (rsp->status) {
status_error(rsp->status);
}
- printf("Added Connection %d\n",
- ((iscsid_login_rsp_t *) rsp->parameter)->connection_id.id);
+ loginrsp = (iscsid_login_rsp_t *)(void *)(rsp->parameter);
+ printf("Added Connection %d\n", loginrsp->connection_id.id);
free_response(rsp);
return 0;
Index: othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_driverif.c
diff -u othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_driverif.c:1.3 othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_driverif.c:1.4
--- othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_driverif.c:1.3 Mon Aug 15 17:46:36 2011
+++ othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_driverif.c Sat Oct 22 19:09:37 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: iscsic_driverif.c,v 1.3 2011/08/15 17:46:36 riz Exp $ */
+/* $NetBSD: iscsic_driverif.c,v 1.4 2011/10/22 19:09:37 agc Exp $ */
/*-
* Copyright (c) 2005,2006,2011 The NetBSD Foundation, Inc.
@@ -268,7 +268,7 @@ get_sessid(int argc, char **argv, int op
if (rsp->status)
status_error_slist(rsp->status);
- sid.id = ((iscsid_sym_id_t *) & rsp->parameter)->id;
+ GET_SYM_ID(sid.id, rsp->parameter);
free_response(rsp);
}
return sid.id;
@@ -503,6 +503,7 @@ read_capacity(int argc, char **argv)
int rc;
uint32_t bsz;
uint64_t lbn, cap;
+ uint32_t n;
(void) memset(&io, 0x0, sizeof(io));
if ((io.session_id = get_sessid(argc, argv, FALSE)) == 0) {
@@ -519,8 +520,10 @@ read_capacity(int argc, char **argv)
if ((rc = do_ioctl(&io, TRUE)) != 0) {
return rc;
}
- lbn = (uint64_t) ntohl(*((long *) buf)) + 1;
- bsz = ntohl(*((long *) &buf[4]));
+ (void) memcpy(&n, buf, sizeof(n));
+ lbn = (uint64_t)(n + 1);
+ (void) memcpy(&n, &buf[4], sizeof(n));
+ bsz = ntohl(n);
cap = lbn * bsz;
printf("Total Blocks: %" PRIu64 ", Block Size: %u, Capacity: %" PRIu64 " Bytes\n",
lbn, bsz, cap);
@@ -579,6 +582,8 @@ report_luns(int argc, char **argv)
iscsi_iocommand_parameters_t io;
int rc;
uint32_t llen;
+ uint32_t n;
+ uint16_t n2;
uint64_t *lp;
(void) memset(&io, 0x0, sizeof(io));
@@ -589,14 +594,16 @@ report_luns(int argc, char **argv)
io.req.cmdlen = 12;
io.req.cmd[0] = 0xa0;
- *((long *) &io.req.cmd[6]) = htonl(sizeof(buf));
+ n = htonl(sizeof(buf));
+ (void) memcpy(&io.req.cmd[6], &n, sizeof(n));
io.req.datalen = sizeof(buf);
if ((rc = do_ioctl(&io, TRUE)) != 0) {
return rc;
}
- llen = ntohs(*((u_short *) buf));
+ (void) memcpy(&n2, buf, sizeof(n2));
+ llen = ntohs(n2);
if (!llen) {
printf("No LUNs!\n");
return 1;
Index: othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_globals.h
diff -u othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_globals.h:1.3 othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_globals.h:1.4
--- othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_globals.h:1.3 Mon Aug 8 16:23:43 2011
+++ othersrc/external/bsd/iscsi/sbin/iscsictl/iscsic_globals.h Sat Oct 22 19:09:37 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: iscsic_globals.h,v 1.3 2011/08/08 16:23:43 riz Exp $ */
+/* $NetBSD: iscsic_globals.h,v 1.4 2011/10/22 19:09:37 agc Exp $ */
/*-
* Copyright (c) 2005,2006,2011 The NetBSD Foundation, Inc.
@@ -138,6 +138,15 @@ ntohq(uint64_t x)
#define htonq(x) ntohq(x)
+
+/* we usually have to get the id out of a message */
+#define GET_SYM_ID(x, y) do { \
+ iscsid_sym_id_t *__param; \
+ __param = (iscsid_sym_id_t *)(void *)(y); \
+ (void) memcpy(&x, &__param->id, sizeof(x)); \
+} while (/*CONSTCOND*/0)
+
+
/* Check whether ID is present */
#define NO_ID(sid) (!(sid)->id && !(sid)->name[0])