#pragma once

#include <sys/resource.h>

/********* !!!! WARNING !!!! ***************
 * Please make sure such header is not included
 * in more than one source-file of TA
 *******************************************/

#define TA_PROP_UUID                    {0,0,0,{0,0,0,0,0,2,0,0x81}}
#define TA_PROP_SINGLE_INSTANCE         TRUE
#define TA_PROP_MULTISESSION            TRUE
#define TA_PROP_INSTANCE_KEEPALIVE      FALSE
#define TA_PROP_DATASIZE                RLIM_INFINITY
#define TA_PROP_STACKSIZE               0x4000
#if defined(TUI_FOR_MTK_PLATFORM)
#define TA_PROP_GROUP_ID                "lsi_wv"
#else
#define TA_PROP_GROUP_ID                TUI_SIGN_TYPE "_drv"
#endif
#define TA_PROP_VERSION                 "ver. none      "

/* !!!! WARNING !!!! Do not write your code after this line !!!! */
#include <ta_property.h>
#include <ta_custom_property.h>
#include <tee_prop_names.h>

TA_PROP_CUSTOM_START
TA_PROP_CUSTOM_U32(TA_DRV_VERSION_PROP_NAME, 1)
#if defined(TUI_FOR_EXYNOS9925)
TA_PROP_CUSTOM_U32ARRAY(TA_MEM_LIST_PROP_NAME, (19 * 2), {  // Number of arguments. (ADDR and SIZE)
    ADDR(0x10000000), SIZE(0x1000),     // for soc revision check.
    ADDR(0x19f00000), SIZE(0xFFFF),     // SFR region: (0x16100000--0x10001000)
    ADDR(0x19f10000), SIZE(0xFFFF),     // SFR region: (0x16110000--0x10002000)
    ADDR(0x19f20000), SIZE(0xFFFF),     // SFR region: (0x16130000--0x10003000)
    ADDR(0x19f30000), SIZE(0xFFFF),     // SFR region: (0x160D0000--0x10001000)
    ADDR(0x1ad58000), SIZE(0x1000),     // SFR region: (0x160B0000--0x10002000)
    ADDR(0x1af58000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad5f000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x19eb0000), SIZE(0x300),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x19e21000), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x19ee0100), SIZE(0x700),      // SFR region: (0x16030000--0x10003000)
    ADDR(0x19ee0000), SIZE(0x100),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x15860714), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad00000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad30000), SIZE(0x1000),     // SFR region: (0x160B0000--0x10002000)
    ADDR(0x1ad50000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad40000), SIZE(0x4000),     // SFR region: (0x160B0000--0x10002000)
    ADDR(0x1ad60000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x1ad3f000), SIZE(0x1000)      // SFR region: (0x16030000--0x10003000)
})
#endif
#if defined(TUI_FOR_EXYNOS8825)
TA_PROP_CUSTOM_U32ARRAY(TA_MEM_LIST_PROP_NAME, (12 * 2), {	// Number of arguments. (ADDR and SIZE)
    ADDR(0x14940000), SIZE(0xFFFF),     // SFR region: (0x16100000--0x10001000)
    ADDR(0x14950000), SIZE(0xFFFF),     // SFR region: (0x16110000--0x10002000)
    ADDR(0x14960000), SIZE(0xFFFF),     // SFR region: (0x16130000--0x10003000)
    ADDR(0x14970000), SIZE(0xFFFF),     // SFR region: (0x160D0000--0x10001000)
    ADDR(0x149b0000), SIZE(0xFFFF),     // SFR region: (0x160D0000--0x10001000)
    ADDR(0x148C0000), SIZE(0x300),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x148E0100), SIZE(0x700),      // SFR region: (0x16030000--0x10003000)
    ADDR(0x148E0000), SIZE(0x100),      // SFR region: (0x160B0000--0x10002000)
    ADDR(0x14821000), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x11860714), SIZE(0x10),       // SFR region: (0x16030000--0x10003000)
    ADDR(0x14890000), SIZE(0x1000),     // SFR region: (0x16030000--0x10003000)
    ADDR(0x14840000), SIZE(0x1000)      // SFR region: (0x16030000--0x10003000)		
})
#endif

TA_PROP_CUSTOM_END
