blob: 3258855ca355e027f08ac32f04d9188735631a79 [file] [log] [blame]
struct page_header {
uint32_t page_status;
uint32_t valid_length;
unsigned char buffer[0];
};
struct buffer_header {
uint32_t guard_band;
uint32_t allocate_index;
uint32_t free_index;
uint32_t read_index;
uint32_t write_index;
uint32_t page_size;
uint32_t data_buffer_size;
uint32_t guard_band_e;
};
typedef int (*ccci_shm_srv_read_callback)(void);
struct ccb_ctrl_info {
unsigned int user_id; /*user id from ccb start*/
unsigned int ctrl_offset;
unsigned int ctrl_addr; /*phy addr*/
unsigned int ctrl_length;
};
struct ccci_ccb_control_user {
CCCI_USER user_id;
struct ccb_ctrl_info ctrl_info;
unsigned char *ctrl_base_address; /*virtual addr*/
unsigned int buffer_num;
unsigned char *base_address;
unsigned int total_length;
int fd;
int ctrl_fd;
struct ccci_ccb_control_buff *buffers;
};
struct ccci_ccb_control_buff {
unsigned int dl_page_num;
unsigned int ul_page_num;
struct buffer_header *dl_header;
struct buffer_header *ul_header;
struct page_header *dl_pages;
struct page_header *ul_pages;
};
enum {
PAGE_STATUS_INIT = 0,
PAGE_STATUS_ALLOC = 0x11111111,
PAGE_STATUS_WRITE_DONE = 0x22222222,
};
enum {
P_CORE = 0,
VOLTE_CORE,
};
enum {
CCB_USER_INVALID = 0,
CCB_USER_OK,
CCB_USER_ERR,
};
#define HEADER_MAGIC_BEFORE 0xAABBCCDD
#define HEADER_MAGIC_AFTER 0xDDBBCCAA
#define TAIL_MAGIC_BEFORE 0xEEFF0011
#define TAIL_MAGIC_AFTER 0x1100FFEE