From 2d76895729707a4d75ce6f805957fdb81355f4a4 Mon Sep 17 00:00:00 2001 From: Marco van Wieringen Date: Wed, 28 Aug 2013 19:55:48 +0200 Subject: [PATCH] Make NDMP code compile on FreeBSD. --- src/ndmp/ndma_robot.c | 2 ++ src/ndmp/ndma_tape.c | 2 ++ src/ndmp/ndmos.h | 1 + src/ndmp/ndmos_common.c | 4 +++- src/ndmp/ndmos_freebsd.c | 10 +++++----- src/ndmp/ndmos_freebsd.h | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/ndmp/ndma_robot.c b/src/ndmp/ndma_robot.c index f4266275205..765ec23e8ff 100644 --- a/src/ndmp/ndma_robot.c +++ b/src/ndmp/ndma_robot.c @@ -81,9 +81,11 @@ ndmra_destroy (struct ndm_session *sess) return 0; } +#ifdef NDMOS_OPTION_ROBOT_SIMULATOR if (sess->robot_acb->sim_dir) { NDMOS_API_FREE (sess->robot_acb->sim_dir); } +#endif NDMOS_API_FREE (sess->robot_acb); sess->robot_acb = NULL; diff --git a/src/ndmp/ndma_tape.c b/src/ndmp/ndma_tape.c index cf253d7e52a..8566d311d2b 100644 --- a/src/ndmp/ndma_tape.c +++ b/src/ndmp/ndma_tape.c @@ -96,9 +96,11 @@ ndmta_destroy (struct ndm_session *sess) NDMOS_API_FREE (sess->tape_acb->tape_buffer); } +#ifdef NDMOS_OPTION_TAPE_SIMULATOR if (sess->tape_acb->drive_name) { NDMOS_API_FREE (sess->tape_acb->drive_name); } +#endif NDMOS_API_FREE (sess->tape_acb); sess->tape_acb = NULL; diff --git a/src/ndmp/ndmos.h b/src/ndmp/ndmos.h index fc1dad22bed..8bf9d1b5c13 100644 --- a/src/ndmp/ndmos.h +++ b/src/ndmp/ndmos.h @@ -495,6 +495,7 @@ extern char *ndml_strend(char *s); /* ndml_util.c */ #endif /* NDMOS_OPTION_TAPE_SIMULATOR */ #ifdef NDMOS_OPTION_ROBOT_SIMULATOR +#undef NDMOS_MACRO_ROBOT_AGENT_ADDITIONS #define NDMOS_MACRO_ROBOT_AGENT_ADDITIONS \ char * sim_dir; #endif /* NDMOS_OPTION_ROBOT_SIMULATOR */ diff --git a/src/ndmp/ndmos_common.c b/src/ndmp/ndmos_common.c index 5025ef67902..73c132d8082 100644 --- a/src/ndmp/ndmos_common.c +++ b/src/ndmp/ndmos_common.c @@ -280,7 +280,9 @@ ndmos_tape_initialize (struct ndm_session *sess) void ndmos_tape_sync_state (struct ndm_session *sess) { - the_tape_state.error = NDMP9_DEV_NOT_OPEN_ERR; + struct ndm_tape_agent * ta = sess->tape_acb; + + ta->tape_state.error = NDMP9_DEV_NOT_OPEN_ERR; } ndmp9_error diff --git a/src/ndmp/ndmos_freebsd.c b/src/ndmp/ndmos_freebsd.c index fa3312d2ceb..68771528a5e 100644 --- a/src/ndmp/ndmos_freebsd.c +++ b/src/ndmp/ndmos_freebsd.c @@ -65,7 +65,7 @@ #define NDMOS_COMMON_MD5 #define NDMOS_COMMON_NONBLOCKING_IO_SUPPORT #define NDMOS_COMMON_TAPE_INTERFACE /* uses tape simulator */ -#undef NDMOS_COMMON_SCSI_INTERFACE /* stub-out */ +#define NDMOS_COMMON_SCSI_INTERFACE /* use scsi simulator */ #define NDMOS_COMMON_DISPATCH_REQUEST /* no-op */ @@ -216,7 +216,7 @@ ndmos_scsi_execute_cdb (struct ndm_session *sess, } data_len = request->datain_len; - data_in_ptr = malloc (data_len); + data_in_ptr = (u_int8_t *)malloc (data_len); if (!data_in_ptr) { reply->error = NDMP9_NO_MEM_ERR; @@ -228,7 +228,7 @@ ndmos_scsi_execute_cdb (struct ndm_session *sess, case NDMP9_SCSI_DATA_DIR_OUT: data_len = request->dataout.dataout_len; - data_ptr = request->dataout.dataout_val; + data_ptr = (u_int8_t *)request->dataout.dataout_val; flags = CAM_DIR_OUT; break; @@ -272,7 +272,7 @@ ndmos_scsi_execute_cdb (struct ndm_session *sess, int n_sense; n_sense = ccb->csio.sense_len - ccb->csio.sense_resid; - reply->ext_sense.ext_sense_val = malloc (n_sense); + reply->ext_sense.ext_sense_val = (char *)malloc (n_sense); if (reply->ext_sense.ext_sense_val) { bcopy (&ccb->csio.sense_data, reply->ext_sense.ext_sense_val, @@ -298,7 +298,7 @@ ndmos_scsi_execute_cdb (struct ndm_session *sess, break; case NDMP9_SCSI_DATA_DIR_IN: - reply->datain.datain_val = data_in_ptr; + reply->datain.datain_val = (char *)data_in_ptr; reply->datain.datain_len = data_len; break; diff --git a/src/ndmp/ndmos_freebsd.h b/src/ndmp/ndmos_freebsd.h index a4c21bc09b2..351817fd00f 100644 --- a/src/ndmp/ndmos_freebsd.h +++ b/src/ndmp/ndmos_freebsd.h @@ -66,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -101,5 +102,4 @@ #define NDMOS_MACRO_ROBOT_AGENT_ADDITIONS \ struct cam_device * camdev; - #endif /* NDMOS_ID == NDMOS_ID_FREEBSD */