fa-bind-ioctl.h
1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*-----------------------------------------------------------------------------
파 일 : 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