Changeset 40761 in vbox
- Timestamp:
- Apr 4, 2012 7:56:12 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/sup.h
r40759 r40761 1320 1320 1321 1321 1322 /** 1323 * Usermode probe context information. 1324 */ 1325 typedef struct SUPDRVTRACERUSRCTX 1326 { 1327 union 1328 { 1329 /** X86 context info. */ 1330 struct 1331 { 1332 uint32_t uVtgProbeLoc; /**< Location record address. */ 1333 uint32_t aArgs[20]; /**< Raw arguments. */ 1334 uint32_t eip; 1335 uint32_t eflags; 1336 uint32_t eax; 1337 uint32_t ecx; 1338 uint32_t edx; 1339 uint32_t ebx; 1340 uint32_t esp; 1341 uint32_t ebp; 1342 uint32_t esi; 1343 uint32_t edi; 1344 uint16_t cs; 1345 uint16_t ss; 1346 uint16_t ds; 1347 uint16_t es; 1348 uint16_t fs; 1349 uint16_t gs; 1350 } X86; 1351 1352 /** AMD64 context info. */ 1353 struct 1354 { 1355 uint64_t uVtgProbeLoc; /**< Location record address. */ 1356 uint64_t aArgs[10]; /**< Raw arguments. */ 1357 uint64_t rip; 1358 uint64_t rflags; 1359 uint64_t rax; 1360 uint64_t rcx; 1361 uint64_t rdx; 1362 uint64_t rbx; 1363 uint64_t rsp; 1364 uint64_t rbp; 1365 uint64_t rsi; 1366 uint64_t rdi; 1367 uint64_t r8; 1368 uint64_t r9; 1369 uint64_t r10; 1370 uint64_t r11; 1371 uint64_t r12; 1372 uint64_t r13; 1373 uint64_t r14; 1374 } Amd64; 1375 } u; 1376 /** 32 if X86, 64 if AMD64. */ 1377 uint8_t cBits; 1378 /** Reserved padding. */ 1379 uint8_t abReserved[3]; 1380 /** The probe ID from the VTG location record. */ 1381 uint32_t idProbe; 1382 } SUPDRVTRACERUSRCTX; 1383 /** Pointer to the usermode probe context information. */ 1384 typedef SUPDRVTRACERUSRCTX const *PCSUPDRVTRACERUSRCTX; 1385 1386 1322 1387 /** Pointer to a tracer registration record. */ 1323 1388 typedef struct SUPDRVTRACERREG const *PCSUPDRVTRACERREG; … … 1333 1398 1334 1399 /** 1335 * Fire off a probe.1400 * Fire off a kernel probe. 1336 1401 * 1337 * @param pVtgProbeLoc 1338 * @param uArg0 1339 * @param uArg1 1340 * @param uArg2 1341 * @param uArg3 1342 * @param uArg4 1402 * @param pVtgProbeLoc The probe location record. 1403 * @param uArg0 The first raw probe argument. 1404 * @param uArg1 The second raw probe argument. 1405 * @param uArg2 The third raw probe argument. 1406 * @param uArg3 The fourth raw probe argument. 1407 * @param uArg4 The fifth raw probe argument. 1343 1408 * 1344 1409 * @remarks SUPR0VtgFireProbe will do a tail jump thru this member, so no extra … … 1348 1413 * 1349 1414 */ 1350 DECLR0CALLBACKMEMBER(void, pfnFireProbe, (struct VTGPROBELOC *pVtgProbeLoc, uintptr_t uArg0, uintptr_t uArg1, uintptr_t uArg2, 1351 uintptr_t uArg3, uintptr_t uArg4)); 1415 DECLR0CALLBACKMEMBER(void, pfnFireKernelProbe, (struct VTGPROBELOC *pVtgProbeLoc, uintptr_t uArg0, uintptr_t uArg1, uintptr_t uArg2, 1416 uintptr_t uArg3, uintptr_t uArg4)); 1417 1418 /** 1419 * Fire off a user-mode probe. 1420 * 1421 * @param pThis Pointer to the registration record. 1422 * 1423 * @param pVtgProbeLoc The probe location record. 1424 * @param pCtx The usermode context info. 1425 */ 1426 DECLR0CALLBACKMEMBER(void, pfnFireUserProbe, (PCSUPDRVTRACERREG pThis, PCSUPDRVTRACERUSRCTX pCtx)); 1352 1427 1353 1428 /**
Note:
See TracChangeset
for help on using the changeset viewer.