diff --git a/rtl837x_regs.h b/rtl837x_regs.h index f5bd951..c9185a6 100644 --- a/rtl837x_regs.h +++ b/rtl837x_regs.h @@ -305,32 +305,40 @@ #ifdef REGDBG -#define REG_SET(r, v) SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \ +#define REG_SET(r, v) do { \ + SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \ SFR_DATA_16 = (((uint32_t)v) >> 16) & 0xff; \ SFR_DATA_8 = (((uint16_t)v) >> 8 & 0xff); \ SFR_DATA_0 = (v) & 0xff; \ reg_write(r); \ write_char('R'); print_byte(r >> 8); print_byte(r); write_char('-'); \ - print_byte(((v) >> 24) & 0xff); print_byte((v) >> 16 & 0xff); print_byte((v) >> 8 & 0xff); print_byte( (v) & 0xff); write_char(' '); + print_byte(((v) >> 24) & 0xff); print_byte((v) >> 16 & 0xff); print_byte((v) >> 8 & 0xff); print_byte( (v) & 0xff); write_char(' '); \ +} while (0) -#define REG_WRITE(r, v24, v16, v8, v0) SFR_DATA_24 = (v24); \ +#define REG_WRITE(r, v24, v16, v8, v0) do { \ + SFR_DATA_24 = (v24); \ SFR_DATA_16 = (v16); \ SFR_DATA_8 = (v8); \ SFR_DATA_0 = (v0); \ reg_write(r); \ - write_char('R'); print_byte(r>>8); print_byte(r); write_char('-'); print_byte(v24); print_byte(v16); print_byte(v8); print_byte(v0); write_char(' '); + write_char('R'); print_byte(r>>8); print_byte(r); write_char('-'); print_byte(v24); print_byte(v16); print_byte(v8); print_byte(v0); write_char(' '); \ +} while (0) #else -#define REG_SET(r, v) SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \ +#define REG_SET(r, v) do { \ + SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \ SFR_DATA_16 = (((uint32_t)v) >> 16) & 0xff; \ SFR_DATA_8 = (((uint16_t)v) >> 8 & 0xff); \ SFR_DATA_0 = (v) & 0xff; \ - reg_write(r); + reg_write(r); \ +} while (0) -#define REG_WRITE(r, v24, v16, v8, v0) SFR_DATA_24 = (v24); \ +#define REG_WRITE(r, v24, v16, v8, v0) do { \ + SFR_DATA_24 = (v24); \ SFR_DATA_16 = (v16); \ SFR_DATA_8 = (v8); \ SFR_DATA_0 = (v0); \ - reg_write(r); + reg_write(r); \ +} while (0) #endif #endif