/*
 * TlApiDrTimaCommon.h
 */

#ifndef _TL_API_DR_TIMA_COMMON_H_
#define _TL_API_DR_TIMA_COMMON_H_

typedef struct digestData_t {
	addr_t physAddr;	/* beginning of contiguous memory location */
	uint32_t len;		/* length of data */
	addr_t pDigest;	/* address of the 20 bytes long digest buffer */
	uint32_t status;	/* indicates the result of processing */
} DigestData_t,*DigestData_ptr;

typedef enum destination {
	PHYS_READ,
	PHYS_WRITE
} Action_t;

typedef struct physMemAccessData_t {
	addr_t physAddr;	/* beginning of contiguous memory location */
	uint32_t len;		/* length of data */
	addr_t tlAddr;		/* TL virtual address */
	Action_t action;	/* operation to be executed */
	uint32_t status;	/* indicates the result of processing */
} PhysMemAccessData_t, *PhysMemAccessData_ptr;

typedef struct driverAccessData_t {
	addr_t p_in;
	addr_t p_out;
	addr_t p_in_out;
	addr_t p_bin_out;
	addr_t physAddr;
	uint32_t len;
} DriverAccessData_t, *DriverAccessData_ptr;

typedef struct scrypto_t {
	uint32_t cmd;
	uint32_t in_len;
	addr_t in_addr;
	uint32_t out_len;
	addr_t out_addr;
	uint32_t ret_val;
} SCrypto_t, *SCrypto_ptr;

typedef struct update_whitelist_t {
	uint32_t wl_version;
	uint32_t wl_len;
	addr_t   wl_addr;
	uint32_t ret_val;
} UpdateWhitelist_t, *UpdateWhitelist_ptr;


typedef struct set_hdm_policy_t {
	uint32_t r1;
	uint32_t r2;
	uint32_t r3;
	uint32_t ret_val;
} SetHdmPolicy_t, *SetHdmPolicy_ptr;
#endif	/* _TL_API_DR_TIMA_COMMON_H_ */
