fa-bind-ioctl.h 1.84 KB
/*-----------------------------------------------------------------------------
  파 일 : 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