31#ifndef __ARM_2D_TYPES_H__
32#define __ARM_2D_TYPES_H__
40#include "arm_2d_features.h"
41#include "arm_2d_utils.h"
42#include "__arm_2d_math.h"
49# pragma clang diagnostic push
50# pragma clang diagnostic ignored "-Wunknown-warning-option"
51# pragma clang diagnostic ignored "-Wreserved-identifier"
52# pragma clang diagnostic ignored "-Wmissing-declarations"
53# pragma clang diagnostic ignored "-Wpadded"
54# pragma clang diagnostic ignored "-Wc11-extensions"
55#elif __IS_COMPILER_ARM_COMPILER_5__
56# pragma diag_suppress 64
57#elif __IS_COMPILER_GCC__
58# pragma GCC diagnostic push
59# pragma GCC diagnostic ignored "-Wmissing-declarations"
60# pragma GCC diagnostic ignored "-Wpadded"
279 ARM_2D_COLOUR_SZ_msk = (0x07 << 1),
281 ARM_2D_COLOUR_LITTLE_ENDIAN = 0,
282 ARM_2D_COLOUR_BIG_ENDIAN = 1,
284 ARM_2D_COLOUR_LITTLE_ENDIAN_msk = ARM_2D_COLOUR_LITTLE_ENDIAN << 4,
285 ARM_2D_COLOUR_BIG_ENDIAN_msk = ARM_2D_COLOUR_BIG_ENDIAN << 4,
287 ARM_2D_COLOUR_NO_ALPHA = 0,
288 ARM_2D_COLOUR_HAS_ALPHA = 1,
290 ARM_2D_COLOUR_NO_ALPHA_msk = ARM_2D_COLOUR_NO_ALPHA << 0,
291 ARM_2D_COLOUR_HAS_ALPHA_msk = ARM_2D_COLOUR_HAS_ALPHA << 0,
293 ARM_2D_COLOUR_VARIANT_pos = 5,
294 ARM_2D_COLOUR_VARIANT_msk = 0x07 << ARM_2D_COLOUR_VARIANT_pos,
298#define ARM_2D_M_COLOUR_SZ_1BIT 0
299#define ARM_2D_M_COLOUR_SZ_2BIT 1
300#define ARM_2D_M_COLOUR_SZ_4BIT 2
301#define ARM_2D_M_COLOUR_SZ_8BIT 3
302#define ARM_2D_M_COLOUR_SZ_16BIT 4
303#define ARM_2D_M_COLOUR_SZ_32BIT 5
305#define ARM_2D_M_COLOUR_SZ_1BIT_msk (ARM_2D_M_COLOUR_SZ_1BIT << 1)
306#define ARM_2D_M_COLOUR_SZ_2BIT_msk (ARM_2D_M_COLOUR_SZ_2BIT << 1)
307#define ARM_2D_M_COLOUR_SZ_4BIT_msk (ARM_2D_M_COLOUR_SZ_4BIT << 1)
308#define ARM_2D_M_COLOUR_SZ_8BIT_msk (ARM_2D_M_COLOUR_SZ_8BIT << 1)
309#define ARM_2D_M_COLOUR_SZ_16BIT_msk (ARM_2D_M_COLOUR_SZ_16BIT<< 1)
310#define ARM_2D_M_COLOUR_SZ_32BIT_msk (ARM_2D_M_COLOUR_SZ_32BIT<< 1)
311#define ARM_2D_M_COLOUR_SZ_msk (0x07 << 1),
313#define ARM_2D_M_COLOUR_LITTLE_ENDIAN 0
314#define ARM_2D_M_COLOUR_BIG_ENDIAN 1
316#define ARM_2D_M_COLOUR_LITTLE_ENDIAN_msk (ARM_2D_M_COLOUR_LITTLE_ENDIAN << 4)
317#define ARM_2D_M_COLOUR_BIG_ENDIAN_msk (ARM_2D_M_COLOUR_BIG_ENDIAN << 4)
319#define ARM_2D_M_COLOUR_NO_ALPHA 0
320#define ARM_2D_M_COLOUR_HAS_ALPHA 1
322#define ARM_2D_M_COLOUR_NO_ALPHA_msk (ARM_2D_M_COLOUR_NO_ALPHA << 0)
323#define ARM_2D_M_COLOUR_HAS_ALPHA_msk (ARM_2D_M_COLOUR_HAS_ALPHA << 0)
325#define ARM_2D_M_COLOUR_VARIANT_pos 5
326#define ARM_2D_M_COLOUR_VARIANT_msk (0x07 << ARM_2D_M_COLOUR_VARIANT_pos)
333 ARM_2D_COLOUR_BIN = ARM_2D_COLOUR_SZ_1BIT_msk,
334 ARM_2D_COLOUR_1BIT = ARM_2D_COLOUR_SZ_1BIT_msk,
336 ARM_2D_COLOUR_8BIT = ARM_2D_COLOUR_SZ_8BIT_msk,
337 ARM_2D_COLOUR_GRAY8 = ARM_2D_COLOUR_SZ_8BIT_msk,
339 ARM_2D_COLOUR_16BIT = ARM_2D_COLOUR_SZ_16BIT_msk,
340 ARM_2D_COLOUR_RGB16 = ARM_2D_COLOUR_SZ_16BIT_msk,
341 ARM_2D_COLOUR_RGB565 = ARM_2D_COLOUR_RGB16,
348 ARM_2D_COLOUR_32BIT = ARM_2D_COLOUR_SZ_32BIT_msk ,
349 ARM_2D_COLOUR_RGB32 = ARM_2D_COLOUR_SZ_32BIT_msk ,
351 ARM_2D_COLOUR_CCCN888 = ARM_2D_COLOUR_RGB32 ,
352 ARM_2D_COLOUR_CCCA8888 = ARM_2D_COLOUR_SZ_32BIT_msk |
353 ARM_2D_COLOUR_HAS_ALPHA_msk ,
355 ARM_2D_COLOUR_RGB888 = ARM_2D_COLOUR_CCCN888 ,
356 ARM_2D_COLOUR_BGRA8888 = ARM_2D_COLOUR_CCCA8888 ,
365 ARM_2D_CHANNEL_8in32 = ARM_2D_COLOUR_SZ_32BIT_msk |
366 ARM_2D_COLOUR_HAS_ALPHA_msk |
367 ARM_2D_COLOUR_VARIANT_msk ,
371#define ARM_2D_M_COLOUR_BIN ARM_2D_M_COLOUR_SZ_1BIT_msk
372#define ARM_2D_M_COLOUR_1BIT ARM_2D_M_COLOUR_SZ_1BIT_msk
374#define ARM_2D_M_COLOUR_8BIT ARM_2D_M_COLOUR_SZ_8BIT_msk
375#define ARM_2D_M_COLOUR_GRAY8 ARM_2D_M_COLOUR_SZ_8BIT_msk
377#define ARM_2D_M_COLOUR_16BIT ARM_2D_M_COLOUR_SZ_16BIT_msk
378#define ARM_2D_M_COLOUR_RGB16 ARM_2D_M_COLOUR_SZ_16BIT_msk
379#define ARM_2D_M_COLOUR_RGB565 ARM_2D_M_COLOUR_RGB16
386#define ARM_2D_M_COLOUR_32BIT ARM_2D_M_COLOUR_SZ_32BIT_msk
387#define ARM_2D_M_COLOUR_RGB32 ARM_2D_M_COLOUR_SZ_32BIT_msk
389#define ARM_2D_M_COLOUR_CCCN888 ARM_2D_M_COLOUR_RGB32
390#define ARM_2D_M_COLOUR_CCCA8888 ( ARM_2D_M_COLOUR_SZ_32BIT_msk \
391 | ARM_2D_M_COLOUR_HAS_ALPHA_msk)
393#define ARM_2D_M_COLOUR_RGB888 ARM_2D_M_COLOUR_CCCN888
394#define ARM_2D_M_COLOUR_RGBA8888 ARM_2D_M_COLOUR_CCCA8888
403#define ARM_2D_M_CHANNEL_8in32 ( ARM_2D_M_COLOUR_SZ_32BIT_msk \
404 | ARM_2D_M_COLOUR_HAS_ALPHA_msk) \
405 | ARM_2D_M_COLOUR_VARIANT_msk )
413 uint8_t bHasAlpha : 1;
414 uint8_t u3ColourSZ : 3;
415 uint8_t bBigEndian : 1;
416 uint8_t u3Variant : 3;
476 implement_ex(
struct {
478 uint8_t bHasEnforcedColour : 1;
479 uint8_t bDerivedResource : 1;
480 uint8_t bVirtualResource : 1;
601#define ARM_2D_OP_INFO_PARAM_HAS_SOURCE _BV(0)
602#define ARM_2D_OP_INFO_PARAM_HAS_TARGET _BV(1)
603#define ARM_2D_OP_INFO_PARAM_HAS_SOURCE_MASK _BV(2)
604#define ARM_2D_OP_INFO_PARAM_HAS_TARGET_MASK _BV(3)
605#define ARM_2D_OP_INFO_PARAM_HAS_ORIGIN _BV(4)
607#define ARM_2D_OP_INFO_PARAM_TILES_MASK ( \
608 ARM_2D_OP_INFO_PARAM_HAS_SOURCE | \
609 ARM_2D_OP_INFO_PARAM_HAS_TARGET | \
610 ARM_2D_OP_INFO_PARAM_HAS_SOURCE_MASK | \
611 ARM_2D_OP_INFO_PARAM_HAS_TARGET_MASK | \
612 ARM_2D_OP_INFO_PARAM_HAS_ORIGIN )
626 uint8_t bHasSource : 1;
627 uint8_t bHasTarget : 1;
628 uint8_t bHasSrcMask : 1;
629 uint8_t bHasDesMask : 1;
630 uint8_t bHasOrigin : 1;
632 uint8_t bAllowEnforcedColour : 1;
637 uint8_t chInClassOffset;
646 uint8_t CopyOrigLike;
647 uint8_t FillOrigLike;
650 uint8_t TileProcessLike;
652 }LowLevelInterfaceIndex;
688 ARM_2D_PREF_ACC_DONT_CARE = 3,
691#define __ARM_2D_OP_STATUS_BUSY_msk (1 << 4)
692#define __ARM_2D_OP_STATUS_IO_ERROR_msk (1 << 5)
693#define __ARM_2D_OP_STATUS_CPL_msk (1 << 6)
701 uint16_t u4SubTaskCount : 4;
702 uint16_t bIsBusy : 1;
703 uint16_t bIOError : 1;
721 uint8_t u2ACCMethods : 2;
857#if (__ARM_2D_HAS_HELIUM_FLOAT__ || __ARM_2D_HAS_FPU__) \
858 && !__ARM_2D_CFG_FORCED_FIXED_POINT_TRANSFORM__
889#if defined(__clang__)
890#pragma clang diagnostic pop
891#elif __IS_COMPILER_ARM_COMPILER_5__
892#pragma diag_warning 64
893#elif __IS_COMPILER_GCC__
894#pragma GCC diagnostic pop