// FIXME: move into compiler.h? Ditch? #if COMPILER_C99 #define C99INIT(name,val) .name = val #elif defined(__GNUC__) #define C99INIT(name,val) name: val #else #warning No designated initializers, double check your code #define C99INIT(name,val) (val) #endif /* * High-level interface data structures */ static const struct SerialHardwareVT UART0_VT = { C99INIT(init, uart0_init), C99INIT(cleanup, uart0_cleanup), C99INIT(setBaudrate, uart0_setbaudrate), C99INIT(setParity, uart0_setparity), C99INIT(txStart, uart0_enabletxirq), C99INIT(txSending, tx_sending), }; #if AVR_HAS_UART1 static const struct SerialHardwareVT UART1_VT = { C99INIT(init, uart1_init), C99INIT(cleanup, uart1_cleanup), C99INIT(setBaudrate, uart1_setbaudrate), C99INIT(setParity, uart1_setparity), C99INIT(txStart, uart1_enabletxirq),
// FIXME: move into compiler.h? Ditch? #if COMPILER_C99 #define C99INIT(name,val) .name = val #elif defined(__GNUC__) #define C99INIT(name,val) name: val #else #warning No designated initializers, double check your code #define C99INIT(name,val) (val) #endif /* * High-level interface data structures. */ static const struct SerialHardwareVT uart_vtable = { C99INIT(init, uart_init), C99INIT(cleanup, uart_cleanup), C99INIT(setBaudrate, uart_setBaudrate), C99INIT(setParity, uart_setParity), C99INIT(txStart, uart_txStart), C99INIT(txSending, uart_txSending), }; static struct EmulSerial UARTDescs[SER_CNT] = { { C99INIT(hw, /**/) { C99INIT(table, &uart_vtable), C99INIT(txbuffer, uart0_txbuffer), C99INIT(rxbuffer, uart0_rxbuffer), C99INIT(txbuffer_size, sizeof(uart0_txbuffer)),