
#define	MACRO_QSONUMBER		'#'
#define MACRO_CALL		'@'
#define	MACRO_RST		'~'
#define MACRO_SPEED_UP		'+'
#define MACRO_SPEED_DOWN	'-'

#define CWKEYER_IOC_MAGIC  'k'
#define CWKEYER_IOCRESET    _IO(CWKEYER_IOC_MAGIC, 0)


/*
 * S means "Set" through a ptr,
 * T means "Tell" directly with the argument value
 * G means "Get": reply by setting through a pointer
 * Q means "Query": response is on the return value
 * X means "eXchange": G and S atomically
 * H means "sHift": T and Q atomically
 */

#define CWKEYER_IOCSSPEED   	_IOW(CWKEYER_IOC_MAGIC,  1, int)
#define CWKEYER_IOCSFREQ    	_IOW(CWKEYER_IOC_MAGIC,  2, int)
#define CWKEYER_IOCSMONI	_IOW(CWKEYER_IOC_MAGIC,  3, int)
#define CWKEYER_IOCSWEIGTH	_IOW(CWKEYER_IOC_MAGIC,  4, int)
#define CWKEYER_IOCSTXDELAY	_IOW(CWKEYER_IOC_MAGIC,  5, int)
#define CWKEYER_IOCSFLUSH	_IOW(CWKEYER_IOC_MAGIC,  6, void)
#define CWKEYER_IOCSCALL	_IOW(CWKEYER_IOC_MAGIC,  7, char[16])
#define CWKEYER_IOCSQSONUMBER	_IOW(CWKEYER_IOC_MAGIC,  8, char[16])
#define CWKEYER_IOCSRST		_IOW(CWKEYER_IOC_MAGIC,  9, char[16])
#define CWKEYER_IOCSPOSNEGKEY	_IOW(CWKEYER_IOC_MAGIC, 10, int)
#define CWKEYER_IOC_MAXNR 9
