/* function with your structures and members */ void foo() { STRUCT(thread_context); STRUCT(thread_registers); MEMBER(thread_registers, tmp); MEMBER(thread_registers, rax); MEMBER(thread_registers, rbx); MEMBER(thread_registers, rcx); MEMBER(thread_registers, rdx); MEMBER(thread_registers, rbp); MEMBER(thread_registers, rsi); MEMBER(thread_registers, rdi); MEMBER(thread_registers, r8); MEMBER(thread_registers, r9); MEMBER(thread_registers, r10); MEMBER(thread_registers, r11); MEMBER(thread_registers, r12); MEMBER(thread_registers, r13); MEMBER(thread_registers, r14); MEMBER(thread_registers, r15); STRUCT(thread_state); MEMBER(thread_state, context); MEMBER(thread_state, registers); STRUCT(cpu); MEMBER(cpu, nested_isr); MEMBER(cpu, kernel_stack_top); MEMBER(cpu, current_thread); MEMBER(cpu, current_thread_rsp); }
static void Render() { BitmapClearArea(screen[active], STRUCT(Area2D, 0, 0, MAX_W * 2 + SIZE, MAX_H * 2 + SIZE)); DrawPlotter(); WaitVBlank(); ITER(i, 0, DEPTH - 1, CopInsSet32(bplptr[i], screen[active]->planes[i])); active ^= 1; }
}; FIELD_DESCRIPTOR Dns_Queries[] = { FIELD3(FieldTypePointer,tDNS_QUERIES,QueryIrp), FIELD3(FieldTypeListEntry,tDNS_QUERIES,ToResolve), FIELD3(FieldTypePointer,tDNS_QUERIES,Context), FIELD3(FieldTypeBoolean,tDNS_QUERIES,ResolvingNow), 0 }; // // List of structs currently handled by the debugger extensions // STRUCT_DESCRIPTOR Structs[] = { STRUCT(tDEVICECONTEXT,DeviceContext), STRUCT(tNAMEADDR,NameAddr), STRUCT(tADDRESSELE,AddressEle), STRUCT(tCLIENTELE,ClientEle), STRUCT(tCONNECTELE,ConnectEle), STRUCT(tLOWERCONNECTION,LowerConn), STRUCT(tDGRAM_SEND_TRACKING,Tracker), STRUCT(tNBTCONFIG,Nbt_Config), STRUCT(NBT_WORK_ITEM_CONTEXT,NbtWorkContext), STRUCT(tTIMERQENTRY,Timer_Entry), STRUCT(tDNS_QUERIES,Dns_Queries), 0 };