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])