12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*
- * @file tz_iccc.h
- * @brief header file for kernel tz_iccc
- * Copyright (c) 2015, Samsung Electronics Corporation. All rights reserved.
- */
- #ifndef TZ_ICCC_H
- #define TZ_ICCC_H
- /* ICCC Implementation in Kernel */
- #define MIN_PADDING_NEEDED 9
- /* ICCC TZApp name */
- #define ICCC_TZAPP_NAME "tz_iccc"
- /* Defining ICCC related CMD IDs for TZ communication*/
- #define CMD_ICCC_INIT 0x00000001
- #define CMD_ICCC_SAVEDATA_KERN 0x00000002
- #define CMD_ICCC_READDATA_KERN 0x00000003
- /* Buffer length to be used for ICCC TZ communication*/
- #define ICCC_QSEE_BUFFER_LENGTH 1024
- /* QSEECOM driver related MACROS*/
- #define QSEECOM_ALIGN_SIZE 0x40
- #define QSEECOM_ALIGN_MASK (QSEECOM_ALIGN_SIZE - 1)
- #define QSEECOM_ALIGN(x) \
- ((x + QSEECOM_ALIGN_SIZE) & (~QSEECOM_ALIGN_MASK))
- /* structures for ICCC QSEE communication*/
- typedef struct tz_msg_header {
- /* * First 4 bytes should always be id: either cmd_id or resp_id */
- uint32_t id;
- uint32_t content_id;
- uint32_t len;
- uint32_t status;
- } __attribute__ ((packed)) tz_msg_header_t;
- typedef struct iccc_req_s {
- uint32_t cmd_id;
- uint32_t type;
- uint32_t value;
- uint32_t padding[MIN_PADDING_NEEDED]; //only padding , just to make tciMessage_t's size >= 64
- } __attribute__ ((packed)) iccc_req_t;
- typedef struct iccc_rsp_s {
- uint32_t cmd_id;
- uint32_t type;
- uint32_t value;
- int ret;
- } __attribute__ ((packed)) iccc_rsp_t;
- typedef struct {
- union content_u {
- iccc_req_t iccc_req;
- iccc_rsp_t iccc_rsp;
- } __attribute__ ((packed)) content;
- } __attribute__ ((packed)) tima_iccc_generic_payload_t;
- typedef struct {
- tz_msg_header_t header;
- union payload_u {
- tima_iccc_generic_payload_t generic;
- } __attribute__ ((packed)) payload;
- } __attribute__ ((packed)) tima_iccc_message_t;
- typedef tima_iccc_message_t tciMessage_t;
- /* structures for QSEECOM driver interaction*/
- struct qseecom_handle {
- void *dev; /* in/out */
- unsigned char *sbuf; /* in/out */
- uint32_t sbuf_len; /* in/out */
- };
- /* declaring QSEECOM driver related functions*/
- extern int qseecom_start_app(struct qseecom_handle **handle, char *app_name, uint32_t size);
- extern int qseecom_shutdown_app(struct qseecom_handle **handle);
- extern int qseecom_send_command(struct qseecom_handle *handle, void *send_buf, uint32_t sbuf_len, void *resp_buf, uint32_t rbuf_len);
- extern int qseecom_set_bandwidth(struct qseecom_handle *handle, bool high);
- #endif /* TIMA_UEVENT_H */
|