Date: Tue, 03 Jul 2012 21:55:40 +0000 From: vchan@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r238934 - soc2012/vchan/gtcp/bwalex-tc-play Message-ID: <20120703215540.D153F106564A@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120703215540.D153F106564A>