diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/byteorder/generic.h | 4 | ||||
-rw-r--r-- | include/linux/device.h | 5 | ||||
-rw-r--r-- | include/linux/if_vlan.h | 8 | ||||
-rw-r--r-- | include/linux/libata.h | 1 | ||||
-rw-r--r-- | include/linux/mm.h | 10 | ||||
-rw-r--r-- | include/linux/netfilter_ipv4/ip_conntrack.h | 39 | ||||
-rw-r--r-- | include/linux/netfilter_ipv4/ip_conntrack_pptp.h | 325 | ||||
-rw-r--r-- | include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h | 114 | ||||
-rw-r--r-- | include/linux/netfilter_ipv4/ip_conntrack_tuple.h | 9 | ||||
-rw-r--r-- | include/linux/netfilter_ipv4/ip_nat_pptp.h | 11 | ||||
-rw-r--r-- | include/linux/netfilter_ipv6/ip6_tables.h | 3 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 3 | ||||
-rw-r--r-- | include/linux/reboot.h | 4 | ||||
-rw-r--r-- | include/linux/syscalls.h | 2 |
14 files changed, 522 insertions, 16 deletions
diff --git a/include/linux/byteorder/generic.h b/include/linux/byteorder/generic.h index 5fde6f4d6c1e..04bd756efc67 100644 --- a/include/linux/byteorder/generic.h +++ b/include/linux/byteorder/generic.h | |||
@@ -5,6 +5,10 @@ | |||
5 | * linux/byteorder_generic.h | 5 | * linux/byteorder_generic.h |
6 | * Generic Byte-reordering support | 6 | * Generic Byte-reordering support |
7 | * | 7 | * |
8 | * The "... p" macros, like le64_to_cpup, can be used with pointers | ||
9 | * to unaligned data, but there will be a performance penalty on | ||
10 | * some architectures. Use get_unaligned for unaligned data. | ||
11 | * | ||
8 | * Francois-Rene Rideau <fare@tunes.org> 19970707 | 12 | * Francois-Rene Rideau <fare@tunes.org> 19970707 |
9 | * gathered all the good ideas from all asm-foo/byteorder.h into one file, | 13 | * gathered all the good ideas from all asm-foo/byteorder.h into one file, |
10 | * cleaned them up. | 14 | * cleaned them up. |
diff --git a/include/linux/device.h b/include/linux/device.h index 06e5d42f2c7b..95d607a48f06 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -317,6 +317,11 @@ dev_set_drvdata (struct device *dev, void *data) | |||
317 | dev->driver_data = data; | 317 | dev->driver_data = data; |
318 | } | 318 | } |
319 | 319 | ||
320 | static inline int device_is_registered(struct device *dev) | ||
321 | { | ||
322 | return klist_node_attached(&dev->knode_bus); | ||
323 | } | ||
324 | |||
320 | /* | 325 | /* |
321 | * High level routines for use by the bus drivers | 326 | * High level routines for use by the bus drivers |
322 | */ | 327 | */ |
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 17d0c0d40b0e..eef0876d8307 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
@@ -42,8 +42,8 @@ struct hlist_node; | |||
42 | struct vlan_ethhdr { | 42 | struct vlan_ethhdr { |
43 | unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ | 43 | unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ |
44 | unsigned char h_source[ETH_ALEN]; /* source ether addr */ | 44 | unsigned char h_source[ETH_ALEN]; /* source ether addr */ |
45 | unsigned short h_vlan_proto; /* Should always be 0x8100 */ | 45 | __be16 h_vlan_proto; /* Should always be 0x8100 */ |
46 | unsigned short h_vlan_TCI; /* Encapsulates priority and VLAN ID */ | 46 | __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */ |
47 | unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ | 47 | unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ |
48 | }; | 48 | }; |
49 | 49 | ||
@@ -55,8 +55,8 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) | |||
55 | } | 55 | } |
56 | 56 | ||
57 | struct vlan_hdr { | 57 | struct vlan_hdr { |
58 | unsigned short h_vlan_TCI; /* Encapsulates priority and VLAN ID */ | 58 | __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */ |
59 | unsigned short h_vlan_encapsulated_proto; /* packet type ID field (or len) */ | 59 | __be16 h_vlan_encapsulated_proto; /* packet type ID field (or len) */ |
60 | }; | 60 | }; |
61 | 61 | ||
62 | #define VLAN_VID_MASK 0xfff | 62 | #define VLAN_VID_MASK 0xfff |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 022105c745fc..ceee1fc42c60 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -393,6 +393,7 @@ extern int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_i | |||
393 | extern void ata_pci_remove_one (struct pci_dev *pdev); | 393 | extern void ata_pci_remove_one (struct pci_dev *pdev); |
394 | #endif /* CONFIG_PCI */ | 394 | #endif /* CONFIG_PCI */ |
395 | extern int ata_device_add(struct ata_probe_ent *ent); | 395 | extern int ata_device_add(struct ata_probe_ent *ent); |
396 | extern void ata_host_set_remove(struct ata_host_set *host_set); | ||
396 | extern int ata_scsi_detect(Scsi_Host_Template *sht); | 397 | extern int ata_scsi_detect(Scsi_Host_Template *sht); |
397 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 398 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
398 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); | 399 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 82d7024f0765..097b3a3c693d 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -136,6 +136,7 @@ extern unsigned int kobjsize(const void *objp); | |||
136 | #define VM_EXEC 0x00000004 | 136 | #define VM_EXEC 0x00000004 |
137 | #define VM_SHARED 0x00000008 | 137 | #define VM_SHARED 0x00000008 |
138 | 138 | ||
139 | /* mprotect() hardcodes VM_MAYREAD >> 4 == VM_READ, and so for r/w/x bits. */ | ||
139 | #define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */ | 140 | #define VM_MAYREAD 0x00000010 /* limits for mprotect() etc */ |
140 | #define VM_MAYWRITE 0x00000020 | 141 | #define VM_MAYWRITE 0x00000020 |
141 | #define VM_MAYEXEC 0x00000040 | 142 | #define VM_MAYEXEC 0x00000040 |
@@ -350,7 +351,8 @@ static inline void put_page(struct page *page) | |||
350 | * only one copy in memory, at most, normally. | 351 | * only one copy in memory, at most, normally. |
351 | * | 352 | * |
352 | * For the non-reserved pages, page_count(page) denotes a reference count. | 353 | * For the non-reserved pages, page_count(page) denotes a reference count. |
353 | * page_count() == 0 means the page is free. | 354 | * page_count() == 0 means the page is free. page->lru is then used for |
355 | * freelist management in the buddy allocator. | ||
354 | * page_count() == 1 means the page is used for exactly one purpose | 356 | * page_count() == 1 means the page is used for exactly one purpose |
355 | * (e.g. a private data page of one process). | 357 | * (e.g. a private data page of one process). |
356 | * | 358 | * |
@@ -376,10 +378,8 @@ static inline void put_page(struct page *page) | |||
376 | * attaches, plus 1 if `private' contains something, plus one for | 378 | * attaches, plus 1 if `private' contains something, plus one for |
377 | * the page cache itself. | 379 | * the page cache itself. |
378 | * | 380 | * |
379 | * All pages belonging to an inode are in these doubly linked lists: | 381 | * Instead of keeping dirty/clean pages in per address-space lists, we instead |
380 | * mapping->clean_pages, mapping->dirty_pages and mapping->locked_pages; | 382 | * now tag pages as dirty/under writeback in the radix tree. |
381 | * using the page->list list_head. These fields are also used for | ||
382 | * freelist managemet (when page_count()==0). | ||
383 | * | 383 | * |
384 | * There is also a per-mapping radix tree mapping index to the page | 384 | * There is also a per-mapping radix tree mapping index to the page |
385 | * in memory if present. The tree is rooted at mapping->root. | 385 | * in memory if present. The tree is rooted at mapping->root. |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack.h b/include/linux/netfilter_ipv4/ip_conntrack.h index 7e033e9271a8..4ced38736813 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack.h +++ b/include/linux/netfilter_ipv4/ip_conntrack.h | |||
@@ -133,11 +133,13 @@ enum ip_conntrack_expect_events { | |||
133 | 133 | ||
134 | #include <linux/netfilter_ipv4/ip_conntrack_tcp.h> | 134 | #include <linux/netfilter_ipv4/ip_conntrack_tcp.h> |
135 | #include <linux/netfilter_ipv4/ip_conntrack_icmp.h> | 135 | #include <linux/netfilter_ipv4/ip_conntrack_icmp.h> |
136 | #include <linux/netfilter_ipv4/ip_conntrack_proto_gre.h> | ||
136 | #include <linux/netfilter_ipv4/ip_conntrack_sctp.h> | 137 | #include <linux/netfilter_ipv4/ip_conntrack_sctp.h> |
137 | 138 | ||
138 | /* per conntrack: protocol private data */ | 139 | /* per conntrack: protocol private data */ |
139 | union ip_conntrack_proto { | 140 | union ip_conntrack_proto { |
140 | /* insert conntrack proto private data here */ | 141 | /* insert conntrack proto private data here */ |
142 | struct ip_ct_gre gre; | ||
141 | struct ip_ct_sctp sctp; | 143 | struct ip_ct_sctp sctp; |
142 | struct ip_ct_tcp tcp; | 144 | struct ip_ct_tcp tcp; |
143 | struct ip_ct_icmp icmp; | 145 | struct ip_ct_icmp icmp; |
@@ -148,6 +150,7 @@ union ip_conntrack_expect_proto { | |||
148 | }; | 150 | }; |
149 | 151 | ||
150 | /* Add protocol helper include file here */ | 152 | /* Add protocol helper include file here */ |
153 | #include <linux/netfilter_ipv4/ip_conntrack_pptp.h> | ||
151 | #include <linux/netfilter_ipv4/ip_conntrack_amanda.h> | 154 | #include <linux/netfilter_ipv4/ip_conntrack_amanda.h> |
152 | #include <linux/netfilter_ipv4/ip_conntrack_ftp.h> | 155 | #include <linux/netfilter_ipv4/ip_conntrack_ftp.h> |
153 | #include <linux/netfilter_ipv4/ip_conntrack_irc.h> | 156 | #include <linux/netfilter_ipv4/ip_conntrack_irc.h> |
@@ -155,12 +158,20 @@ union ip_conntrack_expect_proto { | |||
155 | /* per conntrack: application helper private data */ | 158 | /* per conntrack: application helper private data */ |
156 | union ip_conntrack_help { | 159 | union ip_conntrack_help { |
157 | /* insert conntrack helper private data (master) here */ | 160 | /* insert conntrack helper private data (master) here */ |
161 | struct ip_ct_pptp_master ct_pptp_info; | ||
158 | struct ip_ct_ftp_master ct_ftp_info; | 162 | struct ip_ct_ftp_master ct_ftp_info; |
159 | struct ip_ct_irc_master ct_irc_info; | 163 | struct ip_ct_irc_master ct_irc_info; |
160 | }; | 164 | }; |
161 | 165 | ||
162 | #ifdef CONFIG_IP_NF_NAT_NEEDED | 166 | #ifdef CONFIG_IP_NF_NAT_NEEDED |
163 | #include <linux/netfilter_ipv4/ip_nat.h> | 167 | #include <linux/netfilter_ipv4/ip_nat.h> |
168 | #include <linux/netfilter_ipv4/ip_nat_pptp.h> | ||
169 | |||
170 | /* per conntrack: nat application helper private data */ | ||
171 | union ip_conntrack_nat_help { | ||
172 | /* insert nat helper private data here */ | ||
173 | struct ip_nat_pptp nat_pptp_info; | ||
174 | }; | ||
164 | #endif | 175 | #endif |
165 | 176 | ||
166 | #include <linux/types.h> | 177 | #include <linux/types.h> |
@@ -223,6 +234,7 @@ struct ip_conntrack | |||
223 | #ifdef CONFIG_IP_NF_NAT_NEEDED | 234 | #ifdef CONFIG_IP_NF_NAT_NEEDED |
224 | struct { | 235 | struct { |
225 | struct ip_nat_info info; | 236 | struct ip_nat_info info; |
237 | union ip_conntrack_nat_help help; | ||
226 | #if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ | 238 | #if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ |
227 | defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) | 239 | defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) |
228 | int masq_index; | 240 | int masq_index; |
@@ -320,11 +332,28 @@ extern void need_ip_conntrack(void); | |||
320 | extern int invert_tuplepr(struct ip_conntrack_tuple *inverse, | 332 | extern int invert_tuplepr(struct ip_conntrack_tuple *inverse, |
321 | const struct ip_conntrack_tuple *orig); | 333 | const struct ip_conntrack_tuple *orig); |
322 | 334 | ||
335 | extern void __ip_ct_refresh_acct(struct ip_conntrack *ct, | ||
336 | enum ip_conntrack_info ctinfo, | ||
337 | const struct sk_buff *skb, | ||
338 | unsigned long extra_jiffies, | ||
339 | int do_acct); | ||
340 | |||
341 | /* Refresh conntrack for this many jiffies and do accounting */ | ||
342 | static inline void ip_ct_refresh_acct(struct ip_conntrack *ct, | ||
343 | enum ip_conntrack_info ctinfo, | ||
344 | const struct sk_buff *skb, | ||
345 | unsigned long extra_jiffies) | ||
346 | { | ||
347 | __ip_ct_refresh_acct(ct, ctinfo, skb, extra_jiffies, 1); | ||
348 | } | ||
349 | |||
323 | /* Refresh conntrack for this many jiffies */ | 350 | /* Refresh conntrack for this many jiffies */ |
324 | extern void ip_ct_refresh_acct(struct ip_conntrack *ct, | 351 | static inline void ip_ct_refresh(struct ip_conntrack *ct, |
325 | enum ip_conntrack_info ctinfo, | 352 | const struct sk_buff *skb, |
326 | const struct sk_buff *skb, | 353 | unsigned long extra_jiffies) |
327 | unsigned long extra_jiffies); | 354 | { |
355 | __ip_ct_refresh_acct(ct, 0, skb, extra_jiffies, 0); | ||
356 | } | ||
328 | 357 | ||
329 | /* These are for NAT. Icky. */ | 358 | /* These are for NAT. Icky. */ |
330 | /* Update TCP window tracking data when NAT mangles the packet */ | 359 | /* Update TCP window tracking data when NAT mangles the packet */ |
@@ -372,7 +401,7 @@ extern struct ip_conntrack_expect * | |||
372 | __ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple); | 401 | __ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple); |
373 | 402 | ||
374 | extern struct ip_conntrack_expect * | 403 | extern struct ip_conntrack_expect * |
375 | ip_conntrack_expect_find_get(const struct ip_conntrack_tuple *tuple); | 404 | ip_conntrack_expect_find(const struct ip_conntrack_tuple *tuple); |
376 | 405 | ||
377 | extern struct ip_conntrack_tuple_hash * | 406 | extern struct ip_conntrack_tuple_hash * |
378 | __ip_conntrack_find(const struct ip_conntrack_tuple *tuple, | 407 | __ip_conntrack_find(const struct ip_conntrack_tuple *tuple, |
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_pptp.h b/include/linux/netfilter_ipv4/ip_conntrack_pptp.h new file mode 100644 index 000000000000..816144c75de0 --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_conntrack_pptp.h | |||
@@ -0,0 +1,325 @@ | |||
1 | /* PPTP constants and structs */ | ||
2 | #ifndef _CONNTRACK_PPTP_H | ||
3 | #define _CONNTRACK_PPTP_H | ||
4 | |||
5 | /* state of the control session */ | ||
6 | enum pptp_ctrlsess_state { | ||
7 | PPTP_SESSION_NONE, /* no session present */ | ||
8 | PPTP_SESSION_ERROR, /* some session error */ | ||
9 | PPTP_SESSION_STOPREQ, /* stop_sess request seen */ | ||
10 | PPTP_SESSION_REQUESTED, /* start_sess request seen */ | ||
11 | PPTP_SESSION_CONFIRMED, /* session established */ | ||
12 | }; | ||
13 | |||
14 | /* state of the call inside the control session */ | ||
15 | enum pptp_ctrlcall_state { | ||
16 | PPTP_CALL_NONE, | ||
17 | PPTP_CALL_ERROR, | ||
18 | PPTP_CALL_OUT_REQ, | ||
19 | PPTP_CALL_OUT_CONF, | ||
20 | PPTP_CALL_IN_REQ, | ||
21 | PPTP_CALL_IN_REP, | ||
22 | PPTP_CALL_IN_CONF, | ||
23 | PPTP_CALL_CLEAR_REQ, | ||
24 | }; | ||
25 | |||
26 | |||
27 | /* conntrack private data */ | ||
28 | struct ip_ct_pptp_master { | ||
29 | enum pptp_ctrlsess_state sstate; /* session state */ | ||
30 | |||
31 | /* everything below is going to be per-expectation in newnat, | ||
32 | * since there could be more than one call within one session */ | ||
33 | enum pptp_ctrlcall_state cstate; /* call state */ | ||
34 | u_int16_t pac_call_id; /* call id of PAC, host byte order */ | ||
35 | u_int16_t pns_call_id; /* call id of PNS, host byte order */ | ||
36 | |||
37 | /* in pre-2.6.11 this used to be per-expect. Now it is per-conntrack | ||
38 | * and therefore imposes a fixed limit on the number of maps */ | ||
39 | struct ip_ct_gre_keymap *keymap_orig, *keymap_reply; | ||
40 | }; | ||
41 | |||
42 | /* conntrack_expect private member */ | ||
43 | struct ip_ct_pptp_expect { | ||
44 | enum pptp_ctrlcall_state cstate; /* call state */ | ||
45 | u_int16_t pac_call_id; /* call id of PAC */ | ||
46 | u_int16_t pns_call_id; /* call id of PNS */ | ||
47 | }; | ||
48 | |||
49 | |||
50 | #ifdef __KERNEL__ | ||
51 | |||
52 | #define IP_CONNTR_PPTP PPTP_CONTROL_PORT | ||
53 | |||
54 | #define PPTP_CONTROL_PORT 1723 | ||
55 | |||
56 | #define PPTP_PACKET_CONTROL 1 | ||
57 | #define PPTP_PACKET_MGMT 2 | ||
58 | |||
59 | #define PPTP_MAGIC_COOKIE 0x1a2b3c4d | ||
60 | |||
61 | struct pptp_pkt_hdr { | ||
62 | __u16 packetLength; | ||
63 | __be16 packetType; | ||
64 | __be32 magicCookie; | ||
65 | }; | ||
66 | |||
67 | /* PptpControlMessageType values */ | ||
68 | #define PPTP_START_SESSION_REQUEST 1 | ||
69 | #define PPTP_START_SESSION_REPLY 2 | ||
70 | #define PPTP_STOP_SESSION_REQUEST 3 | ||
71 | #define PPTP_STOP_SESSION_REPLY 4 | ||
72 | #define PPTP_ECHO_REQUEST 5 | ||
73 | #define PPTP_ECHO_REPLY 6 | ||
74 | #define PPTP_OUT_CALL_REQUEST 7 | ||
75 | #define PPTP_OUT_CALL_REPLY 8 | ||
76 | #define PPTP_IN_CALL_REQUEST 9 | ||
77 | #define PPTP_IN_CALL_REPLY 10 | ||
78 | #define PPTP_IN_CALL_CONNECT 11 | ||
79 | #define PPTP_CALL_CLEAR_REQUEST 12 | ||
80 | #define PPTP_CALL_DISCONNECT_NOTIFY 13 | ||
81 | #define PPTP_WAN_ERROR_NOTIFY 14 | ||
82 | #define PPTP_SET_LINK_INFO 15 | ||
83 | |||
84 | #define PPTP_MSG_MAX 15 | ||
85 | |||
86 | /* PptpGeneralError values */ | ||
87 | #define PPTP_ERROR_CODE_NONE 0 | ||
88 | #define PPTP_NOT_CONNECTED 1 | ||
89 | #define PPTP_BAD_FORMAT 2 | ||
90 | #define PPTP_BAD_VALUE 3 | ||
91 | #define PPTP_NO_RESOURCE 4 | ||
92 | #define PPTP_BAD_CALLID 5 | ||
93 | #define PPTP_REMOVE_DEVICE_ERROR 6 | ||
94 | |||
95 | struct PptpControlHeader { | ||
96 | __be16 messageType; | ||
97 | __u16 reserved; | ||
98 | }; | ||
99 | |||
100 | /* FramingCapability Bitmap Values */ | ||
101 | #define PPTP_FRAME_CAP_ASYNC 0x1 | ||
102 | #define PPTP_FRAME_CAP_SYNC 0x2 | ||
103 | |||
104 | /* BearerCapability Bitmap Values */ | ||
105 | #define PPTP_BEARER_CAP_ANALOG 0x1 | ||
106 | #define PPTP_BEARER_CAP_DIGITAL 0x2 | ||
107 | |||
108 | struct PptpStartSessionRequest { | ||
109 | __be16 protocolVersion; | ||
110 | __u8 reserved1; | ||
111 | __u8 reserved2; | ||
112 | __be32 framingCapability; | ||
113 | __be32 bearerCapability; | ||
114 | __be16 maxChannels; | ||
115 | __be16 firmwareRevision; | ||
116 | __u8 hostName[64]; | ||
117 | __u8 vendorString[64]; | ||
118 | }; | ||
119 | |||
120 | /* PptpStartSessionResultCode Values */ | ||
121 | #define PPTP_START_OK 1 | ||
122 | #define PPTP_START_GENERAL_ERROR 2 | ||
123 | #define PPTP_START_ALREADY_CONNECTED 3 | ||
124 | #define PPTP_START_NOT_AUTHORIZED 4 | ||
125 | #define PPTP_START_UNKNOWN_PROTOCOL 5 | ||
126 | |||
127 | struct PptpStartSessionReply { | ||
128 | __be16 protocolVersion; | ||
129 | __u8 resultCode; | ||
130 | __u8 generalErrorCode; | ||
131 | __be32 framingCapability; | ||
132 | __be32 bearerCapability; | ||
133 | __be16 maxChannels; | ||
134 | __be16 firmwareRevision; | ||
135 | __u8 hostName[64]; | ||
136 | __u8 vendorString[64]; | ||
137 | }; | ||
138 | |||
139 | /* PptpStopReasons */ | ||
140 | #define PPTP_STOP_NONE 1 | ||
141 | #define PPTP_STOP_PROTOCOL 2 | ||
142 | #define PPTP_STOP_LOCAL_SHUTDOWN 3 | ||
143 | |||
144 | struct PptpStopSessionRequest { | ||
145 | __u8 reason; | ||
146 | }; | ||
147 | |||
148 | /* PptpStopSessionResultCode */ | ||
149 | #define PPTP_STOP_OK 1 | ||
150 | #define PPTP_STOP_GENERAL_ERROR 2 | ||
151 | |||
152 | struct PptpStopSessionReply { | ||
153 | __u8 resultCode; | ||
154 | __u8 generalErrorCode; | ||
155 | }; | ||
156 | |||
157 | struct PptpEchoRequest { | ||
158 | __be32 identNumber; | ||
159 | }; | ||
160 | |||
161 | /* PptpEchoReplyResultCode */ | ||
162 | #define PPTP_ECHO_OK 1 | ||
163 | #define PPTP_ECHO_GENERAL_ERROR 2 | ||
164 | |||
165 | struct PptpEchoReply { | ||
166 | __be32 identNumber; | ||
167 | __u8 resultCode; | ||
168 | __u8 generalErrorCode; | ||
169 | __u16 reserved; | ||
170 | }; | ||
171 | |||
172 | /* PptpFramingType */ | ||
173 | #define PPTP_ASYNC_FRAMING 1 | ||
174 | #define PPTP_SYNC_FRAMING 2 | ||
175 | #define PPTP_DONT_CARE_FRAMING 3 | ||
176 | |||
177 | /* PptpCallBearerType */ | ||
178 | #define PPTP_ANALOG_TYPE 1 | ||
179 | #define PPTP_DIGITAL_TYPE 2 | ||
180 | #define PPTP_DONT_CARE_BEARER_TYPE 3 | ||
181 | |||
182 | struct PptpOutCallRequest { | ||
183 | __be16 callID; | ||
184 | __be16 callSerialNumber; | ||
185 | __be32 minBPS; | ||
186 | __be32 maxBPS; | ||
187 | __be32 bearerType; | ||
188 | __be32 framingType; | ||
189 | __be16 packetWindow; | ||
190 | __be16 packetProcDelay; | ||
191 | __u16 reserved1; | ||
192 | __be16 phoneNumberLength; | ||
193 | __u16 reserved2; | ||
194 | __u8 phoneNumber[64]; | ||
195 | __u8 subAddress[64]; | ||
196 | }; | ||
197 | |||
198 | /* PptpCallResultCode */ | ||
199 | #define PPTP_OUTCALL_CONNECT 1 | ||
200 | #define PPTP_OUTCALL_GENERAL_ERROR 2 | ||
201 | #define PPTP_OUTCALL_NO_CARRIER 3 | ||
202 | #define PPTP_OUTCALL_BUSY 4 | ||
203 | #define PPTP_OUTCALL_NO_DIAL_TONE 5 | ||
204 | #define PPTP_OUTCALL_TIMEOUT 6 | ||
205 | #define PPTP_OUTCALL_DONT_ACCEPT 7 | ||
206 | |||
207 | struct PptpOutCallReply { | ||
208 | __be16 callID; | ||
209 | __be16 peersCallID; | ||
210 | __u8 resultCode; | ||
211 | __u8 generalErrorCode; | ||
212 | __be16 causeCode; | ||
213 | __be32 connectSpeed; | ||
214 | __be16 packetWindow; | ||
215 | __be16 packetProcDelay; | ||
216 | __be32 physChannelID; | ||
217 | }; | ||
218 | |||
219 | struct PptpInCallRequest { | ||
220 | __be16 callID; | ||
221 | __be16 callSerialNumber; | ||
222 | __be32 callBearerType; | ||
223 | __be32 physChannelID; | ||
224 | __be16 dialedNumberLength; | ||
225 | __be16 dialingNumberLength; | ||
226 | __u8 dialedNumber[64]; | ||
227 | __u8 dialingNumber[64]; | ||
228 | __u8 subAddress[64]; | ||
229 | }; | ||
230 | |||
231 | /* PptpInCallResultCode */ | ||
232 | #define PPTP_INCALL_ACCEPT 1 | ||
233 | #define PPTP_INCALL_GENERAL_ERROR 2 | ||
234 | #define PPTP_INCALL_DONT_ACCEPT 3 | ||
235 | |||
236 | struct PptpInCallReply { | ||
237 | __be16 callID; | ||
238 | __be16 peersCallID; | ||
239 | __u8 resultCode; | ||
240 | __u8 generalErrorCode; | ||
241 | __be16 packetWindow; | ||
242 | __be16 packetProcDelay; | ||
243 | __u16 reserved; | ||
244 | }; | ||
245 | |||
246 | struct PptpInCallConnected { | ||
247 | __be16 peersCallID; | ||
248 | __u16 reserved; | ||
249 | __be32 connectSpeed; | ||
250 | __be16 packetWindow; | ||
251 | __be16 packetProcDelay; | ||
252 | __be32 callFramingType; | ||
253 | }; | ||
254 | |||
255 | struct PptpClearCallRequest { | ||
256 | __be16 callID; | ||
257 | __u16 reserved; | ||
258 | }; | ||
259 | |||
260 | struct PptpCallDisconnectNotify { | ||
261 | __be16 callID; | ||
262 | __u8 resultCode; | ||
263 | __u8 generalErrorCode; | ||
264 | __be16 causeCode; | ||
265 | __u16 reserved; | ||
266 | __u8 callStatistics[128]; | ||
267 | }; | ||
268 | |||
269 | struct PptpWanErrorNotify { | ||
270 | __be16 peersCallID; | ||
271 | __u16 reserved; | ||
272 | __be32 crcErrors; | ||
273 | __be32 framingErrors; | ||
274 | __be32 hardwareOverRuns; | ||
275 | __be32 bufferOverRuns; | ||
276 | __be32 timeoutErrors; | ||
277 | __be32 alignmentErrors; | ||
278 | }; | ||
279 | |||
280 | struct PptpSetLinkInfo { | ||
281 | __be16 peersCallID; | ||
282 | __u16 reserved; | ||
283 | __be32 sendAccm; | ||
284 | __be32 recvAccm; | ||
285 | }; | ||
286 | |||
287 | union pptp_ctrl_union { | ||
288 | struct PptpStartSessionRequest sreq; | ||
289 | struct PptpStartSessionReply srep; | ||
290 | struct PptpStopSessionRequest streq; | ||
291 | struct PptpStopSessionReply strep; | ||
292 | struct PptpOutCallRequest ocreq; | ||
293 | struct PptpOutCallReply ocack; | ||
294 | struct PptpInCallRequest icreq; | ||
295 | struct PptpInCallReply icack; | ||
296 | struct PptpInCallConnected iccon; | ||
297 | struct PptpClearCallRequest clrreq; | ||
298 | struct PptpCallDisconnectNotify disc; | ||
299 | struct PptpWanErrorNotify wanerr; | ||
300 | struct PptpSetLinkInfo setlink; | ||
301 | }; | ||
302 | |||
303 | extern int | ||
304 | (*ip_nat_pptp_hook_outbound)(struct sk_buff **pskb, | ||
305 | struct ip_conntrack *ct, | ||
306 | enum ip_conntrack_info ctinfo, | ||
307 | struct PptpControlHeader *ctlh, | ||
308 | union pptp_ctrl_union *pptpReq); | ||
309 | |||
310 | extern int | ||
311 | (*ip_nat_pptp_hook_inbound)(struct sk_buff **pskb, | ||
312 | struct ip_conntrack *ct, | ||
313 | enum ip_conntrack_info ctinfo, | ||
314 | struct PptpControlHeader *ctlh, | ||
315 | union pptp_ctrl_union *pptpReq); | ||
316 | |||
317 | extern int | ||
318 | (*ip_nat_pptp_hook_exp_gre)(struct ip_conntrack_expect *exp_orig, | ||
319 | struct ip_conntrack_expect *exp_reply); | ||
320 | |||
321 | extern void | ||
322 | (*ip_nat_pptp_hook_expectfn)(struct ip_conntrack *ct, | ||
323 | struct ip_conntrack_expect *exp); | ||
324 | #endif /* __KERNEL__ */ | ||
325 | #endif /* _CONNTRACK_PPTP_H */ | ||
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h b/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h new file mode 100644 index 000000000000..8d090ef82f5f --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h | |||
@@ -0,0 +1,114 @@ | |||
1 | #ifndef _CONNTRACK_PROTO_GRE_H | ||
2 | #define _CONNTRACK_PROTO_GRE_H | ||
3 | #include <asm/byteorder.h> | ||
4 | |||
5 | /* GRE PROTOCOL HEADER */ | ||
6 | |||
7 | /* GRE Version field */ | ||
8 | #define GRE_VERSION_1701 0x0 | ||
9 | #define GRE_VERSION_PPTP 0x1 | ||
10 | |||
11 | /* GRE Protocol field */ | ||
12 | #define GRE_PROTOCOL_PPTP 0x880B | ||
13 | |||
14 | /* GRE Flags */ | ||
15 | #define GRE_FLAG_C 0x80 | ||
16 | #define GRE_FLAG_R 0x40 | ||
17 | #define GRE_FLAG_K 0x20 | ||
18 | #define GRE_FLAG_S 0x10 | ||
19 | #define GRE_FLAG_A 0x80 | ||
20 | |||
21 | #define GRE_IS_C(f) ((f)&GRE_FLAG_C) | ||
22 | #define GRE_IS_R(f) ((f)&GRE_FLAG_R) | ||
23 | #define GRE_IS_K(f) ((f)&GRE_FLAG_K) | ||
24 | #define GRE_IS_S(f) ((f)&GRE_FLAG_S) | ||
25 | #define GRE_IS_A(f) ((f)&GRE_FLAG_A) | ||
26 | |||
27 | /* GRE is a mess: Four different standards */ | ||
28 | struct gre_hdr { | ||
29 | #if defined(__LITTLE_ENDIAN_BITFIELD) | ||
30 | __u16 rec:3, | ||
31 | srr:1, | ||
32 | seq:1, | ||
33 | key:1, | ||
34 | routing:1, | ||
35 | csum:1, | ||
36 | version:3, | ||
37 | reserved:4, | ||
38 | ack:1; | ||
39 | #elif defined(__BIG_ENDIAN_BITFIELD) | ||
40 | __u16 csum:1, | ||
41 | routing:1, | ||
42 | key:1, | ||
43 | seq:1, | ||
44 | srr:1, | ||
45 | rec:3, | ||
46 | ack:1, | ||
47 | reserved:4, | ||
48 | version:3; | ||
49 | #else | ||
50 | #error "Adjust your <asm/byteorder.h> defines" | ||
51 | #endif | ||
52 | __u16 protocol; | ||
53 | }; | ||
54 | |||
55 | /* modified GRE header for PPTP */ | ||
56 | struct gre_hdr_pptp { | ||
57 | __u8 flags; /* bitfield */ | ||
58 | __u8 version; /* should be GRE_VERSION_PPTP */ | ||
59 | __u16 protocol; /* should be GRE_PROTOCOL_PPTP */ | ||
60 | __u16 payload_len; /* size of ppp payload, not inc. gre header */ | ||
61 | __u16 call_id; /* peer's call_id for this session */ | ||
62 | __u32 seq; /* sequence number. Present if S==1 */ | ||
63 | __u32 ack; /* seq number of highest packet recieved by */ | ||
64 | /* sender in this session */ | ||
65 | }; | ||
66 | |||
67 | |||
68 | /* this is part of ip_conntrack */ | ||
69 | struct ip_ct_gre { | ||
70 | unsigned int stream_timeout; | ||
71 | unsigned int timeout; | ||
72 | }; | ||
73 | |||
74 | #ifdef __KERNEL__ | ||
75 | struct ip_conntrack_expect; | ||
76 | struct ip_conntrack; | ||
77 | |||
78 | /* structure for original <-> reply keymap */ | ||
79 | struct ip_ct_gre_keymap { | ||
80 | struct list_head list; | ||
81 | |||
82 | struct ip_conntrack_tuple tuple; | ||
83 | }; | ||
84 | |||
85 | /* add new tuple->key_reply pair to keymap */ | ||
86 | int ip_ct_gre_keymap_add(struct ip_conntrack *ct, | ||
87 | struct ip_conntrack_tuple *t, | ||
88 | int reply); | ||
89 | |||
90 | /* delete keymap entries */ | ||
91 | void ip_ct_gre_keymap_destroy(struct ip_conntrack *ct); | ||
92 | |||
93 | |||
94 | /* get pointer to gre key, if present */ | ||
95 | static inline u_int32_t *gre_key(struct gre_hdr *greh) | ||
96 | { | ||
97 | if (!greh->key) | ||
98 | return NULL; | ||
99 | if (greh->csum || greh->routing) | ||
100 | return (u_int32_t *) (greh+sizeof(*greh)+4); | ||
101 | return (u_int32_t *) (greh+sizeof(*greh)); | ||
102 | } | ||
103 | |||
104 | /* get pointer ot gre csum, if present */ | ||
105 | static inline u_int16_t *gre_csum(struct gre_hdr *greh) | ||
106 | { | ||
107 | if (!greh->csum) | ||
108 | return NULL; | ||
109 | return (u_int16_t *) (greh+sizeof(*greh)); | ||
110 | } | ||
111 | |||
112 | #endif /* __KERNEL__ */ | ||
113 | |||
114 | #endif /* _CONNTRACK_PROTO_GRE_H */ | ||
diff --git a/include/linux/netfilter_ipv4/ip_conntrack_tuple.h b/include/linux/netfilter_ipv4/ip_conntrack_tuple.h index c33f0b5e0d0a..20e43f018b7c 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack_tuple.h +++ b/include/linux/netfilter_ipv4/ip_conntrack_tuple.h | |||
@@ -17,7 +17,7 @@ union ip_conntrack_manip_proto | |||
17 | u_int16_t all; | 17 | u_int16_t all; |
18 | 18 | ||
19 | struct { | 19 | struct { |
20 | u_int16_t port; | 20 | __be16 port; |
21 | } tcp; | 21 | } tcp; |
22 | struct { | 22 | struct { |
23 | u_int16_t port; | 23 | u_int16_t port; |
@@ -28,6 +28,9 @@ union ip_conntrack_manip_proto | |||
28 | struct { | 28 | struct { |
29 | u_int16_t port; | 29 | u_int16_t port; |
30 | } sctp; | 30 | } sctp; |
31 | struct { | ||
32 | __be16 key; /* key is 32bit, pptp only uses 16 */ | ||
33 | } gre; | ||
31 | }; | 34 | }; |
32 | 35 | ||
33 | /* The manipulable part of the tuple. */ | 36 | /* The manipulable part of the tuple. */ |
@@ -61,6 +64,10 @@ struct ip_conntrack_tuple | |||
61 | struct { | 64 | struct { |
62 | u_int16_t port; | 65 | u_int16_t port; |
63 | } sctp; | 66 | } sctp; |
67 | struct { | ||
68 | __be16 key; /* key is 32bit, | ||
69 | * pptp only uses 16 */ | ||
70 | } gre; | ||
64 | } u; | 71 | } u; |
65 | 72 | ||
66 | /* The protocol. */ | 73 | /* The protocol. */ |
diff --git a/include/linux/netfilter_ipv4/ip_nat_pptp.h b/include/linux/netfilter_ipv4/ip_nat_pptp.h new file mode 100644 index 000000000000..eaf66c2e8f93 --- /dev/null +++ b/include/linux/netfilter_ipv4/ip_nat_pptp.h | |||
@@ -0,0 +1,11 @@ | |||
1 | /* PPTP constants and structs */ | ||
2 | #ifndef _NAT_PPTP_H | ||
3 | #define _NAT_PPTP_H | ||
4 | |||
5 | /* conntrack private data */ | ||
6 | struct ip_nat_pptp { | ||
7 | u_int16_t pns_call_id; /* NAT'ed PNS call id */ | ||
8 | u_int16_t pac_call_id; /* NAT'ed PAC call id */ | ||
9 | }; | ||
10 | |||
11 | #endif /* _NAT_PPTP_H */ | ||
diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h index 58c72a52dc65..59f70b34e029 100644 --- a/include/linux/netfilter_ipv6/ip6_tables.h +++ b/include/linux/netfilter_ipv6/ip6_tables.h | |||
@@ -455,6 +455,9 @@ extern unsigned int ip6t_do_table(struct sk_buff **pskb, | |||
455 | 455 | ||
456 | /* Check for an extension */ | 456 | /* Check for an extension */ |
457 | extern int ip6t_ext_hdr(u8 nexthdr); | 457 | extern int ip6t_ext_hdr(u8 nexthdr); |
458 | /* find specified header and get offset to it */ | ||
459 | extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset, | ||
460 | u8 target); | ||
458 | 461 | ||
459 | #define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1)) | 462 | #define IP6T_ALIGN(s) (((s) + (__alignof__(struct ip6t_entry)-1)) & ~(__alignof__(struct ip6t_entry)-1)) |
460 | 463 | ||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index c49d28eca561..b86a4b77007e 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1268,7 +1268,8 @@ | |||
1268 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA 0x0266 | 1268 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA 0x0266 |
1269 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2 0x0267 | 1269 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2 0x0267 |
1270 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E | 1270 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E |
1271 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x036F | 1271 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x037E |
1272 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F | ||
1272 | #define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268 | 1273 | #define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268 |
1273 | #define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269 | 1274 | #define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269 |
1274 | #define PCI_DEVICE_ID_NVIDIA_MCP51_AUDIO 0x026B | 1275 | #define PCI_DEVICE_ID_NVIDIA_MCP51_AUDIO 0x026B |
diff --git a/include/linux/reboot.h b/include/linux/reboot.h index 3b3266ff1a95..7ab2cdb83ef0 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h | |||
@@ -59,6 +59,10 @@ extern void machine_crash_shutdown(struct pt_regs *); | |||
59 | * Architecture independent implemenations of sys_reboot commands. | 59 | * Architecture independent implemenations of sys_reboot commands. |
60 | */ | 60 | */ |
61 | 61 | ||
62 | extern void kernel_restart_prepare(char *cmd); | ||
63 | extern void kernel_halt_prepare(void); | ||
64 | extern void kernel_power_off_prepare(void); | ||
65 | |||
62 | extern void kernel_restart(char *cmd); | 66 | extern void kernel_restart(char *cmd); |
63 | extern void kernel_halt(void); | 67 | extern void kernel_halt(void); |
64 | extern void kernel_power_off(void); | 68 | extern void kernel_power_off(void); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 425f58c8ea4a..a6f03e473737 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -508,5 +508,7 @@ asmlinkage long sys_keyctl(int cmd, unsigned long arg2, unsigned long arg3, | |||
508 | 508 | ||
509 | asmlinkage long sys_ioprio_set(int which, int who, int ioprio); | 509 | asmlinkage long sys_ioprio_set(int which, int who, int ioprio); |
510 | asmlinkage long sys_ioprio_get(int which, int who); | 510 | asmlinkage long sys_ioprio_get(int which, int who); |
511 | asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask, | ||
512 | unsigned long maxnode); | ||
511 | 513 | ||
512 | #endif | 514 | #endif |