/*----------------------------------------------------------------------------- 파 일 : fa-bind-ioctl.h 설 명 : 바이드 드라이버이다. 작 성 : 오재경 freefrug@falinux.com 날 짜 : 주 의 : -------------------------------------------------------------------------------*/ #ifndef _FA_BIND_IOCTL_H_ #define _FA_BIND_IOCTL_H_ #define FABIND_DEV_NAME "fa-bind" #define MAGIC_FA_BIND 'F' #define IOCTL_SET_BIND_INFO _IOW( MAGIC_FA_BIND, 50, ioctl_set_bind_info_t ) #define IOCTL_BIND_SEND _IOW( MAGIC_FA_BIND, 51, ioctl_bind_msg_t ) #define IOCTL_BIND_RECV _IOR( MAGIC_FA_BIND, 52, ioctl_bind_msg_t ) #define IOCTL_BIND_SEND_REQ _IOW( MAGIC_FA_BIND, 53, ioctl_bind_msg_t ) #define IOCTL_BIND_SEND_ACK _IOW( MAGIC_FA_BIND, 54, ioctl_bind_msg_t ) #define IOCTL_BIND_RECV_ACK _IOR( MAGIC_FA_BIND, 55, ioctl_bind_msg_t ) #define IOCTL_BIND_SEND_GROUP _IOW( MAGIC_FA_BIND, 56, ioctl_bind_msg_t ) typedef struct { int port; int group; int recv_queue_count; } ioctl_set_bind_info_t; typedef struct { // 변수 순서를 변경하지 말것 int port; // 상대편 주소 int group; // 상대편 그룹 int sr_type; // 전송 타입 int count; // 데이타 개수 unsigned char *buf; // 버퍼 } __attribute__((packed)) ioctl_bind_msg_t; #define SR_TYPE_NORMAL 0 // 일반적인 전송 #define SR_TYPE_EXPRESS 1 // 내 메세지중에서 먼저 #define SR_TYPE_EMERENCY 2 // 모든 메세지중 가장 먼저 #define SR_TYPE_REQ_ACK 0x10000000 // req_ack 메세지 형태 #define FABIND_BROADCAST_GROUP (0x7fff) #endif