generalize machine ops

This commit is contained in:
Nikita Smith
2025-12-16 10:40:48 -08:00
parent 782f87e512
commit 952afd49a7
7 changed files with 89 additions and 119 deletions
+23
View File
@@ -678,6 +678,29 @@ union Guid
};
StaticAssert(sizeof(Guid) == 16, g_guid_size_check);
////////////////////////////////
//~ Machine Ops
typedef enum MachineOpResult
{
MachineOpResult_Null,
MachineOpResult_Ok,
MachineOpResult_Fail,
MachineOpResult_Maybe,
} MachineOpResult;
#define MACHINE_OP_REG_READ(name) MachineOpResult name(U64 reg_id, void *buffer, U64 buffer_max, void *ud)
typedef MACHINE_OP_REG_READ(MachineOp_RegRead);
#define MACHINE_OP_REG_WRITE(name) MachineOpResult name(U64 reg_id, void *value, U64 value_size, void *ud)
typedef MACHINE_OP_REG_WRITE(MachineOp_RegWrite);
#define MACHINE_OP_MEM_READ(name) MachineOpResult name(U64 addr, void *buffer, U64 buffer_size, void *ud)
typedef MACHINE_OP_MEM_READ(MachineOp_MemRead);
#define MACHINE_OP_MEM_WRITE(name) MachineOpResult name(U64 addr, void *value, U64 value_size, void *ud)
typedef MACHINE_OP_MEM_WRITE(MachineOp_MemWrite);
////////////////////////////////
//~ rjf: Basic Constants