Jump to content

cvkcmd_s

From EDM2
Revision as of 17:39, 19 May 2025 by Martini (talk | contribs) (Fields)

Data associated with the kernel debugger communications protocol.

Type

USHORT       Cmd
ULONG        Value
ULONG        OffV
USHORT       SegV
USHORT       MTE
USHORT       PID
USHORT       TID
USHORT       DBit
RegSA_struc  Reg
UCHAR        MemCache

C Declaration Method

typedef struct

Fields

Cmd
Command, One of the following:
Command Code Description CVK_CMDSIZE_ CVK_RETSIZE_
CVK_CMD_RMEM 1 Read memory 18 20
CVK_CMD_RREG 3 Read registers 18 24 +
sizeof(
RegSa_
struc)
CVK_CMD_WMEM 4 Write memory 20 6
CVK_CMD_WREG 6 Write registers 20 +
sizeof(
RegSa_
struc)
2
CVK_CMD_RUN 7 Resume execution 6 0
CVK_CMD_KILL 8 Reboot victim
machine
2 0
CVK_CMD_STEP 9 Single step 2 0
CVK_CMD_NUMTOBASE 13 Get object/segment
information
14 14
CVK_CMD_LIBNAME 16 Get module
information
6 6
CVK_CMD_RAW 20 Perform kernel
debugger command
6
CVK_CMD_DBIT 22 Get selector
information
20
CVK_CMD_RSTEP 23 Range step 10 0
CVK_CMD_SCANMTE 24 Scan module table 2 6
CVK_CMD_SCANTCB 25 Scan thread control
blocks
6 10
CVK_CMD_SEL2LIN 26 Convert
selector:offset to
linear address.
18 6
CVK_CMD_LIN2SEL 27 Convert linear
address to
selector:offset.
18 12
CVK_CMD_OBJCOUNT 28 Get number of
objects/segments in
module
6 6
CVK_CMD_SCANOBJ 29 Scan object/segment
table
14 10
CVK_CMD_SELINFO 30 Get selector
information
18 20
CVK_CMD_RNPX 31 Read NPX state 18 128
CVK_CMD_WNPX 32 Write NPX state 128 60
CVK_CMD_ENA 33 Enable optional
features
6 2
CVK_CMD_DIS 34 Disable optional
features
6 2
CVK_CMD_PIREG 35 Register for PAGEIN
notification
14 2
CVK_CMD_PIDRG 36 Deregister for
PAGEIN notification
14 2
┌────────────────────┬─────┬────────────────────┬────────┬────────┐
│Command             │Code │Description         │CVK_    │CVK_    │
│                    │     │                    │CMDSIZE_│RETSIZE_│
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_RMEM        │ 1   │Read memory         │18      │20      │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_RREG        │ 3   │Read registers      │18      │24 +    │
│                    │     │                    │        │sizeof( │
│                    │     │                    │        │RegSa_  │
│                    │     │                    │        │struc)  │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_WMEM        │ 4   │Write memory        │20      │6       │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_WREG        │ 6   │Write registers     │20 +    │2       │
│                    │     │                    │sizeof( │        │
│                    │     │                    │RegSa_  │        │
│                    │     │                    │struc)  │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_RUN         │ 7   │Resume execution    │6       │0       │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_KILL        │ 8   │Reboot victim       │2       │0       │
│                    │     │machine             │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_STEP        │ 9   │Single step         │2       │0       │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_NUMTOBASE   │13   │Get object/segment  │14      │14      │
│                    │     │information         │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_LIBNAME     │16   │Get module          │6       │6       │
│                    │     │information         │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_RAW         │20   │Perform kernel      │6       │        │
│                    │     │debugger command    │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_DBIT        │22   │Get selector        │20      │        │
│                    │     │information         │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_RSTEP       │23   │Range step          │10      │0       │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_SCANMTE     │24   │Scan module table   │2       │6       │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_SCANTCB     │25   │Scan thread control │6       │10      │
│                    │     │blocks              │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_SEL2LIN     │26   │Convert             │18      │6       │
│                    │     │selector:offset to  │        │        │
│                    │     │linear address.     │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_LIN2SEL     │27   │Convert linear      │18      │12      │
│                    │     │address to          │        │        │
│                    │     │selector:offset.    │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_OBJCOUNT    │28   │Get number of       │6       │6       │
│                    │     │objects/segments in │        │        │
│                    │     │module              │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_SCANOBJ     │29   │Scan object/segment │14      │10      │
│                    │     │table               │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_SELINFO     │30   │Get selector        │18      │20      │
│                    │     │information         │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_RNPX        │31   │Read NPX state      │18      │128     │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_WNPX        │32   │Write NPX state     │128     │60      │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_ENA         │33   │Enable optional     │6       │2       │
│                    │     │features            │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_DIS         │34   │Disable optional    │6       │2       │
│                    │     │features            │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_PIREG       │35   │Register for PAGEIN │14      │2       │
│                    │     │notification        │        │        │
├────────────────────┼─────┼────────────────────┼────────┼────────┤
│CVK_CMD_PIDRG       │36   │Deregister for      │14      │2       │
│                    │     │PAGEIN notification │        │        │
└────────────────────┴─────┴────────────────────┴────────┴────────┘
Value
Value, command dependent.
OffV
Command dependent, usually a linear address.
SegV
Command dependent. Usually slot number of thread.
MTE
Module Table Entry
PID
Process Identifier
TID
Thread Identifier
DBit
Flags from the CS selector.
Reg
Register save area

MemCache Data area used for variable length data in a command or response. Maximum size of the data is CVK_MEMCACHE_SIZE (512).