This commit was manufactured by cvs2svn to create branch 'fedora'.
[linux-2.6.git] / include / net / tux_u.h
1 #ifndef _NET_TUX_U_H
2 #define _NET_TUX_U_H
3
4 /*
5  * TUX - Integrated Application Protocols Layer and Object Cache
6  *
7  * Copyright (C) 2000, 2001, Ingo Molnar <mingo@redhat.com>
8  *
9  * tux_u.h: HTTP module API - HTTP interface to user-space
10  */
11
12 /*
13  * Different major versions are not compatible.
14  * Different minor versions are only downward compatible.
15  * Different patchlevel versions are downward and upward compatible.
16  */
17 #define TUX_MAJOR_VERSION               3
18 #define TUX_MINOR_VERSION               0
19 #define TUX_PATCHLEVEL_VERSION          0
20
21 #define __KERNEL_SYSCALLS__
22
23 typedef enum http_versions {
24         HTTP_1_0,
25         HTTP_1_1
26 } http_version_t;
27
28 /*
29  * Request methods known to HTTP:
30  */
31 typedef enum http_methods {
32         METHOD_NONE,
33         METHOD_GET,
34         METHOD_HEAD,
35         METHOD_POST,
36         METHOD_PUT,
37         NR_METHODS
38 } http_method_t;
39
40 enum user_req {
41         TUX_ACTION_STARTUP = 1,
42         TUX_ACTION_SHUTDOWN = 2,
43         TUX_ACTION_STARTTHREAD = 3,
44         TUX_ACTION_STOPTHREAD = 4,
45         TUX_ACTION_EVENTLOOP = 5,
46         TUX_ACTION_GET_OBJECT = 6,
47         TUX_ACTION_SEND_OBJECT = 7,
48         TUX_ACTION_READ_OBJECT = 8,
49         TUX_ACTION_FINISH_REQ = 9,
50         TUX_ACTION_FINISH_CLOSE_REQ = 10,
51         TUX_ACTION_REGISTER_MODULE = 11,
52         TUX_ACTION_UNREGISTER_MODULE = 12,
53         TUX_ACTION_CURRENT_DATE = 13,
54         TUX_ACTION_REGISTER_MIMETYPE = 14,
55         TUX_ACTION_READ_HEADERS = 15,
56         TUX_ACTION_POSTPONE_REQ = 16,
57         TUX_ACTION_CONTINUE_REQ = 17,
58         TUX_ACTION_REDIRECT_REQ = 18,
59         TUX_ACTION_READ_POST_DATA = 19,
60         TUX_ACTION_SEND_BUFFER = 20,
61         TUX_ACTION_WATCH_PROXY_SOCKET = 21,
62         TUX_ACTION_WAIT_PROXY_SOCKET = 22,
63         TUX_ACTION_QUERY_VERSION = 23,
64         MAX_TUX_ACTION
65 };
66
67 enum tux_ret {
68         TUX_ERROR = -1,
69         TUX_RETURN_USERSPACE_REQUEST = 0,
70         TUX_RETURN_EXIT = 1,
71         TUX_RETURN_SIGNAL = 2,
72         TUX_CONTINUE_EVENTLOOP = 3,
73 };
74
75 #define MAX_URI_LEN 256
76 #define MAX_COOKIE_LEN 128
77 #define MAX_FIELD_LEN 64
78 #define DATE_LEN 30
79
80 typedef struct user_req_s {
81         u32 version_major;
82         u32 version_minor;
83         u32 version_patch;
84         u32 http_version;
85         u32 http_method;
86         u32 http_status;
87
88         u32 sock;
89         u32 event;
90         u32 error;
91         u32 thread_nr;
92         u32 bytes_sent;
93         u32 client_host;
94         u32 objectlen;
95         u32 module_index;
96         u32 keep_alive;
97         u32 cookies_len;
98
99         u64 id;
100         u64 priv;
101         u64 object_addr;
102
103         u8 query[MAX_URI_LEN];
104         u8 objectname[MAX_URI_LEN];
105         u8 cookies[MAX_COOKIE_LEN];
106         u8 content_type[MAX_FIELD_LEN];
107         u8 user_agent[MAX_FIELD_LEN];
108         u8 accept[MAX_FIELD_LEN];
109         u8 accept_charset[MAX_FIELD_LEN];
110         u8 accept_encoding[MAX_FIELD_LEN];
111         u8 accept_language[MAX_FIELD_LEN];
112         u8 cache_control[MAX_FIELD_LEN];
113         u8 if_modified_since[MAX_FIELD_LEN];
114         u8 negotiate[MAX_FIELD_LEN];
115         u8 pragma[MAX_FIELD_LEN];
116         u8 referer[MAX_FIELD_LEN];
117         u8 new_date[DATE_LEN];
118         u8 pad[2];
119
120 } user_req_t;
121
122 typedef enum ftp_commands {
123         FTP_COMM_NONE,
124         FTP_COMM_USER,
125         FTP_COMM_PASS,
126         FTP_COMM_ACCT,
127         FTP_COMM_CWD,
128         FTP_COMM_CDUP,
129         FTP_COMM_SMNT,
130         FTP_COMM_QUIT,
131         FTP_COMM_REIN,
132         FTP_COMM_PORT,
133         FTP_COMM_PASV,
134         FTP_COMM_TYPE,
135         FTP_COMM_STRU,
136         FTP_COMM_MODE,
137         FTP_COMM_RETR,
138         FTP_COMM_SIZE,
139         FTP_COMM_MDTM,
140         FTP_COMM_STOR,
141         FTP_COMM_STOU,
142         FTP_COMM_APPE,
143         FTP_COMM_ALLO,
144         FTP_COMM_REST,
145         FTP_COMM_RNFR,
146         FTP_COMM_RNTO,
147         FTP_COMM_ABOR,
148         FTP_COMM_DELE,
149         FTP_COMM_RMD,
150         FTP_COMM_MKD,
151         FTP_COMM_PWD,
152         FTP_COMM_LIST,
153         FTP_COMM_NLST,
154         FTP_COMM_SITE,
155         FTP_COMM_SYST,
156         FTP_COMM_STAT,
157         FTP_COMM_HELP,
158         FTP_COMM_NOOP,
159         FTP_COMM_FEAT,
160         FTP_COMM_CLNT,
161 } ftp_command_t;
162
163 #endif