socsvn commit: r238934 - soc2012/vchan/gtcp/bwalex-tc-play

vchan at FreeBSD.org vchan at FreeBSD.org
Tue Jul 3 21:55:43 UTC 2012


Author: vchan
Date: Tue Jul  3 21:55:40 2012
New Revision: 238934
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238934

Log:
  newest material in tcplay.c

Deleted:
  soc2012/vchan/gtcp/bwalex-tc-play/tcplay_new.c
Modified:
  soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c

Modified: soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c
==============================================================================
--- soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c	Tue Jul  3 19:11:38 2012	(r238933)
+++ soc2012/vchan/gtcp/bwalex-tc-play/tcplay.c	Tue Jul  3 21:55:40 2012	(r238934)
@@ -28,7 +28,11 @@
  */
 
 #include <sys/types.h>
+
+#if defined(__DragonFly__)
 #include <sys/param.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -38,8 +42,16 @@
 #include <string.h>
 #include <err.h>
 #include <time.h>
-#include <libdm.h>
-#include <uuid.h>
+//#if defined(__linux__)
+//#include <libdevmapper.h>
+//#include <uuid/uuid.h>
+//#elif defined(__DragonFly__)
+//#include <libdm.h>
+//#include <uuid.h>
+#include <geom/gate/g_gate.h>
+#include <ggate.h>
+
+//#endif
 
 #include "crc32.h"
 #include "tcplay.h"
@@ -911,6 +923,7 @@
 	return -1;
 }
 
+
 int
 map_volume(const char *map_name, const char *device, int sflag,
     const char *sys_dev, int protect_hidden, const char *keyfiles[],
@@ -945,6 +958,7 @@
 	return 0;
 }
 
+/*fix*/
 static
 int
 dm_remove_device(const char *name)
@@ -964,7 +978,7 @@
 	ret = 0;
 out:
 	if (dmt)
-		dm_task_destroy(dmt);
+		/*fix*/dm_task_destroy(dmt);
 
 	return ret;
 }
@@ -979,17 +993,18 @@
 	char *uu;
 	char *uu_stack[64];
 	int uu_stack_idx;
-//#if defined(__DragonFly__)
-//	uint32_t status;
-//#endif
+/*#if defined(__DragonFly__)*/
+	uint32_t status;
+/*#endif*/
 	int r, ret = 0;
 	int j;
 	off_t start, offset;
 	char dev[PATH_MAX];
 	char map[PATH_MAX];
 	uint32_t cookie;
-
-	dm_udev_set_sync_support(1);
+	static int force = 0; //new for FreeBSD
+	
+	/* dm_udev_set_sync_support(1); */
 
 	if ((params = alloc_safe_mem(512)) == NULL) {
 		tc_log(1, "could not allocate safe parameters memory");
@@ -1010,7 +1025,8 @@
 	    cipher_chain = cipher_chain->prev, j++) {
 
 		cookie = 0;
-
+		force = 1; //used in g_gate_destroy
+		
 		/* aes-cbc-essiv:sha256 7997f8af... 0 /dev/ad0s0a 8 */
 		/*			   iv off---^  block off--^ */
 		snprintf(params, 512, "%s %s %"PRIu64 " %s %"PRIu64,
@@ -1019,9 +1035,9 @@
 #ifdef DEBUG
 		printf("Params: %s\n", params);
 #endif
-
-		if ((dmt = dm_task_create(DM_DEVICE_CREATE)) == NULL) {
-			tc_log(1, "dm_task_create failed\n");
+		/* changed from, "if ((dmt = dm_task_create(DM_DEVICE_CREATE)) == NULL)" */
+		if ((dmt = g_gatel_create()) == 1) {
+			tc_log(1, "g_gatel_create failed\n");
 			ret = -1;
 			goto out;
 		}
@@ -1035,21 +1051,22 @@
 		else
 			sprintf(map, "%s.%d", mapname, j);
 
-		if ((dm_task_set_name(dmt, map)) == 0) {
-			tc_log(1, "dm_task_set_name failed\n");
+		/* changed from, "if ((dm_task_set_name(dmt, map)) == 0" */
+		if (map == NULL) {
+			tc_log(1, "task_set_name failed\n");
 			ret = -1;
 			goto out;
 		}
 
-//#if defined(__linux__)
-//		uuid_generate(info->uuid);
-//		if ((uu = malloc(1024)) == NULL) {
-//			tc_log(1, "uuid_unparse memory failed\n");
-//			ret = -1;
-//			goto out;
-//		}
-//		uuid_unparse(info->uuid, uu);
-//#elif defined(__DragonFly__)
+/*#if defined(__linux__)
+		uuid_generate(info->uuid);
+		if ((uu = malloc(1024)) == NULL) {
+			tc_log(1, "uuid_unparse memory failed\n");
+			ret = -1;
+			goto out;
+		}
+		uuid_unparse(info->uuid, uu);
+#elif defined(__DragonFly__)
 		uuid_create(&info->uuid, &status);
 		if (status != uuid_s_ok) {
 			tc_log(1, "uuid_create failed\n");
@@ -1063,9 +1080,9 @@
 			ret = -1;
 			goto out;
 		}
-//#endif
+#endif
 
-		if ((dm_task_set_uuid(dmt, uu)) == 0) {
+		if (( dm_task_set_uuid(dmt, uu)) == 0) {
 			free(uu);
 			tc_log(1, "dm_task_set_uuid failed\n");
 			ret = -1;
@@ -1074,7 +1091,7 @@
 
 		free(uu);
 
-		if ((dm_task_add_target(dmt, start, info->size, "crypt", params)) == 0) {
+		if (( dm_task_add_target(dmt, start, info->size, "crypt", params)) == 0) {
 			tc_log(1, "dm_task_add_target failed\n");
 			ret = -1;
 			goto out;
@@ -1101,6 +1118,7 @@
 		}
 
 		dm_udev_wait(cookie);
+*/
 
 		if ((r = asprintf(&uu_stack[uu_stack_idx++], "%s", map)) < 0)
 			tc_log(1, "warning, asprintf failed. won't be able to "
@@ -1111,8 +1129,8 @@
 		start = 0;
 		sprintf(dev, "/dev/mapper/%s.%d", mapname, j);
 
-		dm_task_destroy(dmt);
-		dm_task_update_nodes();
+		g_gate_destroy(dmt, force); /* was dm_task_destroy(dmt); */
+		/*not needed in FreeBSD dm_task_update_nodes(); */
 	}
 
 out:
@@ -1128,7 +1146,7 @@
 			    uu_stack[j-1]);
 #endif
 			if ((uu_stack[j-1] == NULL) ||
-			    ((r = dm_remove_device(uu_stack[--j])) != 0)) {
+			    ((r = /*and here*/dm_remove_device(uu_stack[--j])) != 0)) {
 				tc_log(1, "Tried to unroll dm changes, "
 				    "giving up.\n");
 				break;
@@ -1154,7 +1172,7 @@
 	char map[PATH_MAX];
 	int i, error;
 
-	if ((error = dm_remove_device(mapname)) != 0) {
+	if ((error = /*and here*/dm_remove_device(mapname)) != 0) {
 		tc_log(1, "Could not remove mapping %s\n", mapname);
 		return error;
 	}


More information about the svn-soc-all mailing list