• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef _CS_PROTOCOL_H
7 #define _CS_PROTOCOL_H
8 #include <linux/types.h>
9 #include <linux/ioctl.h>
10 #define CS_DEV_FILE_NAME		"/dev/cmt_speech"
11 #define CS_IF_VERSION			2
12 #define CS_CMD_SHIFT			28
13 #define CS_DOMAIN_SHIFT			24
14 #define CS_CMD_MASK			0xff000000
15 #define CS_PARAM_MASK			0xffffff
16 #define CS_CMD(id, dom) \
17 	(((id) << CS_CMD_SHIFT) | ((dom) << CS_DOMAIN_SHIFT))
18 #define CS_ERROR			CS_CMD(1, 0)
19 #define CS_RX_DATA_RECEIVED		CS_CMD(2, 0)
20 #define CS_TX_DATA_READY		CS_CMD(3, 0)
21 #define CS_TX_DATA_SENT			CS_CMD(4, 0)
22 #define CS_ERR_PEER_RESET		0
23 #define CS_FEAT_TSTAMP_RX_CTRL		(1 << 0)
24 #define CS_FEAT_ROLLING_RX_COUNTER	(2 << 0)
25 #define CS_STATE_CLOSED			0
26 #define CS_STATE_OPENED			1
27 #define CS_STATE_CONFIGURED		2
28 #define CS_MAX_BUFFERS_SHIFT		4
29 #define CS_MAX_BUFFERS			(1 << CS_MAX_BUFFERS_SHIFT)
30 struct cs_buffer_config {
31 	__u32 rx_bufs;
32 	__u32 tx_bufs;
33 	__u32 buf_size;
34 	__u32 flags;
35 	__u32 reserved[4];
36 };
37 struct cs_timestamp {
38 	__u32 tv_sec;
39 	__u32 tv_nsec;
40 };
41 struct cs_mmap_config_block {
42 	__u32 reserved1;
43 	__u32 buf_size;
44 	__u32 rx_bufs;
45 	__u32 tx_bufs;
46 	__u32 reserved2;
47 
48 	__u32 rx_offsets[CS_MAX_BUFFERS];
49 	__u32 tx_offsets[CS_MAX_BUFFERS];
50 	__u32 rx_ptr;
51 	__u32 rx_ptr_boundary;
52 	__u32 reserved3[2];
53 
54 	struct cs_timestamp tstamp_rx_ctrl;
55 };
56 #define CS_IO_MAGIC		'C'
57 #define CS_IOW(num, dtype)	_IOW(CS_IO_MAGIC, num, dtype)
58 #define CS_IOR(num, dtype)	_IOR(CS_IO_MAGIC, num, dtype)
59 #define CS_IOWR(num, dtype)	_IOWR(CS_IO_MAGIC, num, dtype)
60 #define CS_IO(num)		_IO(CS_IO_MAGIC, num)
61 #define CS_GET_STATE		CS_IOR(21, unsigned int)
62 #define CS_SET_WAKELINE		CS_IOW(23, unsigned int)
63 #define CS_GET_IF_VERSION	CS_IOR(30, unsigned int)
64 #define CS_CONFIG_BUFS		CS_IOW(31, struct cs_buffer_config)
65 #endif
66