From 2ae50e907a7042aecb00bcff7643859d3f657895 Mon Sep 17 00:00:00 2001 From: Quinn Stephens Date: Sat, 2 Nov 2024 08:28:59 -0400 Subject: More type parsing Signed-off-by: Quinn Stephens --- test.q | 50 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) (limited to 'test.q') diff --git a/test.q b/test.q index 3af6676..6e92c35 100644 --- a/test.q +++ b/test.q @@ -1,13 +1,49 @@ type EfiStatus: uint32; type EfiHandle: any*; -type TestEnum: enum { - nog, - bal +type EfiGuid: struct { + uint32 data1; + uint16 data2; + uint16 data3; }; -type TestStruct: struct { - EfiStatus status; - EfiHandle imageHandle; - any* systemTable; +type EfiTableHeader: struct { + uint64 signature; + uint32 revision; + uint32 headerSize; + uint32 crc32; + uint32 reserved; +}; + +type EfiRuntimeServices: struct { + EfiTableHeader hdr; +}; + +type EfiBootServices: struct { + EfiTableHeader hdr; +}; + +type EfiConfigurationTable: struct { + EfiGuid vendorGuid; + any* vendorTable; +}; + +type EfiSystemTable: struct { + EfiTableHeader hdr; + + any* firmwareVendor; + uint32 firmwareRevision; + + EfiHandle consoleInHandle; + any* conIn; + EfiHandle consoleOutHandle; + any* conOut; + EfiHandle standardErrorHandle; + any* stdErr; + + EfiRuntimeServices* runtimeServices; + EfiBootServices* bootServices; + + uint numberOfTableEntries; + EfiConfigurationTable* configurationTable; }; -- cgit v1.2.3