DBG C WriteCoRegs: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 28: | Line 28: | ||
*Index is not zero. | *Index is not zero. | ||
The coprocessor may adjust some control register bits, but DosDebug will not return an error if a modification is attempted, nor will it mask the values. Because of internal coprocessor management, this adjustment may be delayed until the thread actually uses the coprocessor again. | The coprocessor may adjust some control register bits, but DosDebug will not return an error if a modification is attempted, nor will it mask the values. Because of internal coprocessor management, this adjustment may be delayed until the thread actually uses the coprocessor again. | ||
[[Category:Debug Command]] |
Latest revision as of 17:07, 10 March 2020
Debug Command 15 - Write Coprocessor Registers Command
- Parameters
- Pid= Process ID of debuggee processor
- Tid= Nonzero Thread ID of Coprocessor register set to read
- Cmd= DBG_C_WriteCoRegs
- Value= Coprocessor Type Identifier
- Buffer= Pointer to Coprocessor Register Context Buffer
- Len= Size of Coprocessor Register Context Buffer
- Index= Reserved, must be zero
The coprocessor type identifier is a number that identifies the format of the coprocessor register context buffer. The buffer length must correspond exactly to the requested buffer format.
See DBG_C_ReadCoRegs for the supported coprocessor types, formats, and lengths.
The coprocessor register context buffer format is the same as that defined by the fsave/frestore instructions as executed by the appropriate processor.
- Returns
The debuggee thread's coprocessor registers are filled with the values passed via the coprocessor register context buffer, for the thread specified in the Tid field.
If an error occurs while attempting to access the coprocessor context during this command, the DBG_N_CoError notification is returned.
- Restrictions
An error is returned if any one of the following occurs:
- The debuggee process is emulating the coprocessor.
- The specified debuggee thread has not yet attempted to use the coprocessor.
- The wrong coprocessor type is used.
- Index is not zero.
The coprocessor may adjust some control register bits, but DosDebug will not return an error if a modification is attempted, nor will it mask the values. Because of internal coprocessor management, this adjustment may be delayed until the thread actually uses the coprocessor again.