Macros | |
| #define | __implement_ex(__type, __name) |
| #define | __inherit_ex(__type, __name) __type __name |
| #define | __implement(__type) |
| #define | __inherit(__type) __inherit_ex(__type,use_as__##__type) |
| #define | implement(__type) __implement(__type) |
| inherit a given class More... | |
| #define | implement_ex(__type, __name) __implement_ex(__type, __name) |
| inherit a given class and give it an alias name More... | |
| #define | inherit(__type) __inherit(__type) |
| inherit a given class More... | |
| #define | inherit_ex(__type, __name) __inherit_ex(__type, __name) |
| inherit a given class and give it an alias name More... | |
| #define | ARM_2D_UNUSED(__VAR) (void)(__VAR) |
| a macro to mark unused variables and let the compiler happy More... | |
| #define | ARM_TYPE_CONVERT(__VAR, __TYPE) (*((__TYPE *)&(__VAR))) |
| convert a given variable to a specified type, the converted result can be used as lvalue. More... | |
| #define | ARM_TEST_BITS(__VALUE, __BITS) ((__BITS) == ((__VALUE) & (__BITS))) |
| a macro to test the boolean result for a given value using a given bitmask More... | |
| #define | dimof(__array) (sizeof(__array)/sizeof(__array[0])) |
| get the number of items in an given array More... | |
| #define | offsetof(__type, __member) ((uintptr_t)&(((__type *)NULL)->__member)) |
| get the offset of a given member in a specified structure/union More... | |
| #define | __ARM_TO_STRING(__STR) #__STR |
| #define | ARM_TO_STRING(__STR) __ARM_TO_STRING(__STR) |
| convert a string to C string More... | |
| #define | __ARM_VA_NUM_ARGS_IMPL(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, __N, ...) __N |
| #define | __ARM_VA_NUM_ARGS(...) |
| A macro to count the number of parameters. More... | |
| #define | ARM_2D_PARAM(...) __VA_ARGS__ |
| detect whether GNU extension is enabled in compilation or not More... | |
| #define | ARM_2D_INVOKE(__FUNC_PTR, ...) ((NULL == (__FUNC_PTR)) ? 0 : ((*(__FUNC_PTR))(__VA_ARGS__))) |
| A macro to safely invode a function pointer. More... | |
| #define | ARM_2D_INVOKE_RT_VOID(__FUNC_PTR, ...) if (NULL != (__FUNC_PTR)) (*(__FUNC_PTR))(__VA_ARGS__) |
| A macro to safely call a function pointer that has no return value. More... | |
| #define | __ARM_CONNECT2(__A, __B) __A##__B |
| #define | __ARM_CONNECT2_ALT(__A, __B) __A##__B |
| #define | __ARM_CONNECT3(__A, __B, __C) __A##__B##__C |
| #define | __ARM_CONNECT4(__A, __B, __C, __D) __A##__B##__C##__D |
| #define | __ARM_CONNECT5(__A, __B, __C, __D, __E) __A##__B##__C##__D##__E |
| #define | __ARM_CONNECT6(__A, __B, __C, __D, __E, __F) __A##__B##__C##__D##__E##__F |
| #define | __ARM_CONNECT7(__A, __B, __C, __D, __E, __F, __G) __A##__B##__C##__D##__E##__F##__G |
| #define | __ARM_CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) __A##__B##__C##__D##__E##__F##__G##__H |
| #define | __ARM_CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I) __A##__B##__C##__D##__E##__F##__G##__H##__I |
| #define | ARM_CONNECT2(__A, __B) __ARM_CONNECT2(__A, __B) |
| connect two symbol names as one More... | |
| #define | ARM_CONNECT2_ALT(__A, __B) __ARM_CONNECT2_ALT(__A, __B) |
| connect two symbol names as one More... | |
| #define | ARM_CONNECT3(__A, __B, __C) __ARM_CONNECT3(__A, __B, __C) |
| connect three symbol names as one More... | |
| #define | ARM_CONNECT4(__A, __B, __C, __D) __ARM_CONNECT4(__A, __B, __C, __D) |
| connect four symbol names as one More... | |
| #define | ARM_CONNECT5(__A, __B, __C, __D, __E) __ARM_CONNECT5(__A, __B, __C, __D, __E) |
| connect five symbol names as one More... | |
| #define | ARM_CONNECT6(__A, __B, __C, __D, __E, __F) __ARM_CONNECT6(__A, __B, __C, __D, __E, __F) |
| connect six symbol names as one More... | |
| #define | ARM_CONNECT7(__A, __B, __C, __D, __E, __F, __G) __ARM_CONNECT7(__A, __B, __C, __D, __E, __F, __G) |
| connect seven symbol names as one More... | |
| #define | ARM_CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) __ARM_CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) |
| connect eight symbol names as one More... | |
| #define | ARM_CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I) __ARM_CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I) |
| connect nine symbol names as one More... | |
| #define | arm_connect(...) |
| connect up to 9 symbol names as one More... | |
| #define | ARM_CONNECT(...) arm_connect(__VA_ARGS__) |
| connect up to 9 symbol names as one More... | |
| #define | __ARM_USING1(__declare) |
| #define | __ARM_USING2(__declare, __on_leave_expr) |
| #define | __ARM_USING3(__declare, __on_enter_expr, __on_leave_expr) |
| #define | __ARM_USING4(__dcl1, __dcl2, __on_enter_expr, __on_leave_expr) |
| #define | arm_using(...) ARM_CONNECT2(__ARM_USING, __ARM_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) |
| create a code segment with up to two local variables and entering/leaving operations More... | |
| #define | __ARM_WITH2(__type, __addr) arm_using(__type *_=(__addr)) |
| #define | __ARM_WITH3(__type, __addr, __item) arm_using(__type *_=(__addr), *__item = _, (void)_, (void)0) |
| #define | arm_with(...) ARM_CONNECT2(__ARM_WITH, __ARM_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) |
| a with block to access members of a given object More... | |
| #define | ARM_FOREACH1(__array) |
| access each items in a given array More... | |
| #define | ARM_FOREACH2(__type, __array) |
| access each items in a given array More... | |
| #define | ARM_FOREACH3(__type, __array, __item) |
| access each items in a given array More... | |
| #define | ARM_FOREACH4(__type, __array, __count, __item) |
| access each items in a given array More... | |
| #define | arm_foreach(...) ARM_CONNECT2(ARM_FOREACH, __ARM_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) |
| access each items in a given array More... | |
| #define | __ARM_SECTION(__X) __attribute__((section(__X))) |
| a wrapper for attribute((nonnull)) More... | |
| #define | ARM_SECTION(__X) __ARM_SECTION(__X) |
| an attribute to specify the section More... | |
| #define | ARM_NOINIT |
| an attribute for static variables that no initialisation is required in the C startup process. More... | |
| #define | __ARM_ALIGN(__N) __attribute__((aligned(__N))) |
| #define | ARM_ALIGN(__N) __ARM_ALIGN(__N) |
| an attribute to specify aligment requirement More... | |
| #define | __RESTRICT __restrict |
| local variable decoration for pointers: restrict More... | |
| #define | __OVERRIDE_WEAK |
| an decoration for claiming that the immediate following symbol (variable / function) is not WEAK. If there is an __WEAK symbol, the __OVERRIDE_WEAK one can override it. More... | |
| #define | ARM_2D_SAFE_NAME(...) ARM_CONNECT(__,__LINE__,##__VA_ARGS__) |
| A macro to generate a safe name, usually used in macro template as the name of local variables. More... | |
| #define | arm_2d_safe_name(...) ARM_2D_SAFE_NAME(__VA_ARGS__) |
| A macro to generate a safe name, usually used in macro template as the name of local variables. More... | |
| #define | __ARM_2D_WRAP_FUNC(x) __wrap_ ## x |
| a decoration to make the immediate following code irq-safe More... | |
| #define | __ARM_2D_ORIG_FUNC(x) __real_ ## x |
| #define | ARM_2D_WRAP_FUNC(__FUNC) __ARM_2D_WRAP_FUNC(__FUNC) |
| a symbol wrapper to override a specified function More... | |
| #define | ARM_2D_ORIG_FUNC(__FUNC) __ARM_2D_ORIG_FUNC(__FUNC) |
| a symbol wrapper to refer the original function with a given name More... | |
| #define | __ARM_LIST_STACK_PUSH(__P_TOP, __P_NODE) |
| #define | ARM_LIST_STACK_PUSH(__P_TOP, __P_NODE) __ARM_LIST_STACK_PUSH((__P_TOP), (__P_NODE)) |
| push a item to a list More... | |
| #define | ARM_LIST_INSERT_AFTER(__P_TARGET, __P_NODE) __ARM_LIST_STACK_PUSH((__P_TARGET), (__P_NODE)) |
| insert a item after a specified node More... | |
| #define | __ARM_LIST_STACK_POP(__P_TOP, __P_NODE) |
| #define | ARM_LIST_STACK_POP(__P_TOP, __P_NODE) __ARM_LIST_STACK_POP((__P_TOP), (__P_NODE)) |
| pop a item from a list More... | |
| #define | ARM_LIST_REMOVE_AFTER(__P_TARGET, __P_NODE) ARM_LIST_STACK_POP((__P_TARGET), (__P_NODE)) |
| remove a item after a specified node More... | |
| #define | __ARM_LIST_QUEUE_ENQUEUE(__HEAD, __TAIL, __ITEM) |
| #define | ARM_LIST_QUEUE_ENQUEUE(__HEAD, __TAIL, __ITEM) __ARM_LIST_QUEUE_ENQUEUE((__HEAD), (__TAIL), (__ITEM)) |
| enter a node to a queue More... | |
| #define | __ARM_LIST_QUEUE_DEQUEUE(__HEAD, __TAIL, __ITEM) |
| #define | ARM_LIST_QUEUE_DEQUEUE(__HEAD, __TAIL, __ITEM) __ARM_LIST_QUEUE_DEQUEUE((__HEAD), (__TAIL), (__ITEM)) |
| fetch a node from a queue More... | |
| #define | __ARM_LIST_QUEUE_PEEK(__HEAD, __TAIL, __ITEM) |
| #define | ARM_LIST_QUEUE_PEEK(__HEAD, __TAIL, __ITEM) __ARM_LIST_QUEUE_PEEK((__HEAD), (__TAIL), (__ITEM)) \ |
| peek a node from a queue More... | |
| #define | __ARM_LIST_QUEUE_IS_EMPTY(__HEAD, __TAIL) ((__HEAD) == NULL) |
| #define | ARM_LIST_QUEUE_IS_EMPTY(__HEAD, __TAIL) __ARM_LIST_QUEUE_IS_EMPTY((__HEAD), (__TAIL)) |
| check whether a list FIFO is empty or not More... | |
| #define | ARM_PT_BEGIN(__STATE) |
| #define | ARM_PT_ENTRY(...) |
| #define | ARM_PT_YIELD(...) ARM_PT_ENTRY(return __VA_ARGS__;) |
| #define | ARM_PT_END() |
| #define | ARM_PT_GOTO_PREV_ENTRY(...) return __VA_ARGS__; |
| #define | ARM_PT_WAIT_UNTIL(__CONDITION, ...) |
| #define | ARM_PT_WAIT_OBJ_UNTIL(__CONDITION, ...) |
| #define | ARM_PT_WAIT_RESOURCE_UNTIL(__CONDITION, ...) |
| #define | ARM_PT_DELAY_MS(__MS, ...) |
| #define | ARM_PT_REPORT_STATUS(...) |
| #define | ARM_PT_RETURN(...) |
| #define | __def_low_lv_io(__NAME, __SW, ...) |
| #define | __ref_low_lv_io(__NAME) &LOW_LEVEL_IO##__NAME |
| #define | ref_low_lv_io(__NAME) __ref_low_lv_io(__NAME) |
| a symbol wrapper for referencing a specified low-level IO More... | |
| #define | ARM_2D_LOG_CHN_TYPE_USER _BV(28) |
| the bit-mask for log channels More... | |
| #define | ARM_2D_LOG_CHN_TYPE_INFO _BV(29) |
| the channel for generic information More... | |
| #define | ARM_2D_LOG_CHN_TYPE_WARNING _BV(30) |
| the channel for warnings messages More... | |
| #define | ARM_2D_LOG_CHN_TYPE_ERROR _BV(31) |
| the channel for error messages More... | |
| #define | ARM_2D_LOG_CHN_PIPELINE _BV(0) |
| the channel dedicated to the pixel-pipeline More... | |
| #define | ARM_2D_LOG_CHN_OPCODE _BV(1) |
| the channel dedicated to OPCODEs and related algorithms More... | |
| #define | ARM_2D_LOG_CHN_HELPER _BV(2) |
| the channel dedicated to Helper services More... | |
| #define | ARM_2D_LOG_CHN_HELPER_PFB _BV(3) |
| the channel dedicated to the PFB helper service More... | |
| #define | ARM_2D_LOG_CHN_SCENE_PLAYER _BV(4) |
| the channel dedicated to the scene player service More... | |
| #define | ARM_2D_LOG_CHN_DIRTY_REGION_OPTIMISATION _BV(5) |
| the channel dedicated to the dirty region optimization services More... | |
| #define | ARM_2D_LOG_CHN_STATISTICS _BV(6) |
| the channel dedicated to show statistics More... | |
| #define | ARM_2D_LOG_CHN_CONTROLS _BV(7) |
| the channel dedicated to example controls More... | |
| #define | ARM_2D_LOG_CHN_GUI_STACK _BV(16) |
| the channel dedicated to USER defined GUI stack More... | |
| #define | ARM_2D_LOG_CHN_APP _BV(24) |
| the channel dedicated to applications and examples More... | |
| #define | ARM_2D_TERMINAL_COLOUR_DEFAULT |
| #define | ARM_2D_TERMINAL_COLOUR_GREEN |
| #define | ARM_2D_TERMINAL_COLOUR_RED |
| #define | ARM_2D_TERMINAL_COLOUR_YELLOW |
| #define | ARM_2D_TERMINAL_COLOUR_WHITE |
| #define | ARM_2D_TERMINAL_COLOUR_BRIGHT_BLACK |
| #define | __ARM_2D_LOG_CHANNEL_MASK_FILTER__ 0xFFFFFFFF |
| the filter to enable log channels More... | |
| #define | __ARM_2D_LOG_PRINTF_PIPELINE __arm_2d_log_printf |
| the log printf entry dedicated to pixel pipeline More... | |
| #define | __ARM_2D_LOG_PRINTF_OPCODE __arm_2d_log_printf |
| the log printf entry dedicated to OPCODEs and related algorithms More... | |
| #define | __ARM_2D_LOG_PRINTF_HELPER __arm_2d_log_printf |
| the log printf entry dedicated to Helper services More... | |
| #define | __ARM_2D_LOG_PRINTF_HELPER_PFB __arm_2d_log_printf |
| the log printf entry dedicated to the PFB helper service More... | |
| #define | __ARM_2D_LOG_PRINTF_SCENE_PLAYER __arm_2d_log_printf |
| the log printf entry dedicated to the scene player service More... | |
| #define | __ARM_2D_LOG_PRINTF_DIRTY_REGION_OPTIMISATION __arm_2d_log_printf |
| the log printf entry dedicated to the dirty region optimization service More... | |
| #define | __ARM_2D_LOG_PRINTF_STATISTICS __arm_2d_log_printf |
| the log printf entry dedicated to show statistics More... | |
| #define | __ARM_2D_LOG_PRINTF_CONTROLS __arm_2d_log_printf |
| the log printf entry dedicated to example controls More... | |
| #define | __ARM_2D_LOG_PRINTF_GUI_STACK __arm_2d_log_printf |
| the log printf entry dedicated to applications and examples More... | |
| #define | __ARM_2D_LOG_PRINTF_APP __arm_2d_log_printf |
| the log printf entry dedicated to applications and examples More... | |
| #define | ARM_2D_LOG_INFO(__CHN, __INDENT, __PREFIX, __FORMAT_STR, ...) |
| #define | ARM_2D_LOG_WARNING(__CHN, __INDENT, __PREFIX, __FORMAT_STR, ...) |
| #define | ARM_2D_LOG_ERROR(__CHN, __INDENT, __PREFIX, __FORMAT_STR, ...) |
| #define | ARM_2D_LOG_USER(__CHN, __INDENT, __PREFIX, __FORMAT_STR, ...) |
| #define | __ARM_2D_PORT_PRINTF__(__format, ...) printf((__format), ##__VA_ARGS__) |
| the low level entry for printf More... | |
| #define | __ARM_2D_LOG_MAX_STRING_LEN__ 256 |
| the maximum allowed string length. The log service requests the specified number of bytes for storing string. default value is 256 More... | |
| #define | ARM_2D_M_COLOUR_SZ_1BIT 0 |
| 1 bit:black and white More... | |
| #define | ARM_2D_M_COLOUR_SZ_2BIT 1 |
| 4 colours or 4 gray-levels More... | |
| #define | ARM_2D_M_COLOUR_SZ_4BIT 2 |
| 16 colours or 16 gray-levels More... | |
| #define | ARM_2D_M_COLOUR_SZ_8BIT 3 |
| 256 colours More... | |
| #define | ARM_2D_M_COLOUR_SZ_16BIT 4 |
| 16bits More... | |
| #define | ARM_2D_M_COLOUR_SZ_32BIT 5 |
| true colour More... | |
| #define | ARM_2D_M_COLOUR_SZ_24BIT 6 |
| true colour More... | |
| #define | ARM_2D_M_COLOUR_SZ_1BIT_msk (ARM_2D_M_COLOUR_SZ_1BIT << 1) |
| bitmask for 1bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_2BIT_msk (ARM_2D_M_COLOUR_SZ_2BIT << 1) |
| bitmask for 2bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_4BIT_msk (ARM_2D_M_COLOUR_SZ_4BIT << 1) |
| bitmask for 4bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_8BIT_msk (ARM_2D_M_COLOUR_SZ_8BIT << 1) |
| bitmask for 8bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_16BIT_msk (ARM_2D_M_COLOUR_SZ_16BIT<< 1) |
| bitmask for 16bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_32BIT_msk (ARM_2D_M_COLOUR_SZ_32BIT<< 1) |
| bitmask for 32bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_24BIT_msk (ARM_2D_M_COLOUR_SZ_24BIT<< 1) |
| bitmask for 24bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_SZ_msk (0x07 << 1), |
| bitmask for the SZ bitfield More... | |
| #define | ARM_2D_M_COLOUR_LITTLE_ENDIAN 0 |
| pixels are stored in little endian More... | |
| #define | ARM_2D_M_COLOUR_BIG_ENDIAN 1 |
| pixels are stored big endian More... | |
| #define | ARM_2D_M_COLOUR_LITTLE_ENDIAN_msk (ARM_2D_M_COLOUR_LITTLE_ENDIAN << 4) |
| bitmask for little-endian More... | |
| #define | ARM_2D_M_COLOUR_BIG_ENDIAN_msk (ARM_2D_M_COLOUR_BIG_ENDIAN << 4) |
| bitmask for big-endian More... | |
| #define | ARM_2D_M_COLOUR_NO_ALPHA 0 |
| there is no alpha channel in each pixel More... | |
| #define | ARM_2D_M_COLOUR_HAS_ALPHA 1 |
| there is an alpha channel in each pixel More... | |
| #define | ARM_2D_M_COLOUR_NO_ALPHA_msk (ARM_2D_M_COLOUR_NO_ALPHA << 0) |
| bitmask for no-alpha-channel-in-pixel More... | |
| #define | ARM_2D_M_COLOUR_HAS_ALPHA_msk (ARM_2D_M_COLOUR_HAS_ALPHA << 0) |
| bitmask for has-alpha-channel-in-pixel More... | |
| #define | ARM_2D_M_COLOUR_VARIANT_pos 5 |
| offset for the VARIANT bitfield More... | |
| #define | ARM_2D_M_COLOUR_VARIANT_msk (0x03<<ARM_2D_M_COLOUR_VARIANT_pos) |
| bitmask for the VARIANT bitfield More... | |
| #define | ARM_2D_M_COLOUR_MONOCHROME |
| macro for the monochrome More... | |
| #define | ARM_2D_M_COLOUR_BIN ARM_2D_M_COLOUR_MONOCHROME |
| macro for the 1bit colour format (alias) More... | |
| #define | ARM_2D_M_COLOUR_1BIT ARM_2D_M_COLOUR_MONOCHROME |
| macro for the 1bin colour format (alias) More... | |
| #define | ARM_2D_M_COLOUR_MASK_A1 ARM_2D_M_COLOUR_SZ_1BIT_msk |
| macro for the 1bit alpha mask More... | |
| #define | ARM_2D_M_COLOUR_MASK_A2 ARM_2D_M_COLOUR_SZ_2BIT_msk |
| macro for the 2bit alpha mask More... | |
| #define | ARM_2D_M_COLOUR_MASK_A4 ARM_2D_M_COLOUR_SZ_4BIT_msk |
| macro for the 4bit alpha mask More... | |
| #define | ARM_2D_M_COLOUR_8BIT ARM_2D_M_COLOUR_SZ_8BIT_msk |
| macro for the generic 8bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_GRAY8 ARM_2D_M_COLOUR_SZ_8BIT_msk |
| macro for the gray8 colour format More... | |
| #define | ARM_2D_M_COLOUR_MASK_A8 ARM_2D_M_COLOUR_SZ_8BIT_msk |
| macro for the 8bit alpha mask More... | |
| #define | ARM_2D_M_COLOUR_16BIT ARM_2D_M_COLOUR_SZ_16BIT_msk |
| macro for the generic 16bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_RGB16 ARM_2D_M_COLOUR_SZ_16BIT_msk |
| macro for the generic 16bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_RGB565 ARM_2D_M_COLOUR_RGB16 |
| macro for the rgb565 More... | |
| #define | ARM_2D_M_COLOUR_24BIT ARM_2D_M_COLOUR_SZ_24BIT_msk |
| macro for the generic 24bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_RGB24 ARM_2D_M_COLOUR_SZ_24BIT_msk |
| macro for the generic 24bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_32BIT ARM_2D_M_COLOUR_SZ_32BIT_msk |
| macro for the generic 32bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_RGB32 ARM_2D_M_COLOUR_SZ_32BIT_msk |
| macro for the generic 32bit colour formats More... | |
| #define | ARM_2D_M_COLOUR_CCCN888 ARM_2D_M_COLOUR_RGB32 |
| macro for the generic 32bit colour formats with an reserved channel at the highest byte More... | |
| #define | ARM_2D_M_COLOUR_CCCA8888 |
| #define | ARM_2D_M_COLOUR_RGBX888 ARM_2D_M_COLOUR_CCCN888 |
| macro for the RGB888 (BGRN8888) More... | |
| #define | ARM_2D_M_COLOUR_BGRA8888 ARM_2D_M_COLOUR_CCCA8888 |
| macro for the BGRA8888 More... | |
| #define | ARM_2D_M_CHANNEL_8in32 |
| #define | ARM_2D_OP_INFO_PARAM_HAS_SOURCE _BV(0) |
| opcode has source tile info More... | |
| #define | ARM_2D_OP_INFO_PARAM_HAS_TARGET _BV(1) |
| opcode has target tile info More... | |
| #define | ARM_2D_OP_INFO_PARAM_HAS_SOURCE_MASK _BV(2) |
| opcode has source mask info More... | |
| #define | ARM_2D_OP_INFO_PARAM_HAS_TARGET_MASK _BV(3) |
| opcode has target mask info More... | |
| #define | ARM_2D_OP_INFO_PARAM_HAS_ORIGIN _BV(4) |
| opcode has original tile info More... | |
| #define | ARM_2D_OP_INFO_PARAM_TILES_MASK |
| #define | __ARM_2D_OP_STATUS_BUSY_msk (1 << 4) |
| bitmask for the busy flag More... | |
| #define | __ARM_2D_OP_STATUS_IO_ERROR_msk (1 << 5) |
| bitmask for the IO error flag More... | |
| #define | __ARM_2D_OP_STATUS_CPL_msk (1 << 6) |
| bitmask for the complete flag More... | |
| #define | __ARM_2D_HAS_HELIUM__ 0 |
| target MCU has does not have Helium extension More... | |
| #define | __ARM_2D_HAS_HELIUM_INTEGER__ 0 |
| target MCU has does not have Helium integer extension More... | |
| #define | __ARM_2D_HAS_HELIUM_FLOAT__ 0 |
| target MCU has does not have Helium floating point extension More... | |
| #define | __ARM_2D_HAS_NEON__ 0 |
| target processor does not have NEON extension More... | |
| #define | __ARM_2D_HAS_SVE2__ 0 |
| target processor does not have the SVE2 extension More... | |
| #define | __ARM_2D_HAS_ACI__ 0 |
| target MCU has no ACI implementation More... | |
| #define | __ARM_2D_HAS_TIGHTLY_COUPLED_ACC__ 0 |
| target MCU has no tightly coupled acceleration (other than ACI) More... | |
| #define | __ARM_2D_HAS_HW_ACC__ 0 |
| target MCU has no dedicated hardware (async) acceleration More... | |
| #define | __ARM_2D_HAS_ASYNC__ 1 |
| enable asynchronous mode (enable pipeline) More... | |
| #define | __ARM_2D_HAS_FPU__ 0 |
| target MCU has no FPU More... | |
| #define | __ARM_2D_HAS_DSP__ 0 |
| target MCU has no DSP extension More... | |
| #define | __ARM_2D_HAS_ANTI_ALIAS_TRANSFORM__ 0 |
| disable the anti-alias support in transform operations More... | |
| #define | __ARM_2D_CFG_FORCED_FIXED_POINT_TRANSFORM__ 1 |
| use fixed point numbers in transform operations More... | |
| #define | __ARM_2D_CFG_OPTIMIZE_FOR_POINTER_LIKE_SHAPES_IN_TRANSFORM__ 1 |
| #define | __ARM_2D_CFG_SUPPORT_COLOUR_CHANNEL_ACCESS__ 1 |
| enable the support for CCCA8888 More... | |
| #define | __ARM_2D_CFG_USE_IIR_BLUR_REVERSE_PATH__ 0 |
| #define | __ARM_2D_CFG_SUPPORT_CCCA8888_IMPLICIT_CONVERSION__ 0 |
| #define | ARM_2D_VERSION_MAJOR 1 |
| Major version. More... | |
| #define | ARM_2D_VERSION_MINOR 2 |
| Minor version. More... | |
| #define | ARM_2D_VERSION_PATCH 4 |
| Patch number. More... | |
| #define | ARM_2D_VERSION_STR "" |
| tag More... | |
| #define | ARM_2D_VERSION |
| arm-2d version number in decimal More... | |
| #define | ARM_2D_OP_INIT(__OP) arm_2d_op_init((arm_2d_op_core_t *)&(__OP), sizeof(__OP)) |
| #define | ARM_2D_OP_DEPOSE(__OP) arm_2d_op_depose((arm_2d_op_core_t *)&(__OP), sizeof(__OP)) |
| #define | ARM_2D_OP_WAIT_ASYNC(...) arm_2d_op_wait_async((arm_2d_op_core_t *)(NULL,##__VA_ARGS__)) |
| wait asynchronous operation complete More... | |
Typedefs | |
| typedef arm_2d_point_fx_t | arm_2d_point_q16_t |
| typedef bool | arm_2d_op_evt_handler_t(arm_2d_op_core_t *ptThisOP, arm_fsm_rt_t tResult, void *pTarget) |
| a prototype of event handlers for 2D operations More... | |
| typedef bool | arm_2d_evt_handler_t(void *pTarget) |
| a prototype for generic event handlers More... | |
| typedef struct __arm_2d_low_level_io_t | __arm_2d_low_level_io_t |
| an incomplete defintion which is only used for defining pointers More... | |
Enumerations | |
| enum | arm_fsm_rt_t { arm_fsm_rt_err = -1 , arm_fsm_rt_cpl = 0 , arm_fsm_rt_on_going = 1 , arm_fsm_rt_wait_for_obj = 2 , arm_fsm_rt_async = 3 , arm_fsm_rt_wait_for_res = 4 , __arm_fsm_rt_last } |
| finite-state-machine status return (Compatible with arm_status, minimal integer: int8_t) More... | |
| enum | arm_2d_err_t { ARM_2D_ERR_INVALID_STATUS = -13 , ARM_2D_ERR_NOT_AVAILABLE = -12 , ARM_2D_ERR_UNSUPPORTED_COLOUR = -11 , ARM_2D_ERR_BUSY = -10 , ARM_2D_ERR_INSUFFICIENT_RESOURCE = -9 , ARM_2D_ERR_IO_BUSY = -8 , ARM_2D_ERR_IO_ERROR = -7 , ARM_2D_ERR_MISSING_PARAM = -6 , ARM_2D_ERR_INVALID_OP = -5 , ARM_2D_ERR_NOT_SUPPORT = -4 , ARM_2D_ERR_OUT_OF_REGION = -3 , ARM_2D_ERR_INVALID_PARAM = -2 , ARM_2D_ERR_UNKNOWN = -1 , ARM_2D_ERR_NONE = 0 , ARM_2D_RT_FALSE = 0 , ARM_2D_RT_TRUE = 1 , ARM_2D_RT_FRAME_SKIPPED = __arm_fsm_rt_last , ARM_2D_RT_PFB_USER_DRAW } |
| the error code for arm-2d (minimal integer: int8_t) More... | |
| enum | arm_2d_cmp_t { ARM_2D_CMP_SMALLER = -1 , ARM_2D_CMP_EQUALS = 0 , ARM_2D_CMP_LARGER = 1 } |
| comparison result More... | |
| enum | { ARM_2D_COLOUR_SZ_1BIT = 0 , ARM_2D_COLOUR_SZ_2BIT = 1 , ARM_2D_COLOUR_SZ_4BIT = 2 , ARM_2D_COLOUR_SZ_8BIT = 3 , ARM_2D_COLOUR_SZ_16BIT = 4 , ARM_2D_COLOUR_SZ_32BIT = 5 , ARM_2D_COLOUR_SZ_24BIT = 6 , ARM_2D_COLOUR_SZ_1BIT_msk = ARM_2D_COLOUR_SZ_1BIT << 1 , ARM_2D_COLOUR_SZ_2BIT_msk = ARM_2D_COLOUR_SZ_2BIT << 1 , ARM_2D_COLOUR_SZ_4BIT_msk = ARM_2D_COLOUR_SZ_4BIT << 1 , ARM_2D_COLOUR_SZ_8BIT_msk = ARM_2D_COLOUR_SZ_8BIT << 1 , ARM_2D_COLOUR_SZ_16BIT_msk = ARM_2D_COLOUR_SZ_16BIT<< 1 , ARM_2D_COLOUR_SZ_32BIT_msk = ARM_2D_COLOUR_SZ_32BIT<< 1 , ARM_2D_COLOUR_SZ_24BIT_msk = ARM_2D_COLOUR_SZ_24BIT<< 1 , ARM_2D_COLOUR_SZ_msk = (0x07 << 1) , ARM_2D_COLOUR_LITTLE_ENDIAN = 0 , ARM_2D_COLOUR_BIG_ENDIAN = 1 , ARM_2D_COLOUR_LITTLE_ENDIAN_msk = ARM_2D_COLOUR_LITTLE_ENDIAN << 4 , ARM_2D_COLOUR_BIG_ENDIAN_msk = ARM_2D_COLOUR_BIG_ENDIAN << 4 , ARM_2D_COLOUR_NO_ALPHA = 0 , ARM_2D_COLOUR_HAS_ALPHA = 1 , ARM_2D_COLOUR_NO_ALPHA_msk = ARM_2D_COLOUR_NO_ALPHA << 0 , ARM_2D_COLOUR_HAS_ALPHA_msk = ARM_2D_COLOUR_HAS_ALPHA << 0 , ARM_2D_COLOUR_VARIANT_pos = 5 , ARM_2D_COLOUR_VARIANT_msk = 0x03 << ARM_2D_COLOUR_VARIANT_pos } |
| enumerations for colour attributes More... | |
| enum | { ARM_2D_COLOUR_MONOCHROME = ARM_2D_COLOUR_SZ_1BIT_msk | ARM_2D_COLOUR_VARIANT_msk , ARM_2D_COLOUR_BIN = ARM_2D_COLOUR_MONOCHROME , ARM_2D_COLOUR_1BIT = ARM_2D_COLOUR_MONOCHROME , ARM_2D_COLOUR_MASK_A1 = ARM_2D_COLOUR_MONOCHROME , ARM_2D_COLOUR_MASK_A2 = ARM_2D_M_COLOUR_SZ_2BIT_msk , ARM_2D_COLOUR_MASK_A4 = ARM_2D_M_COLOUR_SZ_4BIT_msk , ARM_2D_COLOUR_2BIT = ARM_2D_M_COLOUR_SZ_2BIT_msk , ARM_2D_COLOUR_4BIT = ARM_2D_M_COLOUR_SZ_4BIT_msk , ARM_2D_COLOUR_8BIT = ARM_2D_COLOUR_SZ_8BIT_msk , ARM_2D_COLOUR_GRAY8 = ARM_2D_COLOUR_SZ_8BIT_msk , ARM_2D_COLOUR_MASK_A8 = ARM_2D_COLOUR_SZ_8BIT_msk , ARM_2D_COLOUR_16BIT = ARM_2D_COLOUR_SZ_16BIT_msk , ARM_2D_COLOUR_RGB16 = ARM_2D_COLOUR_SZ_16BIT_msk , ARM_2D_COLOUR_RGB565 = ARM_2D_COLOUR_RGB16 , ARM_2D_COLOUR_24BIT = ARM_2D_COLOUR_SZ_24BIT_msk , ARM_2D_COLOUR_RGB24 = ARM_2D_COLOUR_SZ_24BIT_msk , ARM_2D_COLOUR_32BIT = ARM_2D_COLOUR_SZ_32BIT_msk , ARM_2D_COLOUR_RGB32 = ARM_2D_COLOUR_SZ_32BIT_msk , ARM_2D_COLOUR_CCCN888 = ARM_2D_COLOUR_RGB32 , ARM_2D_COLOUR_CCCA8888 , ARM_2D_COLOUR_RGB888 = ARM_2D_COLOUR_CCCN888 , ARM_2D_COLOUR_BGRA8888 = ARM_2D_COLOUR_CCCA8888 , ARM_2D_CHANNEL_8in32 } |
| enumerations for colour types More... | |
| enum | { ARM_2D_TILE_EXTENSION_NONE = 0 , ARM_2D_TILE_EXTENSION_PFB , ARM_2D_TILE_EXTENSION_VRES } |
| the tile extension ID More... | |
| enum | arm_2d_align_t { ARM_2D_ALIGN_LEFT = _BV(0) , ARM_2D_ALIGN_RIGHT = _BV(1) , ARM_2D_ALIGN_TOP = _BV(2) , ARM_2D_ALIGN_BOTTOM = _BV(3) , ARM_2D_ALIGN_CENTRE = 0 , ARM_2D_ALIGN_CENTRE_ALIAS , ARM_2D_ALIGN_TOP_LEFT , ARM_2D_ALIGN_TOP_RIGHT , ARM_2D_ALIGN_TOP_MIDDLE , ARM_2D_ALIGN_TOP_CENTRE = ARM_2D_ALIGN_TOP_MIDDLE , ARM_2D_ALIGN_BOTTOM_LEFT , ARM_2D_ALIGN_BOTTOM_RIGHT , ARM_2D_ALIGN_BOTTOM_MIDDLE , ARM_2D_ALIGN_BOTTOM_CENTRE = ARM_2D_ALIGN_BOTTOM_MIDDLE , ARM_2D_ALIGN_MIDDLE_LEFT , ARM_2D_ALIGN_MIDDLE_RIGHT } |
| alignment More... | |
| enum | arm_2d_mem_type_t { ARM_2D_MEM_TYPE_UNSPECIFIED , ARM_2D_MEM_TYPE_SLOW , ARM_2D_MEM_TYPE_FAST } |
| the enumeration type for describing memory types More... | |
| enum | { ARM_2D_PREF_ACC_USE_HW_IF_POSSIBLE = 0 , ARM_2D_PREF_ACC_HW_ONLY = 1 , ARM_2D_PREF_ACC_SW_ONLY = 2 , ARM_2D_PREF_ACC_DONT_CARE = 3 } |
| how would you want to accelerate the 2d-operation More... | |
Functions | |
| void | __arm_2d_log_printf (int32_t nIndentLevel, uint32_t wChannelMask, const char *pchPrefix, const char *pchFormatString,...) |
| an entry for log printf More... | |
| void | arm_2d_init (void) |
| initialise arm-2d More... | |
| arm_2d_tile_t * | arm_2d_set_default_frame_buffer (const arm_2d_tile_t *ptFrameBuffer) |
| set the default frame buffer More... | |
| arm_2d_tile_t * | arm_2d_get_default_frame_buffer (void) |
| get the default frame buffer More... | |
| void | arm_2d_set_user_param (arm_2d_op_core_t *ptOP, uintptr_t pUserParam) |
| attach a user param (which could be a pointer) to specified OP More... | |
| arm_2d_op_core_t * | arm_2d_op_init (arm_2d_op_core_t *ptOP, size_t tSize) |
| initialize an given opcode More... | |
| arm_2d_op_core_t * | arm_2d_op_depose (arm_2d_op_core_t *ptOP, size_t tSize) |
| depose an given opcode More... | |
| void | arm_2d_op_attach_semaphore (arm_2d_op_core_t *ptOP, uintptr_t pSemaphore) |
| attach a semaphore (which could be a pointer) to specified OP More... | |
| uintptr_t | arm_2d_op_get_semaphore (arm_2d_op_core_t *ptOP) |
| get the attached semaphore (which could be a pointer) from specified OP More... | |
| bool | arm_2d_op_wait_async (arm_2d_op_core_t *ptOP) |
| wait asynchronous operation complete More... | |
| arm_2d_op_status_t | arm_2d_get_op_status (arm_2d_op_core_t *ptOP) |
| get the status of a specified OP, More... | |
| arm_fsm_rt_t | arm_2d_task (arm_2d_task_t *ptTask) |
| arm-2d pixel pipeline task entery More... | |
| void * | __arm_2d_allocate_scratch_memory (uint32_t wSize, uint_fast8_t nAlign, arm_2d_mem_type_t tType) |
| allocate a memory block with specified memory type More... | |
| void | __arm_2d_free_scratch_memory (arm_2d_mem_type_t tType, void *pBuff) |
| free a specified memory block More... | |
| arm_2d_scratch_mem_t * | arm_2d_scratch_memory_new (arm_2d_scratch_mem_t *ptMemory, uint16_t hwItemSize, uint16_t hwItemCount, uint16_t hwAlignment, arm_2d_mem_type_t tType) |
| allocate a scratch memory and initialize arm_2d_scratch_mem_t object More... | |
| arm_2d_scratch_mem_t * | arm_2d_scratch_memory_free (arm_2d_scratch_mem_t *ptMemory) |
| free a scratch memory with a given scratch memory descriptor object More... | |
Variables | |
| arm_2d_runtime_feature_t | ARM_2D_RUNTIME_FEATURE |
| arm-2d runtime feature configuration More... | |
| const arm_2d_version_t | ARM_2D_VERSION_INFO |
| arm-2d version More... | |
| struct __arm_slist_node_t |
a type for generic list
| Data Fields | ||
|---|---|---|
| __arm_slist_node_t * | ptNext | the next node |
| union arm_2d_color_rgb565_t |
the colour type for rgb565
| Data Fields | ||
|---|---|---|
| uint16_t | tValue | |
| struct arm_2d_color_rgb565_t.__unnamed5__ | __unnamed__ | |
| union arm_2d_color_bgra8888_t |
the colour type for brga8888
In most cases four equal-sized pieces of adjacent memory are used, one for each channel, and a 0 in a channel indicates black color or transparent alpha, while all-1 bits indicates white or fully opaque alpha. By far the most common format is to store 8 bits (one byte) for each channel, which is 32 bits for each pixel.
(source: https://en.wikipedia.org/wiki/RGBA_color_model#ARGB32)
| Data Fields | ||
|---|---|---|
| uint32_t | tValue | |
| uint8_t | chChannel[4] | |
| struct arm_2d_color_bgra8888_t.__unnamed7__ | __unnamed__ | |
| union arm_2d_color_rgb888_t |
the colour type for rgb888 (compliant with ccca888 and bgra8888)
In most cases four equal-sized pieces of adjacent memory are used, one for each channel, and a 0 in a channel indicates black color or transparent alpha, while all-1 bits indicates white or fully opaque alpha. By far the most common format is to store 8 bits (one byte) for each channel, which is 32 bits for each pixel.
(source: https://en.wikipedia.org/wiki/RGBA_color_model#ARGB32)
| Data Fields | ||
|---|---|---|
| uint32_t | tValue | |
| struct arm_2d_color_rgb888_t.__unnamed9__ | __unnamed__ | |
| union arm_2d_color_ccca8888_t |
the colour type for any 32bit colour formats which has an alpha channel on its 3rd byte.
In most cases four equal-sized pieces of adjacent memory are used, one for each channel, and a 0 in a channel indicates black color or transparent alpha, while all-1 bits indicates white or fully opaque alpha. By far the most common format is to store 8 bits (one byte) for each channel, which is 32 bits for each pixel.
(source: https://en.wikipedia.org/wiki/RGBA_color_model#ARGB32)
| Data Fields | ||
|---|---|---|
| uint32_t | tValue | |
| struct arm_2d_color_ccca8888_t.__unnamed11__ | __unnamed__ | |
| union arm_2d_color_accc8888_t |
the colour type for any 32bit colour formats which has an alpha channel on its first byte.
In most cases four equal-sized pieces of adjacent memory are used, one for each channel, and a 0 in a channel indicates black color or transparent alpha, while all-1 bits indicates white or fully opaque alpha. By far the most common format is to store 8 bits (one byte) for each channel, which is 32 bits for each pixel.
(source: https://en.wikipedia.org/wiki/RGBA_color_model#ARGB32)
| Data Fields | ||
|---|---|---|
| uint32_t | tValue | |
| struct arm_2d_color_accc8888_t.__unnamed13__ | __unnamed__ | |
| union arm_2d_color_cccn888_t |
the colour type for any 32bit colour formats which has an unused-alpha channel on its 3rd byte.
In most cases four equal-sized pieces of adjacent memory are used, one for each channel, and a 0 in a channel indicates black color or transparent alpha, while all-1 bits indicates white or fully opaque alpha. By far the most common format is to store 8 bits (one byte) for each channel, which is 32 bits for each pixel.
(source: https://en.wikipedia.org/wiki/RGBA_color_model#ARGB32)
| Data Fields | ||
|---|---|---|
| uint32_t | tValue | |
| struct arm_2d_color_cccn888_t.__unnamed15__ | __unnamed__ | |
| union arm_2d_color_nccc888_t |
the colour type for any 32bit colour formats which has an unused-alpha channel on its first byte.
In most cases four equal-sized pieces of adjacent memory are used, one for each channel, and a 0 in a channel indicates black color or transparent alpha, while all-1 bits indicates white or fully opaque alpha. By far the most common format is to store 8 bits (one byte) for each channel, which is 32 bits for each pixel.
(source: https://en.wikipedia.org/wiki/RGBA_color_model#ARGB32)
| Data Fields | ||
|---|---|---|
| uint32_t | tValue | |
| struct arm_2d_color_nccc888_t.__unnamed17__ | __unnamed__ | |
| union arm_2d_colour_t |
| union arm_2d_color_info_t |
a type used as colour descriptor
| Data Fields | ||
|---|---|---|
| struct arm_2d_color_info_t.__unnamed19__ | __unnamed__ | |
| struct arm_2d_color_info_t.__unnamed21__ | __unnamed__ | |
| uint8_t | chScheme | |
| struct arm_2d_location_t |
| struct arm_2d_point_float_t |
| struct arm_2d_point_fx_t |
a type for coordinates in fixed point
| Data Fields | ||
|---|---|---|
| union arm_2d_point_fx_t.__unnamed23__ | __unnamed__ | |
| union arm_2d_point_fx_t.__unnamed25__ | __unnamed__ | |
| struct arm_2d_size_t |
| struct arm_2d_region_t |
| struct arm_2d_tile_t |
a type for tile
| Data Fields | ||
|---|---|---|
| struct arm_2d_tile_t.__unnamed27__ | __unnamed__ |
< is this tile a root tile does this tile contains enforced colour info indicate whether this is a derived resources (when bIsRoot == 0) indicate whether the resource should be loaded on-demand DO NOT USE! indicate whether the tile is considered as the virtual screen, it is used in dirty region calculation Tile Extension ID enforced colour |
| arm_2d_region_t | the region of the tile | |
| union arm_2d_tile_t.__unnamed29__ | __unnamed__ | |
| struct arm_2d_margin_t |
| struct arm_2d_padding_t |
| union arm_2d_alpha_samples_4pts_t |
type for 4 points alpha sample points
| Data Fields | ||
|---|---|---|
| struct arm_2d_alpha_samples_4pts_t.__unnamed34__ | __unnamed__ | |
| uint8_t | chAlpha[4] | |
| union arm_2d_alpha_samples_3pts_t |
type for 3 points alpha sample points
| Data Fields | ||
|---|---|---|
| struct arm_2d_alpha_samples_3pts_t.__unnamed36__ | __unnamed__ | |
| uint8_t | chAlpha[3] | |
| union arm_2d_alpha_samples_2pts_t |
type for 2 points alpha sample points
| Data Fields | ||
|---|---|---|
| struct arm_2d_alpha_samples_2pts_t.__unnamed38__ | __unnamed__ | |
| struct arm_2d_alpha_samples_2pts_t.__unnamed40__ | __unnamed__ | |
| struct arm_2d_alpha_samples_2pts_t.__unnamed42__ | __unnamed__ | |
| uint8_t | chAlpha[2] | |
| union __arm_2d_mem_info_t |
| Data Fields | ||
|---|---|---|
| struct __arm_2d_mem_info_t.__unnamed46__ | __unnamed__ | |
| uint32_t | Value | Memory Information. |
| struct arm_2d_scratch_mem_t |
scratch memory descriptor
| Data Fields | ||
|---|---|---|
| union arm_2d_scratch_mem_t.__unnamed48__ | __unnamed__ |
< Memory Information < the memory size in Byte the size of the data item the alignment The memory type define in enum arm_2d_mem_type_t |
| uintptr_t | pBuffer | |
| struct __arm_2d_mem_t |
a type for scratch memory blocks
| Data Fields | ||
|---|---|---|
| union __arm_2d_mem_t.__unnamed52__ | __unnamed__ | |
| __arm_2d_mem_info_t | tInfo | memory info |
| uint8_t | pBuffer[] | a constant pointer points to the buffer following this header |
| struct arm_2d_vres_t |
a type for virtual resource
Data Fields | |
| arm_2d_tile_t | |
| uintptr_t | pTarget |
| intptr_t(* | Load )(uintptr_t pTarget, arm_2d_vres_t *ptVRES, arm_2d_region_t *ptRegion) |
| a method to load a specific part of an image More... | |
| void(* | Depose )(uintptr_t pTarget, arm_2d_vres_t *ptVRES, intptr_t pBuffer) |
| a method to despose the buffer More... | |
| arm_2d_vres_t::arm_2d_tile_t |
base class: tTile
| uintptr_t arm_2d_vres_t::pTarget |
a reference of an user object
| intptr_t(* arm_2d_vres_t::Load) (uintptr_t pTarget, arm_2d_vres_t *ptVRES, arm_2d_region_t *ptRegion) |
a method to load a specific part of an image
| [in] | pTarget | a reference of an user object |
| [in] | ptVRES | a reference of this virtual resource |
| [in] | ptRegion | the target region of the image |
| void(* arm_2d_vres_t::Depose) (uintptr_t pTarget, arm_2d_vres_t *ptVRES, intptr_t pBuffer) |
a method to despose the buffer
| [in] | pTarget | a reference of an user object |
| [in] | ptVRES | a reference of this virtual resource |
| [in] | pBuffer | the target buffer |
| struct arm_2d_task_t |
arm-2d application level task control block
| Data Fields | ||
|---|---|---|
| struct arm_2d_task_t.__unnamed54__ | __unnamed__ |
< a pointer for an internal object < the temporary result of the task the state of the FSM |
| struct arm_2d_op_evt_t |
a type for 2D operation event handling
| Data Fields | ||
|---|---|---|
| arm_2d_op_evt_handler_t * | fnHandler | event handler |
| void * | pTarget | user attached target |
| struct arm_2d_evt_t |
a type for generic event handling
| Data Fields | ||
|---|---|---|
| arm_2d_evt_handler_t * | fnHandler | event handler |
| void * | pTarget | user attached target |
| union __arm_2d_op_info_t |
A descriptive header for 2D operations.
| Data Fields | ||
|---|---|---|
| struct __arm_2d_op_info_t.Info | Info | operation description |
| uint32_t | wID | Operation ID. |
| union arm_2d_op_status_t |
a type for 2D operation status
| Data Fields | ||
|---|---|---|
| struct arm_2d_op_status_t.__unnamed74__ | __unnamed__ | |
| uint16_t | tValue | the host integer |
| struct arm_2d_op_core_t |
the abstract class of 2D operations
| Data Fields | ||
|---|---|---|
| struct arm_2d_op_core_t.__unnamed76__ | __unnamed__ |
< a pointer for a single list < the pointer for the corresponding 2D operation description < acceleration Methods reserved < operation result operation status < operation-complete event < point to semaphore |
| uintptr_t | pUserParam | user attached object |
| struct arm_2d_op_t |
the base class for operations with only a target tile
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_t.Target | Target | |
| struct arm_2d_op_msk_t |
the base class for operations with a target tile and a target mask
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_msk_t.Target | Target | |
| struct arm_2d_op_msk_t.Mask | Mask | |
| struct arm_2d_op_src_t |
the base class for operations with a target tile and a source tile
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_src_t.Target | Target | |
| struct arm_2d_op_src_t.Source | Source | |
| uint32_t | wMode | |
| struct arm_2d_op_src_opc_t |
the base class for operations with a target tile and a source tile
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_src_opc_t.Target | Target | |
| struct arm_2d_op_src_opc_t.Source | Source | |
| uint32_t | wMode | |
| uint8_t | chOpacity | opacity |
| struct arm_2d_op_src_msk_t |
the base class for operations with a target tile, a source tile and masks
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_src_msk_t.Target | Target | |
| struct arm_2d_op_src_msk_t.Source | Source | |
| uint32_t | wMode | |
| struct arm_2d_op_src_msk_t.Mask | Mask | |
| struct arm_2d_op_src_msk_opc_t |
the base class for operations with a target tile, a source tile and masks
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_src_msk_opc_t.Target | Target | |
| struct arm_2d_op_src_msk_opc_t.Source | Source | |
| uint32_t | wMode | |
| struct arm_2d_op_src_msk_opc_t.Mask | Mask | |
| uint8_t | chOpacity | opacity |
| struct arm_2d_op_src_orig_t |
the base class for operations with a target tile, a dummy tile and a reference to the original source tile
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_src_orig_t.Target | Target | |
| struct arm_2d_op_src_orig_t.Source | Source | |
| uint32_t | wMode | |
| struct arm_2d_op_src_orig_t.Origin | Origin | |
| struct arm_2d_op_src_orig_msk_t |
the base class for operations with a target tile, a dummy tile, a reference to the original source tile and masks
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t | ||
| struct arm_2d_op_src_orig_msk_t.Target | Target | |
| struct arm_2d_op_src_orig_msk_t.Source | Source | |
| uint32_t | wMode | |
| struct arm_2d_op_src_orig_msk_t.Origin | Origin | |
| struct arm_2d_op_src_orig_msk_t.Mask | Mask | |
| struct arm_2d_rot_linear_regr_t |
| struct arm_2d_runtime_feature_t |
a type for arm-2d runtime configuration
| Data Fields | ||
|---|---|---|
| uint8_t | TREAT_OUT_OF_RANGE_AS_COMPLETE: 1 |
if the target region is out of the target tile, return arm_fsm_rt_cpl |
| uint8_t | HAS_DEDICATED_THREAD_FOR_2D_TASK: 1 |
indicate that there is a dedicated thread to run arm_2d_task() in RTOS env |
| struct arm_2d_version_t |
| struct arm_2d_color_rgb565_t.__unnamed5__ |
| struct arm_2d_color_bgra8888_t.__unnamed7__ |
| struct arm_2d_color_rgb888_t.__unnamed9__ |
| struct arm_2d_color_info_t.__unnamed19__ |
| struct arm_2d_tile_t.__unnamed27__ |
< is this tile a root tile does this tile contains enforced colour info indicate whether this is a derived resources (when bIsRoot == 0) indicate whether the resource should be loaded on-demand DO NOT USE! indicate whether the tile is considered as the virtual screen, it is used in dirty region calculation Tile Extension ID enforced colour
| Data Fields | ||
|---|---|---|
| uint8_t | bIsRoot: 1 | |
| uint8_t | bHasEnforcedColour: 1 | |
| uint8_t | bDerivedResource: 1 | |
| uint8_t | bVirtualResource: 1 | |
| uint8_t | bVirtualScreen: 1 | |
| uint8_t | u3ExtensionID: 3 | |
| arm_2d_color_info_t | tColourInfo | |
| union arm_2d_tile_t.__unnamed27__.Extension | Extension | |
| union arm_2d_tile_t.__unnamed27__.Extension |
| Data Fields | ||
|---|---|---|
| struct arm_2d_tile_t.__unnamed27__.Extension.PFB | PFB | |
| struct arm_2d_tile_t.__unnamed27__.Extension.VRES | VRES | |
| struct arm_2d_tile_t.__unnamed27__.Extension.PFB |
| union arm_2d_tile_t.__unnamed29__ |
| Data Fields | ||
|---|---|---|
| arm_2d_tile_t * | ptParent | a pointer points to the parent tile |
| uint8_t * | pchBuffer | a pointer points to a buffer in a 8bit colour type |
| uint16_t * | phwBuffer | a pointer points to a buffer in a 16bit colour type |
| uint32_t * | pwBuffer | a pointer points to a buffer in a 32bit colour type |
| intptr_t | nAddress | a pointer in integer |
| struct arm_2d_alpha_samples_4pts_t.__unnamed34__ |
| struct arm_2d_alpha_samples_3pts_t.__unnamed36__ |
| struct arm_2d_alpha_samples_2pts_t.__unnamed40__ |
| Data Fields | ||
|---|---|---|
| uint8_t | chTopLeft | |
| union arm_2d_alpha_samples_2pts_t.__unnamed40__.__unnamed44__ | __unnamed__ | |
| union arm_2d_alpha_samples_2pts_t.__unnamed40__.__unnamed44__ |
| struct __arm_2d_mem_info_t.__unnamed46__ |
| union arm_2d_scratch_mem_t.__unnamed48__ |
< Memory Information
< the memory size in Byte the size of the data item the alignment The memory type define in enum arm_2d_mem_type_t
| Data Fields | ||
|---|---|---|
| struct arm_2d_scratch_mem_t.__unnamed48__.__unnamed50__ | __unnamed__ | |
| uint32_t | Value | |
| struct arm_2d_scratch_mem_t.__unnamed48__.__unnamed50__ |
| union __arm_2d_mem_t.__unnamed52__ |
| Data Fields | ||
|---|---|---|
| __arm_2d_mem_t * | ptNext | a list pointer |
| uint32_t | wSignature | a signature for validation |
| struct arm_2d_task_t.__unnamed54__ |
< a pointer for an internal object
< the temporary result of the task the state of the FSM
| Data Fields | ||
|---|---|---|
| arm_fsm_rt_t | tResult | |
| uint8_t | chState | |
| void * | ptTask | |
| struct __arm_2d_op_info_t.Info |
| Data Fields | ||
|---|---|---|
| arm_2d_color_info_t | Colour | the colour used in thie operation |
| union __arm_2d_op_info_t.Info.Param | Param | operation feature set |
| uint8_t | chInClassOffset | some operation uses this as the offset of the key member in the class |
| uint8_t | chOpIndex | __ARM_2D_OP_IDX_XXXXXX |
| union __arm_2d_op_info_t.Info.LowLevelInterfaceIndex | LowLevelInterfaceIndex | Low level interface index. |
| union __arm_2d_op_info_t.Info.LowLevelIO | LowLevelIO | low level IO definition |
| union __arm_2d_op_info_t.Info.Param |
| Data Fields | ||
|---|---|---|
| struct __arm_2d_op_info_t.Info.Param.__unnamed60__ | __unnamed__ | |
| uint8_t | chValue | feature value |
| struct __arm_2d_op_info_t.Info.Param.__unnamed60__ |
| union __arm_2d_op_info_t.Info.LowLevelInterfaceIndex |
| Data Fields | ||
|---|---|---|
| struct __arm_2d_op_info_t.Info.LowLevelInterfaceIndex.__unnamed62__ | __unnamed__ | |
| struct __arm_2d_op_info_t.Info.LowLevelInterfaceIndex.__unnamed64__ | __unnamed__ | |
| struct __arm_2d_op_info_t.Info.LowLevelInterfaceIndex.__unnamed66__ | __unnamed__ | |
| struct __arm_2d_op_info_t.Info.LowLevelInterfaceIndex.__unnamed62__ |
| struct __arm_2d_op_info_t.Info.LowLevelInterfaceIndex.__unnamed64__ |
| struct __arm_2d_op_info_t.Info.LowLevelInterfaceIndex.__unnamed66__ |
| union __arm_2d_op_info_t.Info.LowLevelIO |
| Data Fields | ||
|---|---|---|
| const __arm_2d_low_level_io_t * | IO[2] | array of IOs |
| struct __arm_2d_op_info_t.Info.LowLevelIO.__unnamed68__ | __unnamed__ | |
| struct __arm_2d_op_info_t.Info.LowLevelIO.__unnamed70__ | __unnamed__ | |
| struct __arm_2d_op_info_t.Info.LowLevelIO.__unnamed72__ | __unnamed__ | |
| struct __arm_2d_op_info_t.Info.LowLevelIO.__unnamed68__ |
| Data Fields | ||
|---|---|---|
| const __arm_2d_low_level_io_t * | ptCopyLike | the function pointer for a copy-like implementation |
| const __arm_2d_low_level_io_t * | ptFillLike | the function pointer for a fill-like implementation |
| struct __arm_2d_op_info_t.Info.LowLevelIO.__unnamed70__ |
| Data Fields | ||
|---|---|---|
| const __arm_2d_low_level_io_t * | ptCopyOrigLike | the function pointer for a copy-orig-like implementation |
| const __arm_2d_low_level_io_t * | ptFillOrigLike | the function pointer for a fill-orig-like implementation |
| struct __arm_2d_op_info_t.Info.LowLevelIO.__unnamed72__ |
| Data Fields | ||
|---|---|---|
| const __arm_2d_low_level_io_t * | ptTileProcessLike | the function pointer for the tile-process-like implementation |
| struct arm_2d_op_status_t.__unnamed74__ |
| struct arm_2d_op_core_t.__unnamed76__ |
< a pointer for a single list
< the pointer for the corresponding 2D operation description < acceleration Methods reserved < operation result operation status < operation-complete event < point to semaphore
| Data Fields | ||
|---|---|---|
| arm_2d_op_core_t * | ptNext | |
| const __arm_2d_op_info_t * | ptOp | |
| struct arm_2d_op_core_t.__unnamed76__.Preference | Preference | |
| int8_t | tResult | |
| volatile arm_2d_op_status_t | Status | |
| arm_2d_op_evt_t | evt2DOpCpl | |
| struct arm_2d_op_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_msk_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_msk_t.Mask |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTargetSide | target mask tile |
| struct arm_2d_op_src_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_src_t.Source |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | source tile |
| struct arm_2d_op_src_opc_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_src_opc_t.Source |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | source tile |
| struct arm_2d_op_src_msk_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_src_msk_t.Source |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | source tile |
| struct arm_2d_op_src_msk_t.Mask |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptSourceSide | source side mask |
| const arm_2d_tile_t * | ptTargetSide | target side mask |
| struct arm_2d_op_src_msk_opc_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_src_msk_opc_t.Source |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | source tile |
| struct arm_2d_op_src_msk_opc_t.Mask |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptSourceSide | source side mask |
| const arm_2d_tile_t * | ptTargetSide | target side mask |
| struct arm_2d_op_src_orig_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_src_orig_t.Source |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | the dummy source tile |
| struct arm_2d_op_src_orig_t.Origin |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | the origin tile |
| arm_2d_tile_t | tDummySource | the buffer for the source |
| struct arm_2d_op_src_orig_msk_t.Target |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | target tile |
| const arm_2d_region_t * | ptRegion | target region |
| struct arm_2d_op_src_orig_msk_t.Source |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | the dummy source tile |
| struct arm_2d_op_src_orig_msk_t.Origin |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptTile | the origin tile |
| arm_2d_tile_t | tDummySource | the buffer for the source |
| struct arm_2d_op_src_orig_msk_t.Mask |
| Data Fields | ||
|---|---|---|
| const arm_2d_tile_t * | ptOriginSide | origin side mask |
| const arm_2d_tile_t * | ptTargetSide | target side mask |
| #define __implement_ex | ( | __type, | |
| __name | |||
| ) |
| #define __inherit_ex | ( | __type, | |
| __name | |||
| ) | __type __name |
| #define __implement | ( | __type | ) |
| #define __inherit | ( | __type | ) | __inherit_ex(__type,use_as__##__type) |
| #define implement | ( | __type | ) | __implement(__type) |
inherit a given class
| __type | the base class, you can use .use_as_xxxxx for referencing the base. |
| #define implement_ex | ( | __type, | |
| __name | |||
| ) | __implement_ex(__type, __name) |
inherit a given class and give it an alias name
| __type | the base class |
| __name | an alias name for referencing the base class |
| #define inherit | ( | __type | ) | __inherit(__type) |
inherit a given class
| __type | the base class, you can use .use_as_xxxxx for referencing the base. |
| #define inherit_ex | ( | __type, | |
| __name | |||
| ) | __inherit_ex(__type, __name) |
inherit a given class and give it an alias name
| __type | the base class |
| __name | an alias name for referencing the base class |
| #define ARM_2D_UNUSED | ( | __VAR | ) | (void)(__VAR) |
a macro to mark unused variables and let the compiler happy
| #define ARM_TYPE_CONVERT | ( | __VAR, | |
| __TYPE | |||
| ) | (*((__TYPE *)&(__VAR))) |
convert a given variable to a specified type, the converted result can be used as lvalue.
| __VAR | the target variable |
| __TYPE | the target type |
| #define ARM_TEST_BITS | ( | __VALUE, | |
| __BITS | |||
| ) | ((__BITS) == ((__VALUE) & (__BITS))) |
a macro to test the boolean result for a given value using a given bitmask
| [in] | __VALUE | the target value |
| [in] | __BITS | a bitmask |
| true | all bits in the bitmask is 1 |
| false | not all bits in the bitmask is 1 |
| #define dimof | ( | __array | ) | (sizeof(__array)/sizeof(__array[0])) |
get the number of items in an given array
| #define offsetof | ( | __type, | |
| __member | |||
| ) | ((uintptr_t)&(((__type *)NULL)->__member)) |
get the offset of a given member in a specified structure/union
| __type | the host type |
| __member | the name of the target member |
| #define __ARM_TO_STRING | ( | __STR | ) | #__STR |
| #define ARM_TO_STRING | ( | __STR | ) | __ARM_TO_STRING(__STR) |
convert a string to C string
| #define __ARM_VA_NUM_ARGS_IMPL | ( | _0, | |
| _1, | |||
| _2, | |||
| _3, | |||
| _4, | |||
| _5, | |||
| _6, | |||
| _7, | |||
| _8, | |||
| _9, | |||
| _10, | |||
| _11, | |||
| _12, | |||
| _13, | |||
| _14, | |||
| _15, | |||
| _16, | |||
| __N, | |||
| ... | |||
| ) | __N |
| #define __ARM_VA_NUM_ARGS | ( | ... | ) |
A macro to count the number of parameters.
| #define ARM_2D_PARAM | ( | ... | ) | __VA_ARGS__ |
detect whether GNU extension is enabled in compilation or not
a macro helper to be used with ARM_2D_INVODE to improve the readability of the code
| #define ARM_2D_INVOKE | ( | __FUNC_PTR, | |
| ... | |||
| ) | ((NULL == (__FUNC_PTR)) ? 0 : ((*(__FUNC_PTR))(__VA_ARGS__))) |
A macro to safely invode a function pointer.
| [in] | __FUNC_PTR | the target function pointer |
| [in] | ... | an optional parameter list |
| #define ARM_2D_INVOKE_RT_VOID | ( | __FUNC_PTR, | |
| ... | |||
| ) | if (NULL != (__FUNC_PTR)) (*(__FUNC_PTR))(__VA_ARGS__) |
A macro to safely call a function pointer that has no return value.
| [in] | __FUNC_PTR | the target function pointer |
| [in] | ... | an optional parameter list |
| #define __ARM_CONNECT2 | ( | __A, | |
| __B | |||
| ) | __A##__B |
| #define __ARM_CONNECT2_ALT | ( | __A, | |
| __B | |||
| ) | __A##__B |
| #define __ARM_CONNECT3 | ( | __A, | |
| __B, | |||
| __C | |||
| ) | __A##__B##__C |
| #define __ARM_CONNECT4 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D | |||
| ) | __A##__B##__C##__D |
| #define __ARM_CONNECT5 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E | |||
| ) | __A##__B##__C##__D##__E |
| #define __ARM_CONNECT6 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F | |||
| ) | __A##__B##__C##__D##__E##__F |
| #define __ARM_CONNECT7 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F, | |||
| __G | |||
| ) | __A##__B##__C##__D##__E##__F##__G |
| #define __ARM_CONNECT8 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F, | |||
| __G, | |||
| __H | |||
| ) | __A##__B##__C##__D##__E##__F##__G##__H |
| #define __ARM_CONNECT9 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F, | |||
| __G, | |||
| __H, | |||
| __I | |||
| ) | __A##__B##__C##__D##__E##__F##__G##__H##__I |
| #define ARM_CONNECT2 | ( | __A, | |
| __B | |||
| ) | __ARM_CONNECT2(__A, __B) |
connect two symbol names as one
| #define ARM_CONNECT2_ALT | ( | __A, | |
| __B | |||
| ) | __ARM_CONNECT2_ALT(__A, __B) |
connect two symbol names as one
| #define ARM_CONNECT3 | ( | __A, | |
| __B, | |||
| __C | |||
| ) | __ARM_CONNECT3(__A, __B, __C) |
connect three symbol names as one
| #define ARM_CONNECT4 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D | |||
| ) | __ARM_CONNECT4(__A, __B, __C, __D) |
connect four symbol names as one
| #define ARM_CONNECT5 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E | |||
| ) | __ARM_CONNECT5(__A, __B, __C, __D, __E) |
connect five symbol names as one
| #define ARM_CONNECT6 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F | |||
| ) | __ARM_CONNECT6(__A, __B, __C, __D, __E, __F) |
connect six symbol names as one
| #define ARM_CONNECT7 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F, | |||
| __G | |||
| ) | __ARM_CONNECT7(__A, __B, __C, __D, __E, __F, __G) |
connect seven symbol names as one
| #define ARM_CONNECT8 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F, | |||
| __G, | |||
| __H | |||
| ) | __ARM_CONNECT8(__A, __B, __C, __D, __E, __F, __G, __H) |
connect eight symbol names as one
| #define ARM_CONNECT9 | ( | __A, | |
| __B, | |||
| __C, | |||
| __D, | |||
| __E, | |||
| __F, | |||
| __G, | |||
| __H, | |||
| __I | |||
| ) | __ARM_CONNECT9(__A, __B, __C, __D, __E, __F, __G, __H, __I) |
connect nine symbol names as one
| #define arm_connect | ( | ... | ) |
connect up to 9 symbol names as one
| #define ARM_CONNECT | ( | ... | ) | arm_connect(__VA_ARGS__) |
connect up to 9 symbol names as one
| #define __ARM_USING1 | ( | __declare | ) |
| #define __ARM_USING2 | ( | __declare, | |
| __on_leave_expr | |||
| ) |
| #define __ARM_USING3 | ( | __declare, | |
| __on_enter_expr, | |||
| __on_leave_expr | |||
| ) |
| #define __ARM_USING4 | ( | __dcl1, | |
| __dcl2, | |||
| __on_enter_expr, | |||
| __on_leave_expr | |||
| ) |
| #define arm_using | ( | ... | ) | ARM_CONNECT2(__ARM_USING, __ARM_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) |
create a code segment with up to two local variables and entering/leaving operations
| #define __ARM_WITH2 | ( | __type, | |
| __addr | |||
| ) | arm_using(__type *_=(__addr)) |
| #define __ARM_WITH3 | ( | __type, | |
| __addr, | |||
| __item | |||
| ) | arm_using(__type *_=(__addr), *__item = _, (void)_, (void)0) |
| #define arm_with | ( | ... | ) | ARM_CONNECT2(__ARM_WITH, __ARM_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) |
a with block to access members of a given object
| #define ARM_FOREACH1 | ( | __array | ) |
access each items in a given array
| __array | the target array |
| #define ARM_FOREACH2 | ( | __type, | |
| __array | |||
| ) |
access each items in a given array
| __type | the type of the array |
| __array | the target array |
| #define ARM_FOREACH3 | ( | __type, | |
| __array, | |||
| __item | |||
| ) |
access each items in a given array
| __type | the type of the array |
| __array | the target array |
| __item | a name for the current item (iterator) |
| #define ARM_FOREACH4 | ( | __type, | |
| __array, | |||
| __count, | |||
| __item | |||
| ) |
access each items in a given array
| __type | the type of the array |
| __array | the target array or the pointer of an memory block |
| __count | number of items in the array/memory block |
| __item | a name for the current item (iterator) |
| #define arm_foreach | ( | ... | ) | ARM_CONNECT2(ARM_FOREACH, __ARM_VA_NUM_ARGS(__VA_ARGS__))(__VA_ARGS__) |
access each items in a given array
| #define __ARM_SECTION | ( | __X | ) | __attribute__((section(__X))) |
a wrapper for attribute((nonnull))
| #define ARM_SECTION | ( | __X | ) | __ARM_SECTION(__X) |
an attribute to specify the section
| #define ARM_NOINIT |
an attribute for static variables that no initialisation is required in the C startup process.
| #define __ARM_ALIGN | ( | __N | ) | __attribute__((aligned(__N))) |
| #define ARM_ALIGN | ( | __N | ) | __ARM_ALIGN(__N) |
an attribute to specify aligment requirement
| #define __RESTRICT __restrict |
local variable decoration for pointers: restrict
| #define __OVERRIDE_WEAK |
an decoration for claiming that the immediate following symbol (variable / function) is not WEAK. If there is an __WEAK symbol, the __OVERRIDE_WEAK one can override it.
| #define ARM_2D_SAFE_NAME | ( | ... | ) | ARM_CONNECT(__,__LINE__,##__VA_ARGS__) |
A macro to generate a safe name, usually used in macro template as the name of local variables.
| #define arm_2d_safe_name | ( | ... | ) | ARM_2D_SAFE_NAME(__VA_ARGS__) |
A macro to generate a safe name, usually used in macro template as the name of local variables.
| #define __ARM_2D_WRAP_FUNC | ( | x | ) | __wrap_ ## x |
a decoration to make the immediate following code irq-safe
| #define __ARM_2D_ORIG_FUNC | ( | x | ) | __real_ ## x |
| #define ARM_2D_WRAP_FUNC | ( | __FUNC | ) | __ARM_2D_WRAP_FUNC(__FUNC) |
a symbol wrapper to override a specified function
| #define ARM_2D_ORIG_FUNC | ( | __FUNC | ) | __ARM_2D_ORIG_FUNC(__FUNC) |
a symbol wrapper to refer the original function with a given name
| #define __ARM_LIST_STACK_PUSH | ( | __P_TOP, | |
| __P_NODE | |||
| ) |
| #define ARM_LIST_STACK_PUSH | ( | __P_TOP, | |
| __P_NODE | |||
| ) | __ARM_LIST_STACK_PUSH((__P_TOP), (__P_NODE)) |
push a item to a list
| [in] | __P_TOP | a pointer points to the first item of a list |
| [in] | __P_NODE | a pointer points to the new item |
| #define ARM_LIST_INSERT_AFTER | ( | __P_TARGET, | |
| __P_NODE | |||
| ) | __ARM_LIST_STACK_PUSH((__P_TARGET), (__P_NODE)) |
insert a item after a specified node
| [in] | __P_TARGET | a pointer points to the target node |
| [in] | __P_NODE | a pointer points to the new item |
| #define __ARM_LIST_STACK_POP | ( | __P_TOP, | |
| __P_NODE | |||
| ) |
| #define ARM_LIST_STACK_POP | ( | __P_TOP, | |
| __P_NODE | |||
| ) | __ARM_LIST_STACK_POP((__P_TOP), (__P_NODE)) |
pop a item from a list
| [in] | __P_TOP | a pointer points to the first item of a list |
| [out] | __P_NODE | a pointer variable for the node |
| #define ARM_LIST_REMOVE_AFTER | ( | __P_TARGET, | |
| __P_NODE | |||
| ) | ARM_LIST_STACK_POP((__P_TARGET), (__P_NODE)) |
remove a item after a specified node
| [in] | __P_TARGET | a pointer points to the target node |
| [out] | __P_NODE | a pointer variable for the node |
| #define __ARM_LIST_QUEUE_ENQUEUE | ( | __HEAD, | |
| __TAIL, | |||
| __ITEM | |||
| ) |
| #define ARM_LIST_QUEUE_ENQUEUE | ( | __HEAD, | |
| __TAIL, | |||
| __ITEM | |||
| ) | __ARM_LIST_QUEUE_ENQUEUE((__HEAD), (__TAIL), (__ITEM)) |
enter a node to a queue
| [in] | __HEAD | a pointer points to the queue head |
| [in] | __TAIL | a pointer points to the queue tail |
| [in] | __ITEM | a pointer variable for the new node |
| #define __ARM_LIST_QUEUE_DEQUEUE | ( | __HEAD, | |
| __TAIL, | |||
| __ITEM | |||
| ) |
| #define ARM_LIST_QUEUE_DEQUEUE | ( | __HEAD, | |
| __TAIL, | |||
| __ITEM | |||
| ) | __ARM_LIST_QUEUE_DEQUEUE((__HEAD), (__TAIL), (__ITEM)) |
fetch a node from a queue
| [in] | __HEAD | a pointer points to the queue head |
| [in] | __TAIL | a pointer points to the queue tail |
| [out] | __ITEM | a pointer variable for the node |
| #define __ARM_LIST_QUEUE_PEEK | ( | __HEAD, | |
| __TAIL, | |||
| __ITEM | |||
| ) |
| #define ARM_LIST_QUEUE_PEEK | ( | __HEAD, | |
| __TAIL, | |||
| __ITEM | |||
| ) | __ARM_LIST_QUEUE_PEEK((__HEAD), (__TAIL), (__ITEM)) \ |
peek a node from a queue
| [in] | __HEAD | a pointer points to the queue head |
| [in] | __TAIL | a pointer points to the queue tail |
| [out] | __ITEM | a pointer variable for the node |
| #define __ARM_LIST_QUEUE_IS_EMPTY | ( | __HEAD, | |
| __TAIL | |||
| ) | ((__HEAD) == NULL) |
| #define ARM_LIST_QUEUE_IS_EMPTY | ( | __HEAD, | |
| __TAIL | |||
| ) | __ARM_LIST_QUEUE_IS_EMPTY((__HEAD), (__TAIL)) |
check whether a list FIFO is empty or not
| [in] | __HEAD | a pointer points to the queue head |
| [in] | __TAIL | a pointer points to the queue tail |
| true | the list FIFO is empty |
| false | the list FIFO is not empty |
| #define ARM_PT_BEGIN | ( | __STATE | ) |
| #define ARM_PT_ENTRY | ( | ... | ) |
| #define ARM_PT_END | ( | ) |
| #define ARM_PT_WAIT_UNTIL | ( | __CONDITION, | |
| ... | |||
| ) |
| #define ARM_PT_WAIT_OBJ_UNTIL | ( | __CONDITION, | |
| ... | |||
| ) |
| #define ARM_PT_WAIT_RESOURCE_UNTIL | ( | __CONDITION, | |
| ... | |||
| ) |
| #define ARM_PT_DELAY_MS | ( | __MS, | |
| ... | |||
| ) |
| #define ARM_PT_REPORT_STATUS | ( | ... | ) |
| #define ARM_PT_RETURN | ( | ... | ) |
| #define __def_low_lv_io | ( | __NAME, | |
| __SW, | |||
| ... | |||
| ) |
| #define __ref_low_lv_io | ( | __NAME | ) | &LOW_LEVEL_IO##__NAME |
| #define ref_low_lv_io | ( | __NAME | ) | __ref_low_lv_io(__NAME) |
a symbol wrapper for referencing a specified low-level IO
| #define ARM_2D_LOG_CHN_TYPE_USER _BV(28) |
the bit-mask for log channels
the channel for user messages
| #define ARM_2D_LOG_CHN_TYPE_INFO _BV(29) |
the channel for generic information
| #define ARM_2D_LOG_CHN_TYPE_WARNING _BV(30) |
the channel for warnings messages
| #define ARM_2D_LOG_CHN_TYPE_ERROR _BV(31) |
the channel for error messages
| #define ARM_2D_LOG_CHN_PIPELINE _BV(0) |
the channel dedicated to the pixel-pipeline
| #define ARM_2D_LOG_CHN_OPCODE _BV(1) |
the channel dedicated to OPCODEs and related algorithms
| #define ARM_2D_LOG_CHN_HELPER _BV(2) |
the channel dedicated to Helper services
| #define ARM_2D_LOG_CHN_HELPER_PFB _BV(3) |
the channel dedicated to the PFB helper service
| #define ARM_2D_LOG_CHN_SCENE_PLAYER _BV(4) |
the channel dedicated to the scene player service
| #define ARM_2D_LOG_CHN_DIRTY_REGION_OPTIMISATION _BV(5) |
the channel dedicated to the dirty region optimization services
| #define ARM_2D_LOG_CHN_STATISTICS _BV(6) |
the channel dedicated to show statistics
| #define ARM_2D_LOG_CHN_CONTROLS _BV(7) |
the channel dedicated to example controls
| #define ARM_2D_LOG_CHN_GUI_STACK _BV(16) |
the channel dedicated to USER defined GUI stack
| #define ARM_2D_LOG_CHN_APP _BV(24) |
the channel dedicated to applications and examples
| #define __ARM_2D_LOG_CHANNEL_MASK_FILTER__ 0xFFFFFFFF |
the filter to enable log channels
| #define __ARM_2D_LOG_PRINTF_PIPELINE __arm_2d_log_printf |
the log printf entry dedicated to pixel pipeline
| #define __ARM_2D_LOG_PRINTF_OPCODE __arm_2d_log_printf |
the log printf entry dedicated to OPCODEs and related algorithms
| #define __ARM_2D_LOG_PRINTF_HELPER __arm_2d_log_printf |
the log printf entry dedicated to Helper services
| #define __ARM_2D_LOG_PRINTF_HELPER_PFB __arm_2d_log_printf |
the log printf entry dedicated to the PFB helper service
| #define __ARM_2D_LOG_PRINTF_SCENE_PLAYER __arm_2d_log_printf |
the log printf entry dedicated to the scene player service
| #define __ARM_2D_LOG_PRINTF_DIRTY_REGION_OPTIMISATION __arm_2d_log_printf |
the log printf entry dedicated to the dirty region optimization service
| #define __ARM_2D_LOG_PRINTF_STATISTICS __arm_2d_log_printf |
the log printf entry dedicated to show statistics
| #define __ARM_2D_LOG_PRINTF_CONTROLS __arm_2d_log_printf |
the log printf entry dedicated to example controls
| #define __ARM_2D_LOG_PRINTF_GUI_STACK __arm_2d_log_printf |
the log printf entry dedicated to applications and examples
| #define __ARM_2D_LOG_PRINTF_APP __arm_2d_log_printf |
the log printf entry dedicated to applications and examples
| #define __ARM_2D_PORT_PRINTF__ | ( | __format, | |
| ... | |||
| ) | printf((__format), ##__VA_ARGS__) |
the low level entry for printf
| #define __ARM_2D_LOG_MAX_STRING_LEN__ 256 |
the maximum allowed string length. The log service requests the specified number of bytes for storing string. default value is 256
| #define ARM_2D_M_COLOUR_SZ_1BIT 0 |
1 bit:black and white
| #define ARM_2D_M_COLOUR_SZ_2BIT 1 |
4 colours or 4 gray-levels
| #define ARM_2D_M_COLOUR_SZ_4BIT 2 |
16 colours or 16 gray-levels
| #define ARM_2D_M_COLOUR_SZ_8BIT 3 |
256 colours
| #define ARM_2D_M_COLOUR_SZ_16BIT 4 |
16bits
| #define ARM_2D_M_COLOUR_SZ_32BIT 5 |
true colour
| #define ARM_2D_M_COLOUR_SZ_24BIT 6 |
true colour
| #define ARM_2D_M_COLOUR_SZ_1BIT_msk (ARM_2D_M_COLOUR_SZ_1BIT << 1) |
bitmask for 1bit colour formats
| #define ARM_2D_M_COLOUR_SZ_2BIT_msk (ARM_2D_M_COLOUR_SZ_2BIT << 1) |
bitmask for 2bit colour formats
| #define ARM_2D_M_COLOUR_SZ_4BIT_msk (ARM_2D_M_COLOUR_SZ_4BIT << 1) |
bitmask for 4bit colour formats
| #define ARM_2D_M_COLOUR_SZ_8BIT_msk (ARM_2D_M_COLOUR_SZ_8BIT << 1) |
bitmask for 8bit colour formats
| #define ARM_2D_M_COLOUR_SZ_16BIT_msk (ARM_2D_M_COLOUR_SZ_16BIT<< 1) |
bitmask for 16bit colour formats
| #define ARM_2D_M_COLOUR_SZ_32BIT_msk (ARM_2D_M_COLOUR_SZ_32BIT<< 1) |
bitmask for 32bit colour formats
| #define ARM_2D_M_COLOUR_SZ_24BIT_msk (ARM_2D_M_COLOUR_SZ_24BIT<< 1) |
bitmask for 24bit colour formats
| #define ARM_2D_M_COLOUR_SZ_msk (0x07 << 1), |
bitmask for the SZ bitfield
| #define ARM_2D_M_COLOUR_LITTLE_ENDIAN 0 |
pixels are stored in little endian
| #define ARM_2D_M_COLOUR_BIG_ENDIAN 1 |
pixels are stored big endian
| #define ARM_2D_M_COLOUR_LITTLE_ENDIAN_msk (ARM_2D_M_COLOUR_LITTLE_ENDIAN << 4) |
bitmask for little-endian
| #define ARM_2D_M_COLOUR_BIG_ENDIAN_msk (ARM_2D_M_COLOUR_BIG_ENDIAN << 4) |
bitmask for big-endian
| #define ARM_2D_M_COLOUR_NO_ALPHA 0 |
there is no alpha channel in each pixel
| #define ARM_2D_M_COLOUR_HAS_ALPHA 1 |
there is an alpha channel in each pixel
| #define ARM_2D_M_COLOUR_NO_ALPHA_msk (ARM_2D_M_COLOUR_NO_ALPHA << 0) |
bitmask for no-alpha-channel-in-pixel
| #define ARM_2D_M_COLOUR_HAS_ALPHA_msk (ARM_2D_M_COLOUR_HAS_ALPHA << 0) |
bitmask for has-alpha-channel-in-pixel
| #define ARM_2D_M_COLOUR_VARIANT_pos 5 |
offset for the VARIANT bitfield
| #define ARM_2D_M_COLOUR_VARIANT_msk (0x03<<ARM_2D_M_COLOUR_VARIANT_pos) |
bitmask for the VARIANT bitfield
| #define ARM_2D_M_COLOUR_MONOCHROME |
macro for the monochrome
| #define ARM_2D_M_COLOUR_BIN ARM_2D_M_COLOUR_MONOCHROME |
macro for the 1bit colour format (alias)
| #define ARM_2D_M_COLOUR_1BIT ARM_2D_M_COLOUR_MONOCHROME |
macro for the 1bin colour format (alias)
| #define ARM_2D_M_COLOUR_MASK_A1 ARM_2D_M_COLOUR_SZ_1BIT_msk |
macro for the 1bit alpha mask
| #define ARM_2D_M_COLOUR_MASK_A2 ARM_2D_M_COLOUR_SZ_2BIT_msk |
macro for the 2bit alpha mask
| #define ARM_2D_M_COLOUR_MASK_A4 ARM_2D_M_COLOUR_SZ_4BIT_msk |
macro for the 4bit alpha mask
| #define ARM_2D_M_COLOUR_8BIT ARM_2D_M_COLOUR_SZ_8BIT_msk |
macro for the generic 8bit colour formats
| #define ARM_2D_M_COLOUR_GRAY8 ARM_2D_M_COLOUR_SZ_8BIT_msk |
macro for the gray8 colour format
| #define ARM_2D_M_COLOUR_MASK_A8 ARM_2D_M_COLOUR_SZ_8BIT_msk |
macro for the 8bit alpha mask
| #define ARM_2D_M_COLOUR_16BIT ARM_2D_M_COLOUR_SZ_16BIT_msk |
macro for the generic 16bit colour formats
| #define ARM_2D_M_COLOUR_RGB16 ARM_2D_M_COLOUR_SZ_16BIT_msk |
macro for the generic 16bit colour formats
| #define ARM_2D_M_COLOUR_RGB565 ARM_2D_M_COLOUR_RGB16 |
macro for the rgb565
| #define ARM_2D_M_COLOUR_24BIT ARM_2D_M_COLOUR_SZ_24BIT_msk |
macro for the generic 24bit colour formats
| #define ARM_2D_M_COLOUR_RGB24 ARM_2D_M_COLOUR_SZ_24BIT_msk |
macro for the generic 24bit colour formats
| #define ARM_2D_M_COLOUR_32BIT ARM_2D_M_COLOUR_SZ_32BIT_msk |
macro for the generic 32bit colour formats
| #define ARM_2D_M_COLOUR_RGB32 ARM_2D_M_COLOUR_SZ_32BIT_msk |
macro for the generic 32bit colour formats
| #define ARM_2D_M_COLOUR_CCCN888 ARM_2D_M_COLOUR_RGB32 |
macro for the generic 32bit colour formats with an reserved channel at the highest byte
| #define ARM_2D_M_COLOUR_CCCA8888 |
macro for the generic 32bit colour formats with an alpha channel at the highest byte
| #define ARM_2D_M_COLOUR_RGBX888 ARM_2D_M_COLOUR_CCCN888 |
macro for the RGB888 (BGRN8888)
| #define ARM_2D_M_COLOUR_BGRA8888 ARM_2D_M_COLOUR_CCCA8888 |
macro for the BGRA8888
| #define ARM_2D_M_CHANNEL_8in32 |
macro for a special colour format which access only one channel in RGB32
| #define ARM_2D_OP_INFO_PARAM_HAS_SOURCE _BV(0) |
opcode has source tile info
| #define ARM_2D_OP_INFO_PARAM_HAS_TARGET _BV(1) |
opcode has target tile info
| #define ARM_2D_OP_INFO_PARAM_HAS_SOURCE_MASK _BV(2) |
opcode has source mask info
| #define ARM_2D_OP_INFO_PARAM_HAS_TARGET_MASK _BV(3) |
opcode has target mask info
| #define ARM_2D_OP_INFO_PARAM_HAS_ORIGIN _BV(4) |
opcode has original tile info
| #define ARM_2D_OP_INFO_PARAM_TILES_MASK |
a bitmask for INFO_PARAM_HAS_xxxx bitfields
| #define __ARM_2D_OP_STATUS_BUSY_msk (1 << 4) |
bitmask for the busy flag
| #define __ARM_2D_OP_STATUS_IO_ERROR_msk (1 << 5) |
bitmask for the IO error flag
| #define __ARM_2D_OP_STATUS_CPL_msk (1 << 6) |
bitmask for the complete flag
| #define __ARM_2D_HAS_HELIUM__ 0 |
target MCU has does not have Helium extension
| #define __ARM_2D_HAS_HELIUM_INTEGER__ 0 |
target MCU has does not have Helium integer extension
| #define __ARM_2D_HAS_HELIUM_FLOAT__ 0 |
target MCU has does not have Helium floating point extension
| #define __ARM_2D_HAS_NEON__ 0 |
target processor does not have NEON extension
| #define __ARM_2D_HAS_SVE2__ 0 |
target processor does not have the SVE2 extension
| #define __ARM_2D_HAS_ACI__ 0 |
target MCU has no ACI implementation
| #define __ARM_2D_HAS_TIGHTLY_COUPLED_ACC__ 0 |
target MCU has no tightly coupled acceleration (other than ACI)
| #define __ARM_2D_HAS_HW_ACC__ 0 |
target MCU has no dedicated hardware (async) acceleration
| #define __ARM_2D_HAS_ASYNC__ 1 |
enable asynchronous mode (enable pipeline)
| #define __ARM_2D_HAS_FPU__ 0 |
target MCU has no FPU
| #define __ARM_2D_HAS_DSP__ 0 |
target MCU has no DSP extension
| #define __ARM_2D_HAS_ANTI_ALIAS_TRANSFORM__ 0 |
disable the anti-alias support in transform operations
| #define __ARM_2D_CFG_FORCED_FIXED_POINT_TRANSFORM__ 1 |
use fixed point numbers in transform operations
| #define __ARM_2D_CFG_SUPPORT_COLOUR_CHANNEL_ACCESS__ 1 |
enable the support for CCCA8888
| #define ARM_2D_VERSION_MAJOR 1 |
Major version.
| #define ARM_2D_VERSION_MINOR 2 |
Minor version.
| #define ARM_2D_VERSION_PATCH 4 |
Patch number.
| #define ARM_2D_VERSION_STR "" |
tag
| #define ARM_2D_VERSION |
arm-2d version number in decimal
| #define ARM_2D_OP_WAIT_ASYNC | ( | ... | ) | arm_2d_op_wait_async((arm_2d_op_core_t *)(NULL,##__VA_ARGS__)) |
wait asynchronous operation complete
| [in] | ... | [OPTIONAL] the address of the target OP (NULL or ignore means using the default OP) |
| true | sync up with operation |
| false | operation is busy |
| typedef bool arm_2d_op_evt_handler_t(arm_2d_op_core_t *ptThisOP, arm_fsm_rt_t tResult, void *pTarget) |
a prototype of event handlers for 2D operations
| [in] | ptThisOP | the target 2D operation descriptor |
| [in] | tResult | the operation result |
| [in] | pTarget | A user attached object |
| typedef bool arm_2d_evt_handler_t(void *pTarget) |
a prototype for generic event handlers
| pTarget | A user attached object |
| typedef struct __arm_2d_low_level_io_t __arm_2d_low_level_io_t |
an incomplete defintion which is only used for defining pointers
| enum arm_fsm_rt_t |
finite-state-machine status return (Compatible with arm_status, minimal integer: int8_t)
| enum arm_2d_err_t |
the error code for arm-2d (minimal integer: int8_t)
| enum arm_2d_cmp_t |
| anonymous enum |
enumerations for colour attributes
| anonymous enum |
enumerations for colour types
| anonymous enum |
| enum arm_2d_align_t |
alignment
| enum arm_2d_mem_type_t |
| anonymous enum |
how would you want to accelerate the 2d-operation
| void __arm_2d_log_printf | ( | int32_t | nIndentLevel, |
| uint32_t | wChannelMask, | ||
| const char * | pchPrefix, | ||
| const char * | pchFormatString, | ||
| ... | |||
| ) |
an entry for log printf
| [in] | nIndentLevel | number of indents before print actual content |
| [in] | wChannelMask | a bit-mask to indicate the log channel |
| [in] | pchPrefix | a string used as prefix, we can use it to print content like function name, service name etc. |
| [in] | pchFormatString | the format string used in printf |
| [in] | ... | the optional parameters |
| void arm_2d_init | ( | void | ) |
initialise arm-2d
| arm_2d_tile_t * arm_2d_set_default_frame_buffer | ( | const arm_2d_tile_t * | ptFrameBuffer | ) |
set the default frame buffer
| ptFrameBuffer | the new frame buffer, |
| arm_2d_tile_t * arm_2d_get_default_frame_buffer | ( | void | ) |
get the default frame buffer
| void arm_2d_set_user_param | ( | arm_2d_op_core_t * | ptOP, |
| uintptr_t | pUserParam | ||
| ) |
attach a user param (which could be a pointer) to specified OP
| ptOP | the address of the target OP (NULL means using the default OP) |
| pUserParam | a user parameter (it can be used as a pointer) |
| arm_2d_op_core_t * arm_2d_op_init | ( | arm_2d_op_core_t * | ptOP, |
| size_t | tSize | ||
| ) |
initialize an given opcode
| ptOP | the address of the target OP |
| tSize | the size of the opcode object |
| arm_2d_op_core_t * arm_2d_op_depose | ( | arm_2d_op_core_t * | ptOP, |
| size_t | tSize | ||
| ) |
depose an given opcode
| ptOP | the address of the target OP |
| tSize | the size of the opcode object |
| void arm_2d_op_attach_semaphore | ( | arm_2d_op_core_t * | ptOP, |
| uintptr_t | pSemaphore | ||
| ) |
attach a semaphore (which could be a pointer) to specified OP
| ptOP | the address of the target OP (NULL means using the default OP) |
| pSemaphore | a pointer points to a RTOS semaphore |
| uintptr_t arm_2d_op_get_semaphore | ( | arm_2d_op_core_t * | ptOP | ) |
get the attached semaphore (which could be a pointer) from specified OP
| ptOP | the address of the target OP (NULL means using the default OP) |
| bool arm_2d_op_wait_async | ( | arm_2d_op_core_t * | ptOP | ) |
wait asynchronous operation complete
| [in] | ptOP | the address of the target OP (NULL means using the default OP) |
| true | sync up with operation |
| false | operation is busy |
| arm_2d_op_status_t arm_2d_get_op_status | ( | arm_2d_op_core_t * | ptOP | ) |
get the status of a specified OP,
usually, it is used after calling arm_2d_op_wait_async(). E.g.
| ptOP | the address of the target OP (NULL means using the default OP) |
| arm_fsm_rt_t arm_2d_task | ( | arm_2d_task_t * | ptTask | ) |
arm-2d pixel pipeline task entery
| ptTask | the address of an arm-2d task control block |
| arm_fsm_rt_cpl | The sub-task FIFO is empty, the caller can wait for a semaphore set by arm_2d_notif_sub_task_fifo_task_arrive() |
| arm_fsm_rt_on_going | The arm_2d_task yields |
| arm_fsm_rt_async | You shouldn't see this value |
| arm_fsm_rt_wait_for_obj | hardware accelerator wants to sync-up with applications. |
| (<0) | Serious error is detected. |
| void * __arm_2d_allocate_scratch_memory | ( | uint32_t | wSize, |
| uint_fast8_t | nAlign, | ||
| arm_2d_mem_type_t | tType | ||
| ) |
allocate a memory block with specified memory type
| wSize | the minimal size |
| nAlign | the alignment |
| tType | the type of memory |
| void __arm_2d_free_scratch_memory | ( | arm_2d_mem_type_t | tType, |
| void * | pBuff | ||
| ) |
free a specified memory block
| tType | the type of memory |
| pBuff | the address of the memory |
| arm_2d_scratch_mem_t * arm_2d_scratch_memory_new | ( | arm_2d_scratch_mem_t * | ptMemory, |
| uint16_t | hwItemSize, | ||
| uint16_t | hwItemCount, | ||
| uint16_t | hwAlignment, | ||
| arm_2d_mem_type_t | tType | ||
| ) |
allocate a scratch memory and initialize arm_2d_scratch_mem_t object
| [out] | ptMemory | the address of an arm_2d_scratch_mem_t object to hold the result |
| [in] | hwItemSize | the size of each item |
| [in] | hwItemCount | the number of items |
| [in] | hwAlignment | the alignment requirement |
| [in] | tType | the type of memory |
| arm_2d_scratch_mem_t * arm_2d_scratch_memory_free | ( | arm_2d_scratch_mem_t * | ptMemory | ) |
free a scratch memory with a given scratch memory descriptor object
| [in] | the | target scratch memory descriptor |
|
extern |
arm-2d runtime feature configuration
|
extern |
arm-2d version