@@ -334,43 +334,47 @@ typedef ucontext_t native_context_t;
334
334
335
335
#if HAVE_BSD_REGS_T
336
336
337
+ #ifndef BSD_REGS_STYLE
338
+ #error "struct reg" has unrecognized format
339
+ #endif
340
+
337
341
#ifdef BIT64
338
342
339
- #define BSDREG_Rbx (reg ) (( reg).r_rbx )
340
- #define BSDREG_Rcx (reg ) (( reg).r_rcx )
341
- #define BSDREG_Rdx (reg ) (( reg).r_rdx )
342
- #define BSDREG_Rsi (reg ) (( reg).r_rsi )
343
- #define BSDREG_Rdi (reg ) (( reg).r_rdi )
344
- #define BSDREG_Rbp (reg ) (( reg).r_rbp )
345
- #define BSDREG_Rax (reg ) (( reg).r_rax )
346
- #define BSDREG_Rip (reg ) (( reg).r_rip )
347
- #define BSDREG_SegCs (reg ) (( reg).r_cs )
348
- #define BSDREG_SegSs (reg ) (( reg).r_ss )
349
- #define BSDREG_Rsp (reg ) (( reg).r_rsp )
350
- #define BSDREG_R8 (reg ) (( reg).r_r8 )
351
- #define BSDREG_R9 (reg ) (( reg).r_r9 )
352
- #define BSDREG_R10 (reg ) (( reg).r_r10 )
353
- #define BSDREG_R11 (reg ) (( reg).r_r11 )
354
- #define BSDREG_R12 (reg ) (( reg).r_r12 )
355
- #define BSDREG_R13 (reg ) (( reg).r_r13 )
356
- #define BSDREG_R14 (reg ) (( reg).r_r14 )
357
- #define BSDREG_R15 (reg ) (( reg).r_r15 )
358
- #define BSDREG_EFlags (reg ) (( reg).r_rflags )
343
+ #define BSDREG_Rbx (reg ) BSD_REGS_STYLE( reg,RBX,rbx )
344
+ #define BSDREG_Rcx (reg ) BSD_REGS_STYLE( reg,RCX,rcx )
345
+ #define BSDREG_Rdx (reg ) BSD_REGS_STYLE( reg,RDX,rdx )
346
+ #define BSDREG_Rsi (reg ) BSD_REGS_STYLE( reg,RSI,rsi )
347
+ #define BSDREG_Rdi (reg ) BSD_REGS_STYLE( reg,RDI,rdi )
348
+ #define BSDREG_Rbp (reg ) BSD_REGS_STYLE( reg,RBP,rbp )
349
+ #define BSDREG_Rax (reg ) BSD_REGS_STYLE( reg,RAX,rax )
350
+ #define BSDREG_Rip (reg ) BSD_REGS_STYLE( reg,RIP,rip )
351
+ #define BSDREG_SegCs (reg ) BSD_REGS_STYLE( reg,CS,cs )
352
+ #define BSDREG_SegSs (reg ) BSD_REGS_STYLE( reg,SS,ss )
353
+ #define BSDREG_Rsp (reg ) BSD_REGS_STYLE( reg,RSP,rsp )
354
+ #define BSDREG_R8 (reg ) BSD_REGS_STYLE( reg,R8,r8 )
355
+ #define BSDREG_R9 (reg ) BSD_REGS_STYLE( reg,R9,r9 )
356
+ #define BSDREG_R10 (reg ) BSD_REGS_STYLE( reg,R10,r10 )
357
+ #define BSDREG_R11 (reg ) BSD_REGS_STYLE( reg,R11,r11 )
358
+ #define BSDREG_R12 (reg ) BSD_REGS_STYLE( reg,R12,r12 )
359
+ #define BSDREG_R13 (reg ) BSD_REGS_STYLE( reg,R13,r13 )
360
+ #define BSDREG_R14 (reg ) BSD_REGS_STYLE( reg,R14,r14 )
361
+ #define BSDREG_R15 (reg ) BSD_REGS_STYLE( reg,R15,r15 )
362
+ #define BSDREG_EFlags (reg ) BSD_REGS_STYLE( reg,RFLAGS,rflags )
359
363
360
364
#else // BIT64
361
365
362
- #define BSDREG_Ebx (reg ) (( reg).r_ebx )
363
- #define BSDREG_Ecx (reg ) (( reg).r_ecx )
364
- #define BSDREG_Edx (reg ) (( reg).r_edx )
365
- #define BSDREG_Esi (reg ) (( reg).r_esi )
366
- #define BSDREG_Edi (reg ) (( reg).r_edi )
367
- #define BSDREG_Ebp (reg ) (( reg).r_ebp )
368
- #define BSDREG_Eax (reg ) (( reg).r_eax )
369
- #define BSDREG_Eip (reg ) (( reg).r_eip )
370
- #define BSDREG_SegCs (reg ) (( reg).r_cs )
371
- #define BSDREG_EFlags (reg ) (( reg).r_eflags )
372
- #define BSDREG_Esp (reg ) (( reg).r_esp )
373
- #define BSDREG_SegSs (reg ) (( reg).r_ss )
366
+ #define BSDREG_Ebx (reg ) BSD_REGS_STYLE( reg,EBX,ebx )
367
+ #define BSDREG_Ecx (reg ) BSD_REGS_STYLE( reg,ECX,ecx )
368
+ #define BSDREG_Edx (reg ) BSD_REGS_STYLE( reg,EDX,edx )
369
+ #define BSDREG_Esi (reg ) BSD_REGS_STYLE( reg,ESI,esi )
370
+ #define BSDREG_Edi (reg ) BSD_REGS_STYLE( reg,EDI,edi )
371
+ #define BSDREG_Ebp (reg ) BSD_REGS_STYLE( reg,EDP,ebp )
372
+ #define BSDREG_Eax (reg ) BSD_REGS_STYLE( reg,EAX,eax )
373
+ #define BSDREG_Eip (reg ) BSD_REGS_STYLE( reg,EIP,eip )
374
+ #define BSDREG_SegCs (reg ) BSD_REGS_STYLE( reg,CS,cs )
375
+ #define BSDREG_EFlags (reg ) BSD_REGS_STYLE( reg,EFLAGS,eflags )
376
+ #define BSDREG_Esp (reg ) BSD_REGS_STYLE( reg,ESP,esp )
377
+ #define BSDREG_SegSs (reg ) BSD_REGS_STYLE( reg,SS,ss )
374
378
375
379
#endif // BIT64
376
380
0 commit comments