#ifndef CORE_USB_USB_COMMON #define CORE_USB_USB_COMMON #include "usb_common_types.h" #include "usb_common_defs.h" #include "usb_device_types.h" #define READ_FIELD(r,f) (((r) & (f##_Msk)) >> (f##_Pos)) #define WRITE_FIELD(r,f,v) ((r) = ((r) & ~(f##_Msk)) | (v << (f##_Pos))) #define WAIT_FOR_BIT(r,b) while ((r) & (b)) {} #define WAIT_FOR_nBIT(r,b) while (!((r) & (b))) {} #define DWORD_ALIGN __attribute__((aligned(4))) #define CEILDIV4(x) (((x) + 3) >> 2) #define CEIL4(x) (((x) + 3) & (~0b11)) #endif /* CORE_USB_USB_COMMON */