5 * TUX - Integrated Application Protocols Layer and Object Cache
7 * Copyright (C) 2000, 2001, Ingo Molnar <mingo@redhat.com>
9 * tux_u.h: HTTP module API - HTTP interface to user-space
13 * Different major versions are not compatible.
14 * Different minor versions are only downward compatible.
15 * Different patchlevel versions are downward and upward compatible.
17 #define TUX_MAJOR_VERSION 3
18 #define TUX_MINOR_VERSION 0
19 #define TUX_PATCHLEVEL_VERSION 0
21 #define __KERNEL_SYSCALLS__
23 typedef enum http_versions {
29 * Request methods known to HTTP:
31 typedef enum http_methods {
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,
69 TUX_RETURN_USERSPACE_REQUEST = 0,
71 TUX_RETURN_SIGNAL = 2,
72 TUX_CONTINUE_EVENTLOOP = 3,
75 #define MAX_URI_LEN 256
76 #define MAX_COOKIE_LEN 128
77 #define MAX_FIELD_LEN 64
80 typedef struct user_req_s {
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];
122 typedef enum ftp_commands {