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