31 enum vmi1__TargetTypeT type,
35 case vmi1__TargetTypeT__none:
39 case vmi1__TargetTypeT__ptrace:
43 case vmi1__TargetTypeT__xen:
47 case vmi1__TargetTypeT__gdb:
51 case vmi1__TargetTypeT__osProcess:
55 case vmi1__TargetTypeT__php:
60 verror(
"unknown TargetTypeT %d\n",type);
65 enum vmi1__TargetTypeT
69 enum vmi1__TargetTypeT *out) {
73 *out = vmi1__TargetTypeT__none;
74 return vmi1__TargetTypeT__none;
77 *out = vmi1__TargetTypeT__ptrace;
78 return vmi1__TargetTypeT__ptrace;
81 *out = vmi1__TargetTypeT__xen;
82 return vmi1__TargetTypeT__xen;
85 *out = vmi1__TargetTypeT__gdb;
86 return vmi1__TargetTypeT__gdb;
89 *out = vmi1__TargetTypeT__osProcess;
90 return vmi1__TargetTypeT__osProcess;
93 *out = vmi1__TargetTypeT__php;
94 return vmi1__TargetTypeT__php;
96 verror(
"unknown target_type_t %d\n",type);
97 return vmi1__TargetTypeT__none;
103 enum vmi1__TargetModeT mode,
107 case vmi1__TargetModeT__none:
111 case vmi1__TargetModeT__live:
115 case vmi1__TargetModeT__replay:
119 case vmi1__TargetModeT__record:
124 verror(
"unknown TargetModeT %d\n",mode);
129 enum vmi1__TargetModeT
133 enum vmi1__TargetModeT *out) {
137 *out = vmi1__TargetModeT__none;
138 return vmi1__TargetModeT__none;
141 *out = vmi1__TargetModeT__live;
142 return vmi1__TargetModeT__live;
145 *out = vmi1__TargetModeT__replay;
146 return vmi1__TargetModeT__replay;
149 *out = vmi1__TargetModeT__record;
150 return vmi1__TargetModeT__record;
152 verror(
"unknown target_mode_t %d\n",mode);
153 return vmi1__TargetModeT__none;
159 enum vmi1__ThreadBPModeT mode,
163 case vmi1__ThreadBPModeT__strict:
167 case vmi1__ThreadBPModeT__semiStrict:
171 case vmi1__ThreadBPModeT__loose:
176 verror(
"unknown ThreadBPModeT %d; returning STRICT!\n",mode);
181 enum vmi1__ThreadBPModeT
185 enum vmi1__ThreadBPModeT *out) {
189 *out = vmi1__ThreadBPModeT__strict;
190 return vmi1__ThreadBPModeT__strict;
193 *out = vmi1__ThreadBPModeT__semiStrict;
194 return vmi1__ThreadBPModeT__semiStrict;
197 *out = vmi1__ThreadBPModeT__loose;
198 return vmi1__ThreadBPModeT__loose;
200 verror(
"unknown thread_bpmode_t %d; returning STRICT!\n",mode);
201 return vmi1__ThreadBPModeT__strict;
207 struct vmi1__TargetSpecT *spec,
226 if (spec->defaultProbeStyle)
229 *spec->defaultProbeStyle);
240 || spec->killOnCloseSignal) {
243 (spec->killOnCloseSignal) ? *spec->killOnCloseSignal : SIGKILL;
245 if (spec->debugfileRootPrefix)
247 if (spec->activeProbeThreadEntry
250 if (spec->activeProbeThreadExit
253 if (spec->activeProbeMemory
256 if (spec->activeProbeOther
262 && spec->backendSpec->__union_backendSpec \
263 == SOAP_UNION__vmi1__union_backendSpec_targetPtraceSpec)
265 (
struct vmi1__TargetPtraceSpecT *)spec->backendSpec->union_backendSpec.targetPtraceSpec,
268 #ifdef ENABLE_XENSUPPORT
271 && spec->backendSpec->__union_backendSpec \
272 == SOAP_UNION__vmi1__union_backendSpec_targetXenSpec)
273 x_TargetXenSpecT_to_t_xen_vm_spec(soap,
274 (
struct vmi1__TargetXenSpecT *)spec->backendSpec->union_backendSpec.targetXenSpec,
280 && spec->backendSpec->__union_backendSpec \
281 == SOAP_UNION__vmi1__union_backendSpec_targetGdbSpec)
283 (
struct vmi1__TargetGdbSpecT *)spec->backendSpec->union_backendSpec.targetGdbSpec,
287 spec->backendSpec = NULL;
290 spec->backendSpec = NULL;
293 verror(
"bad target-specific spec (%d)\n",type);
300 struct vmi1__TargetSpecT *
304 struct vmi1__TargetSpecT *out) {
305 struct vmi1__TargetSpecT *ospec;
327 ospec->defaultProbeStyle =
328 SOAP_CALLOC(soap,1,
sizeof(*ospec->defaultProbeStyle));
329 *ospec->defaultProbeStyle =
334 ospec->logStdout =
SOAP_CALLOC(soap,1,
sizeof(*ospec->logStdout));
339 ospec->logStderr =
SOAP_CALLOC(soap,1,
sizeof(*ospec->logStderr));
344 ospec->killOnClose =
SOAP_CALLOC(soap,1,
sizeof(*ospec->killOnClose));
350 ospec->killOnCloseSignal =
351 SOAP_CALLOC(soap,1,
sizeof(*ospec->killOnCloseSignal));
356 ospec->activeProbeThreadEntry =
357 SOAP_CALLOC(soap,1,
sizeof(*ospec->activeProbeThreadEntry));
362 ospec->activeProbeThreadExit =
363 SOAP_CALLOC(soap,1,
sizeof(*ospec->activeProbeThreadExit));
368 ospec->activeProbeMemory =
369 SOAP_CALLOC(soap,1,
sizeof(*ospec->activeProbeMemory));
374 ospec->activeProbeOther =
375 SOAP_CALLOC(soap,1,
sizeof(*ospec->activeProbeOther));
382 ospec->backendSpec =
SOAP_CALLOC(soap,1,
sizeof(*ospec->backendSpec));
383 ospec->backendSpec->__union_backendSpec = \
384 SOAP_UNION__vmi1__union_backendSpec_targetPtraceSpec;
385 ospec->backendSpec->union_backendSpec.targetPtraceSpec =
\
390 #ifdef ENABLE_XENSUPPORT
392 ospec->backendSpec =
SOAP_CALLOC(soap,1,
sizeof(*ospec->backendSpec));
393 ospec->backendSpec->__union_backendSpec = \
394 SOAP_UNION__vmi1__union_backendSpec_targetXenSpec;
395 ospec->backendSpec->union_backendSpec.targetXenSpec = \
396 t_xen_vm_spec_to_x_TargetXenSpecT(soap,
402 ospec->backendSpec =
SOAP_CALLOC(soap,1,
sizeof(*ospec->backendSpec));
403 ospec->backendSpec->__union_backendSpec = \
404 SOAP_UNION__vmi1__union_backendSpec_targetGdbSpec;
405 ospec->backendSpec->union_backendSpec.targetGdbSpec =
\
411 ospec->backendSpec =
SOAP_CALLOC(soap,1,
sizeof(*ospec->backendSpec));
412 ospec->backendSpec->__union_backendSpec = \
413 SOAP_UNION__vmi1__union_backendSpec_targetOsProcessSpec;
414 ospec->backendSpec->union_backendSpec.targetOsProcessSpec = NULL;
417 ospec->backendSpec =
SOAP_CALLOC(soap,1,
sizeof(*ospec->backendSpec));
418 ospec->backendSpec->__union_backendSpec = \
419 SOAP_UNION__vmi1__union_backendSpec_targetPhpSpec;
420 ospec->backendSpec->union_backendSpec.targetPhpSpec = NULL;
426 #ifdef ENABLE_XENSUPPORT
428 x_TargetXenSpecT_to_t_xen_vm_spec(
struct soap *soap,
429 struct vmi1__TargetXenSpecT *spec,
440 ospec->
domain = strdup(spec->domain);
441 if (spec->kernelFilename)
443 if (spec->configFile)
447 if (spec->clearMemCachesEachException
450 if (spec->memcacheMmapSize && *spec->memcacheMmapSize > 0)
452 #ifdef ENABLE_XENACCESS
464 if (spec->dominfoTimeout && *spec->dominfoTimeout > 0)
470 struct vmi1__TargetXenSpecT *
471 t_xen_vm_spec_to_x_TargetXenSpecT(
struct soap *soap,
474 struct vmi1__TargetXenSpecT *out) {
475 struct vmi1__TargetXenSpecT *ospec;
489 ospec->noHVMSetContext =
490 SOAP_CALLOC(soap,1,
sizeof(*ospec->noHVMSetContext));
494 ospec->clearMemCachesEachException =
495 SOAP_CALLOC(soap,1,
sizeof(*ospec->clearMemCachesEachException));
499 ospec->memcacheMmapSize =
500 SOAP_CALLOC(soap,1,
sizeof(*ospec->memcacheMmapSize));
509 ospec->useXenAccess =
514 ospec->noClearHWDbgReg =
515 SOAP_CALLOC(soap,1,
sizeof(*ospec->noClearHWDbgReg));
519 ospec->noUseMultiplexer =
520 SOAP_CALLOC(soap,1,
sizeof(*ospec->noUseMultiplexer));
524 ospec->dominfoTimeout =
525 SOAP_CALLOC(soap,1,
sizeof(*ospec->dominfoTimeout));
535 struct vmi1__TargetGdbSpecT *spec,
545 if (spec->gdbHostname)
546 ospec->
hostname = strdup(spec->gdbHostname);
547 if (spec->gdbPort && *spec->gdbPort > 0)
548 ospec->
port = *spec->gdbPort;
549 if (spec->gdbSockfile)
550 ospec->
sockfile = strdup(spec->gdbSockfile);
555 if (spec->clearMemCachesEachException
558 if (spec->qemuQmpHostname)
560 if (spec->qemuQmpPort && *spec->qemuQmpPort > 0)
562 if (spec->qemuMemPath)
564 if (spec->mainFilename)
566 if (spec->memcacheMmapSize && *spec->memcacheMmapSize > 0)
572 struct vmi1__TargetGdbSpecT *
576 struct vmi1__TargetGdbSpecT *out) {
577 struct vmi1__TargetGdbSpecT *ospec;
586 if (spec->
port > 0) {
589 *ospec->gdbPort = spec->
port;
620 ospec->clearMemCachesEachException =
621 SOAP_CALLOC(soap,1,
sizeof(*ospec->clearMemCachesEachException));
625 ospec->memcacheMmapSize =
626 SOAP_CALLOC(soap,1,
sizeof(*ospec->memcacheMmapSize));
635 struct vmi1__TargetPtraceSpecT *spec,
649 ospec->
pid = *(spec->pid);
651 ospec->
program = strdup(spec->program);
652 if (spec->arguments && spec->arguments->__sizeargument) {
653 ospec->
argv = calloc(spec->arguments->__sizeargument + 1,
sizeof(
char *));
654 for (i = 0; i < spec->arguments->__sizeargument; ++i) {
655 if (spec->arguments->argument[i].__size >= 0) {
657 malloc(spec->arguments->argument[i].__size + 1);
658 memcpy(ospec->
argv[i],spec->arguments->argument[i].__ptr,
659 spec->arguments->argument[i].__size);
661 ospec->
argv[i][spec->arguments->argument[i].__size] =
'\0';
664 ospec->
argv[i] = NULL;
667 if (spec->environment && spec->environment->__sizeenvvar) {
668 ospec->
envp = calloc(spec->environment->__sizeenvvar + 1,
sizeof(
char *));
669 for (i = 0; i < spec->environment->__sizeenvvar; ++i)
670 ospec->
envp[i] = strdup(spec->environment->envvar[i]);
671 ospec->
envp[i] = NULL;
677 struct vmi1__TargetPtraceSpecT *
681 struct vmi1__TargetPtraceSpecT *out) {
682 struct vmi1__TargetPtraceSpecT *ospec;
692 ospec->pid =
SOAP_CALLOC(soap,1,
sizeof(*(ospec->pid)));
693 *(ospec->pid) = spec->
pid;
699 for (i = 0; spec->
argv[i] != NULL; ++i)
702 ospec->arguments =
SOAP_CALLOC(soap,1,
sizeof(*(ospec->arguments)));
703 ospec->arguments->__sizeargument =
len;
704 ospec->arguments->argument =
\
705 SOAP_CALLOC(soap,len,
sizeof(*(ospec->arguments->argument)));
706 for (i = 0; i <
len; ++i) {
707 ospec->arguments->argument[i].__size = strlen(spec->
argv[i]);
713 for (i = 0; spec->
envp[i] != NULL; ++i)
716 ospec->environment =
SOAP_CALLOC(soap,1,
sizeof(*(ospec->environment)));
717 ospec->environment->__sizeenvvar =
len;
718 ospec->environment->envvar =
\
719 SOAP_CALLOC(soap,len,
sizeof(*(ospec->environment->envvar)));
720 for (i = 0; i <
len; ++i)
731 enum vmi1__ThreadStatusT status,
737 case vmi1__ThreadStatusT__unknown:
740 case vmi1__ThreadStatusT__running:
743 case vmi1__ThreadStatusT__stopped:
746 case vmi1__ThreadStatusT__sleeping:
749 case vmi1__ThreadStatusT__zombie:
752 case vmi1__ThreadStatusT__dead:
755 case vmi1__ThreadStatusT__blockedio:
758 case vmi1__ThreadStatusT__paging:
761 case vmi1__ThreadStatusT__paused:
766 verror(
"unknown ThreadStatusT %d\n",status);
777 enum vmi1__ThreadStatusT
781 enum vmi1__ThreadStatusT *out) {
782 enum vmi1__ThreadStatusT retval;
786 retval = vmi1__ThreadStatusT__unknown;
789 retval = vmi1__ThreadStatusT__running;
792 retval = vmi1__ThreadStatusT__stopped;
795 retval = vmi1__ThreadStatusT__sleeping;
798 retval = vmi1__ThreadStatusT__zombie;
801 retval = vmi1__ThreadStatusT__dead;
804 retval = vmi1__ThreadStatusT__blockedio;
807 retval = vmi1__ThreadStatusT__paging;
810 retval = vmi1__ThreadStatusT__paused;
813 verror(
"unknown thread_status_t %d\n",status);
814 retval = vmi1__ThreadStatusT__unknown;
826 enum vmi1__TargetStatusT status,
832 case vmi1__TargetStatusT__unknown:
835 case vmi1__TargetStatusT__running:
838 case vmi1__TargetStatusT__paused:
841 case vmi1__TargetStatusT__dead:
844 case vmi1__TargetStatusT__stopped:
847 case vmi1__TargetStatusT__error:
850 case vmi1__TargetStatusT__done:
854 verror(
"unknown TargetStatusT %d\n",status);
865 enum vmi1__TargetStatusT
869 enum vmi1__TargetStatusT *out) {
871 enum vmi1__TargetStatusT retval;
875 retval = vmi1__TargetStatusT__unknown;
878 retval = vmi1__TargetStatusT__running;
881 retval = vmi1__TargetStatusT__paused;
884 retval = vmi1__TargetStatusT__dead;
887 retval = vmi1__TargetStatusT__stopped;
890 retval = vmi1__TargetStatusT__error;
893 retval = vmi1__TargetStatusT__done;
896 verror(
"unknown target_status_t %d\n",status);
897 retval = vmi1__TargetStatusT__unknown;
907 struct vmi1__ThreadT *
911 struct vmi1__ThreadT *out) {
912 struct vmi1__ThreadT *othread;
919 othread->thid = thread->
tid;
921 othread->threadStatus =
\
937 struct vmi1__TargetT *
941 struct vmi1__TargetT *out) {
956 otarget->activeProbeThreadEntry =
957 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeThreadEntry));
962 otarget->activeProbeThreadExit =
963 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeThreadExit));
968 otarget->activeProbeMemory =
969 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeMemory));
974 otarget->activeProbeOther =
975 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeOther));
981 otarget->targetSpec =
\
984 otarget->targetStatus = vmi1__TargetStatusT__unknown;
986 otarget->__sizethread = 0;
987 otarget->thread = NULL;
989 otarget->__sizeaddrSpace = 0;
990 otarget->addrSpace = NULL;
995 struct vmi1__TargetT *
999 struct vmi1__TargetT *out) {
1000 struct vmi1__TargetT *
otarget;
1013 otarget->tid = target->
id;
1021 otarget->activeProbeThreadEntry =
1022 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeThreadEntry));
1027 otarget->activeProbeThreadExit =
1028 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeThreadExit));
1033 otarget->activeProbeMemory =
1034 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeMemory));
1039 otarget->activeProbeOther =
1040 SOAP_CALLOC(soap,1,
sizeof(*otarget->activeProbeOther));
1046 otarget->targetSpec =
\
1049 otarget->targetStatus =
\
1054 if (threads && array_list_len(threads)) {
1055 otarget->__sizethread = array_list_len(threads);
1056 otarget->thread =
SOAP_CALLOC(soap,array_list_len(threads),
1057 sizeof(*(otarget->thread)));
1060 &otarget->thread[i]);
1068 otarget->__sizeaddrSpace =
len;
1069 otarget->addrSpace =
SOAP_CALLOC(soap,len,
sizeof(*(otarget->addrSpace)));
1073 &otarget->addrSpace[i]);
1079 array_list_free(threads);
1084 struct vmi1__AddrSpaceT *
1088 struct vmi1__AddrSpaceT *out) {
1089 struct vmi1__AddrSpaceT *ospace;
1102 ospace->id = space->
tag;
1109 ospace->__sizememRegion =
len;
1110 ospace->memRegion =
SOAP_CALLOC(soap,len,
sizeof(*(ospace->memRegion)));
1114 &ospace->memRegion[i]);
1122 enum vmi1__MemRegionTypeT
1126 enum vmi1__MemRegionTypeT *out) {
1128 enum vmi1__MemRegionTypeT retval;
1132 retval = vmi1__MemRegionTypeT__unknown;
1135 retval = vmi1__MemRegionTypeT__heap;
1138 retval = vmi1__MemRegionTypeT__stack;
1141 retval = vmi1__MemRegionTypeT__vdso;
1144 retval = vmi1__MemRegionTypeT__vsyscall;
1147 retval = vmi1__MemRegionTypeT__anon;
1150 retval = vmi1__MemRegionTypeT__main;
1153 retval = vmi1__MemRegionTypeT__lib;
1156 verror(
"unknown region_type_t %d\n",rtype);
1157 retval = vmi1__MemRegionTypeT__unknown;
1167 struct vmi1__MemRegionT *
1171 struct vmi1__MemRegionT *out) {
1172 struct vmi1__MemRegionT *oregion;
1176 GHashTableIter iter;
1192 oregion->memRegionType =
\
1204 oregion->__sizememRange =
len;
1205 oregion->memRange =
SOAP_CALLOC(soap,len,
sizeof(*(oregion->memRange)));
1215 oregion->__sizedebugFileId =
len;
1216 oregion->debugFileId =
\
1217 SOAP_CALLOC(soap,len,
sizeof(*(oregion->debugFileId)));
1218 g_hash_table_iter_init(&iter,region->
debugfiles);
1220 while (g_hash_table_iter_next(&iter,NULL,(gpointer *)&df)) {
1221 snprintf(idbuf,12,
"i%d",df->
id);
1230 struct vmi1__MemRangeT *
1234 struct vmi1__MemRangeT *out) {
1235 struct vmi1__MemRangeT *orange;
1255 orange->start = range->
start;
1256 orange->end = range->
end;
1257 orange->offset = range->
offset;
1262 struct vmi1__ProbeT *
1266 struct vmi1__ProbeT *out) {
1267 struct vmi1__ProbeT *oprobe;
1275 oprobe->pid = probe->
id;
1295 struct vmi1__ProbeEventT *
1297 struct probe *
probe,
tid_t tid,
int type,
struct probe *trigger,
struct probe *base,
1299 struct vmi1__ProbeEventT *out) {
1300 struct vmi1__ProbeEventT *oevent;
1302 GHashTableIter iter;
1316 oevent->probeEventType = _vmi1__probeEventType__pre;
1318 oevent->probeEventType = _vmi1__probeEventType__post;
1324 oevent->registerValues =
SOAP_CALLOC(soap,1,
sizeof(*oevent->registerValues));
1328 g_hash_table_iter_init(&iter,regs);
1330 oevent->registerValues->__sizeregisterValue = g_hash_table_size(regs);
1331 oevent->registerValues->registerValue =
1333 sizeof(*oevent->registerValues->registerValue));
1335 while (g_hash_table_iter_next(&iter,
1336 (gpointer *)&rname,(gpointer *)&rvp)) {
1337 oevent->registerValues->registerValue[i].name = rname;
1338 oevent->registerValues->registerValue[i].value = *rvp;
1341 g_hash_table_destroy(regs);
1344 oevent->registerValues->__sizeregisterValue = 0;
1345 oevent->registerValues->registerValue = NULL;
1353 enum vmi1__ProbepointTypeT in) {
1355 case vmi1__ProbepointTypeT__break_:
1357 case vmi1__ProbepointTypeT__watch:
1360 verror(
"unknown ProbepointTypeT %d!\n",in);
1364 enum vmi1__ProbepointTypeT
1369 return vmi1__ProbepointTypeT__break_;
1371 return vmi1__ProbepointTypeT__watch;
1373 verror(
"unknown probepoint_type_t %d!\n",in);
1380 enum vmi1__ProbepointStyleT in) {
1382 case vmi1__ProbepointStyleT__hw:
1384 case vmi1__ProbepointStyleT__sw:
1386 case vmi1__ProbepointStyleT__fastest:
1389 verror(
"unknown ProbepointStyleT %d!\n",in);
1393 enum vmi1__ProbepointStyleT
1398 return vmi1__ProbepointStyleT__hw;
1400 return vmi1__ProbepointStyleT__sw;
1402 return vmi1__ProbepointStyleT__fastest;
1404 verror(
"unknown probepoint_style_t %d!\n",in);
1411 enum vmi1__ProbepointWhenceT in) {
1413 case vmi1__ProbepointWhenceT__auto_:
1415 case vmi1__ProbepointWhenceT__exec:
1417 case vmi1__ProbepointWhenceT__write:
1419 case vmi1__ProbepointWhenceT__readwrite:
1422 verror(
"unknown ProbepointWhenceT %d!\n",in);
1426 enum vmi1__ProbepointWhenceT
1431 return vmi1__ProbepointWhenceT__auto_;
1433 return vmi1__ProbepointWhenceT__exec;
1435 return vmi1__ProbepointWhenceT__write;
1437 return vmi1__ProbepointWhenceT__readwrite;
1439 verror(
"unknown probepoint_whence_t %d!\n",in);
1446 enum vmi1__ProbepointSizeT in) {
1448 case vmi1__ProbepointSizeT__auto_:
1450 case vmi1__ProbepointSizeT__0:
1452 case vmi1__ProbepointSizeT__2:
1454 case vmi1__ProbepointSizeT__4:
1456 case vmi1__ProbepointSizeT__8:
1459 verror(
"unknown ProbepointSizeT %d!\n",in);
1463 enum vmi1__ProbepointSizeT
1468 return vmi1__ProbepointSizeT__auto_;
1470 return vmi1__ProbepointSizeT__0;
1472 return vmi1__ProbepointSizeT__2;
1474 return vmi1__ProbepointSizeT__4;
1476 return vmi1__ProbepointSizeT__8;
1478 verror(
"unknown probepoint_watchsize_t %d!\n",in);
1485 enum vmi1__ActionTypeT in) {
1487 case vmi1__ActionTypeT__return_:
1489 case vmi1__ActionTypeT__regmod:
1491 case vmi1__ActionTypeT__memmod:
1493 case vmi1__ActionTypeT__singlestep:
1496 verror(
"unknown ActionTypeT %d!\n",in);
1500 enum vmi1__ActionTypeT
1505 return vmi1__ActionTypeT__return_;
1507 return vmi1__ActionTypeT__regmod;
1509 return vmi1__ActionTypeT__memmod;
1511 return vmi1__ActionTypeT__singlestep;
1513 verror(
"unknown action_type_t %d!\n",in);
1520 enum vmi1__ActionWhenceT in) {
1522 case vmi1__ActionWhenceT__oneshot:
1524 case vmi1__ActionWhenceT__repeatpre:
1526 case vmi1__ActionWhenceT__repeatpost:
1529 verror(
"unknown ActionWhenceT %d!\n",in);
1533 enum vmi1__ActionWhenceT
1538 return vmi1__ActionWhenceT__oneshot;
1540 return vmi1__ActionWhenceT__repeatpre;
1542 return vmi1__ActionWhenceT__repeatpost;
1544 verror(
"unknown action_whence_t %d!\n",in);
1551 enum vmi1__HandlerMsgT in) {
1553 case vmi1__HandlerMsgT__success:
1555 case vmi1__HandlerMsgT__failure:
1557 case vmi1__HandlerMsgT__stepping:
1559 case vmi1__HandlerMsgT__stepping_USCOREat_USCOREbp:
1562 verror(
"unknown HandlerMsgT %d!\n",in);
1566 enum vmi1__HandlerMsgT
1571 return vmi1__HandlerMsgT__success;
1573 return vmi1__HandlerMsgT__failure;
1575 return vmi1__HandlerMsgT__stepping;
1577 return vmi1__HandlerMsgT__stepping_USCOREat_USCOREbp;
1579 verror(
"unknown handler_msg_t %d!\n",in);
1584 struct vmi1__ActionT *
1588 struct vmi1__ActionT *out) {
1589 struct vmi1__ActionT *oaction;
1596 oaction->actionId = action->
id;
1597 oaction->actionSpec =
SOAP_CALLOC(soap,1,
sizeof(*oaction->actionSpec));
1598 oaction->actionSpec->tid = action->
target->
id;
1599 oaction->actionSpec->pid = action->
probe->
id;
1600 oaction->actionSpec->type =
\
1602 oaction->actionSpec->whence =
\
1604 switch (action->
type) {
1606 oaction->actionSpec->__union_ActionSpecT = \
1607 SOAP_UNION__vmi1__union_ActionSpecT_return_;
1608 oaction->actionSpec->union_ActionSpecT.return_ =
\
1609 SOAP_CALLOC(soap,1,
sizeof(*oaction->actionSpec->union_ActionSpecT.return_));
1610 oaction->actionSpec->union_ActionSpecT.return_->code = \
1611 action->detail.ret.retval;
1614 oaction->actionSpec->__union_ActionSpecT = \
1615 SOAP_UNION__vmi1__union_ActionSpecT_regmod;
1616 oaction->actionSpec->union_ActionSpecT.regmod =
\
1617 SOAP_CALLOC(soap,1,
sizeof(*oaction->actionSpec->union_ActionSpecT.regmod));
1618 oaction->actionSpec->union_ActionSpecT.regmod->registerValue =
\
1619 SOAP_CALLOC(soap,1,
sizeof(*oaction->actionSpec->union_ActionSpecT.regmod->registerValue));
1621 oaction->actionSpec->union_ActionSpecT.regmod->registerValue->name,
1623 oaction->actionSpec->union_ActionSpecT.regmod->registerValue->value = \
1624 action->detail.regmod.regval;
1627 oaction->actionSpec->__union_ActionSpecT = \
1628 SOAP_UNION__vmi1__union_ActionSpecT_memmod;
1629 oaction->actionSpec->union_ActionSpecT.memmod =
\
1630 SOAP_CALLOC(soap,1,
sizeof(*oaction->actionSpec->union_ActionSpecT.memmod));
1631 oaction->actionSpec->union_ActionSpecT.memmod->addr = \
1632 action->detail.memmod.destaddr;
1634 oaction->actionSpec->union_ActionSpecT.memmod->data.__ptr = \
1636 oaction->actionSpec->union_ActionSpecT.memmod->data.__size = \
1651 verror(
"unknown action type %d!\n",action->
type);
1658 struct vmi1__ActionEventT *
1663 struct vmi1__ActionEventT *out) {
1664 struct vmi1__ActionEventT *oevent;
1666 GHashTableIter iter;
1679 oevent->actionDetail =
SOAP_CALLOC(soap,1,
sizeof(*oevent->actionDetail));
1680 oevent->actionDetail->stepCount =
\
1681 SOAP_CALLOC(soap,1,
sizeof(*oevent->actionDetail->stepCount));
1682 *oevent->actionDetail->stepCount = msg_detail;
1688 oevent->registerValues =
SOAP_CALLOC(soap,1,
sizeof(*oevent->registerValues));
1692 g_hash_table_iter_init(&iter,regs);
1694 oevent->registerValues->__sizeregisterValue = g_hash_table_size(regs);
1695 oevent->registerValues->registerValue =
1697 sizeof(*oevent->registerValues->registerValue));
1699 while (g_hash_table_iter_next(&iter,
1700 (gpointer *)&rname,(gpointer *)&rvp)) {
1701 oevent->registerValues->registerValue[i].name = rname;
1702 oevent->registerValues->registerValue[i].value = *rvp;
1705 g_hash_table_destroy(regs);
1708 oevent->registerValues->__sizeregisterValue = 0;
1709 oevent->registerValues->registerValue = NULL;
struct vmi1__TargetSpecT * t_target_spec_to_x_TargetSpecT(struct soap *soap, struct target_spec *spec, GHashTable *reftab, struct vmi1__TargetSpecT *out)
target_mode_t target_mode
enum vmi1__ThreadBPModeT t_thread_bpmode_t_to_x_ThreadBPModeT(struct soap *soap, thread_bpmode_t mode, GHashTable *reftab, enum vmi1__ThreadBPModeT *out)
unsigned int use_xenaccess
struct vmi1__TargetT * t_target_to_x_TargetT(struct soap *soap, struct target *target, GHashTable *reftab, struct vmi1__TargetT *out)
struct vmi1__TargetPtraceSpecT * t_linux_userproc_spec_to_x_TargetPtraceSpecT(struct soap *soap, struct linux_userproc_spec *spec, GHashTable *reftab, struct vmi1__TargetPtraceSpecT *out)
#define SOAP_CALLOC(soap, nmemb, size)
struct linux_userproc_spec * linux_userproc_build_spec(void)
struct vmi1__MemRangeT * t_memrange_to_x_MemRangeT(struct soap *soap, struct memrange *range, GHashTable *reftab, struct vmi1__MemRangeT *out)
GHashTable * target_copy_registers(struct target *target, tid_t tid)
unsigned long int memcache_mmap_size
#define v_g_list_foreach(glhead, glcur, elm)
enum vmi1__HandlerMsgT t_handler_msg_t_to_x_HandlerMsgT(struct soap *soap, handler_msg_t in)
active_probe_flags_t ap_flags
#define verror(format,...)
struct vmi1__AddrSpaceT * t_addrspace_to_x_AddrSpaceT(struct soap *soap, struct addrspace *space, GHashTable *reftab, struct vmi1__AddrSpaceT *out)
thread_status_t x_ThreadStatusT_to_t_thread_status_t(struct soap *soap, enum vmi1__ThreadStatusT status, GHashTable *reftab, thread_status_t *out)
unsigned int clear_mem_caches_each_exception
struct gdb_spec * x_TargetGdbSpecT_to_t_gdb_spec(struct soap *soap, struct vmi1__TargetGdbSpecT *spec, GHashTable *reftab, struct gdb_spec *out)
action_whence_t x_ActionWhenceT_to_t_action_whence_t(struct soap *soap, enum vmi1__ActionWhenceT in)
unsigned int no_hvm_setcontext
ADDR probe_addr(struct probe *probe)
struct target_spec * x_TargetSpecT_to_t_target_spec(struct soap *soap, struct vmi1__TargetSpecT *spec, GHashTable *reftab, struct target_spec *out)
struct vmi1__ThreadT * t_target_thread_to_x_ThreadT(struct soap *soap, struct target_thread *thread, GHashTable *reftab, struct vmi1__ThreadT *out)
enum vmi1__ActionWhenceT t_action_whence_t_to_x_ActionWhenceT(struct soap *soap, action_whence_t in)
#define array_list_foreach(alist, lpc, placeholder)
struct xen_vm_spec * xen_vm_build_spec(void)
enum vmi1__ThreadStatusT t_thread_status_t_to_x_ThreadStatusT(struct soap *soap, thread_status_t status, GHashTable *reftab, enum vmi1__ThreadStatusT *out)
unsigned int no_hw_debug_reg_clear
struct action::@17::@21 memmod
struct vmi1__ProbeEventT * t_probe_to_x_ProbeEventT(struct soap *soap, struct probe *probe, tid_t tid, int type, struct probe *trigger, struct probe *base, GHashTable *reftab, struct vmi1__ProbeEventT *out)
struct vmi1__MemRegionT * t_memregion_to_x_MemRegionT(struct soap *soap, struct memregion *region, GHashTable *reftab, struct vmi1__MemRegionT *out)
unsigned int clear_mem_caches_each_exception
handler_msg_t x_HandlerMsgT_to_t_handler_msg_t(struct soap *soap, enum vmi1__HandlerMsgT in)
unsigned int no_use_multiplexer
struct vmi1__ActionT * t_action_to_x_ActionT(struct soap *soap, struct action *action, GHashTable *reftab, struct vmi1__ActionT *out)
const char * target_regname(struct target *target, REG reg)
target_mode_t x_TargetModeT_to_t_target_mode_t(struct soap *soap, enum vmi1__TargetModeT mode, GHashTable *reftab, target_mode_t *out)
enum vmi1__MemRegionTypeT t_region_type_t_to_x_MemRegionTypeT(struct soap *soap, region_type_t rtype, GHashTable *reftab, enum vmi1__MemRegionTypeT *out)
enum vmi1__TargetStatusT t_target_status_t_to_x_TargetStatusT(struct soap *soap, target_status_t status, GHashTable *reftab, enum vmi1__TargetStatusT *out)
struct action::@17::@20 regmod
probepoint_whence_t x_ProbepointWhenceT_to_t_probepoint_whence_t(struct soap *soap, enum vmi1__ProbepointWhenceT in)
probepoint_watchsize_t x_ProbepointSizeT_to_t_probepoint_watchsize_t(struct soap *soap, enum vmi1__ProbepointSizeT in)
probepoint_style_t x_ProbepointStyleT_to_t_probepoint_style_t(struct soap *soap, enum vmi1__ProbepointStyleT in)
struct vmi1__ActionEventT * t_action_to_x_ActionEventT(struct soap *soap, struct action *action, struct target_thread *tthread, handler_msg_t msg, int msg_detail, GHashTable *reftab, struct vmi1__ActionEventT *out)
target_type_t target_type
struct target_thread * thread
probepoint_type_t x_ProbepointTypeT_to_t_probepoint_type_t(struct soap *soap, enum vmi1__ProbepointTypeT in)
enum vmi1__TargetTypeT t_target_type_t_to_x_TargetTypeT(struct soap *soap, target_type_t type, GHashTable *reftab, enum vmi1__TargetTypeT *out)
struct vmi1__TargetT * t_target_id_to_x_TargetT(struct soap *soap, int target_id, struct target_spec *spec, GHashTable *reftab, struct vmi1__TargetT *out)
enum vmi1__ProbepointSizeT t_probepoint_watchsize_t_to_x_ProbepointSizeT(struct soap *soap, probepoint_watchsize_t in)
enum vmi1__ProbepointWhenceT t_probepoint_whence_t_to_x_ProbepointWhenceT(struct soap *soap, probepoint_whence_t in)
target_status_t target_status(struct target *target)
struct target_spec * target_build_spec(target_type_t type, target_mode_t mode)
unsigned long int memcache_mmap_size
struct linux_userproc_spec * x_TargetPtraceSpecT_to_t_linux_userproc_spec(struct soap *soap, struct vmi1__TargetPtraceSpecT *spec, GHashTable *reftab, struct linux_userproc_spec *out)
probepoint_watchsize_t watchsize
int target_id(struct target *target)
struct target_spec * spec
action_type_t x_ActionTypeT_to_t_action_type_t(struct soap *soap, enum vmi1__ActionTypeT in)
char * debugfile_root_prefix
struct target_thread * target_lookup_thread(struct target *target, tid_t tid)
enum vmi1__ProbepointStyleT t_probepoint_style_t_to_x_ProbepointStyleT(struct soap *soap, probepoint_style_t in)
struct gdb_spec * gdb_build_spec(void)
struct vmi1__TargetGdbSpecT * t_gdb_spec_to_x_TargetGdbSpecT(struct soap *soap, struct gdb_spec *spec, GHashTable *reftab, struct vmi1__TargetGdbSpecT *out)
#define SOAP_STRCPY(soap, d, s)
enum vmi1__ActionTypeT t_action_type_t_to_x_ActionTypeT(struct soap *soap, action_type_t in)
char * probe_name(struct probe *probe)
target_type_t x_TargetTypeT_to_t_target_type_t(struct soap *soap, enum vmi1__TargetTypeT type, GHashTable *reftab, target_type_t *out)
target_status_t x_TargetStatusT_to_t_target_status_t(struct soap *soap, enum vmi1__TargetStatusT status, GHashTable *reftab, target_status_t *out)
struct array_list * target_list_threads(struct target *target)
struct vmi1__ProbeT * t_probe_to_x_ProbeT(struct soap *soap, struct probe *probe, GHashTable *reftab, struct vmi1__ProbeT *out)
enum vmi1__ProbepointTypeT t_probepoint_type_t_to_x_ProbepointTypeT(struct soap *soap, probepoint_type_t in)
struct probepoint * probepoint
active_probe_flags_t ap_flags
thread_bpmode_t x_ThreadBPModeT_to_t_thread_bpmode_t(struct soap *soap, enum vmi1__ThreadBPModeT mode, GHashTable *reftab, thread_bpmode_t *out)
enum vmi1__TargetModeT t_target_mode_t_to_x_TargetModeT(struct soap *soap, target_mode_t mode, GHashTable *reftab, enum vmi1__TargetModeT *out)
probepoint_whence_t whence
target_type_t supported_overlay_types