aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/audit.h36
-rw-r--r--include/linux/crc16.h16
-rw-r--r--include/linux/dmi.h2
-rw-r--r--include/linux/fb.h2
-rw-r--r--include/linux/font.h10
-rw-r--r--include/linux/interrupt.h7
-rw-r--r--include/linux/kernel.h4
-rw-r--r--include/linux/nfsd/xdr4.h15
-rw-r--r--include/linux/pci_ids.h48
-rw-r--r--include/linux/pktcdvd.h3
-rw-r--r--include/linux/sched.h12
-rw-r--r--include/linux/security.h5
-rw-r--r--include/linux/usbdevice_fs.h2
-rw-r--r--include/linux/videodev2.h109
14 files changed, 203 insertions, 68 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h
index 68aba0c02e49..b2a2509bd7ea 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -51,7 +51,8 @@
51#define AUDIT_WATCH_LIST 1009 /* List all file/dir watches */ 51#define AUDIT_WATCH_LIST 1009 /* List all file/dir watches */
52#define AUDIT_SIGNAL_INFO 1010 /* Get info about sender of signal to auditd */ 52#define AUDIT_SIGNAL_INFO 1010 /* Get info about sender of signal to auditd */
53 53
54#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages uninteresting to kernel */ 54#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */
55#define AUDIT_USER_AVC 1107 /* We filter this differently */
55#define AUDIT_LAST_USER_MSG 1199 56#define AUDIT_LAST_USER_MSG 1199
56 57
57#define AUDIT_DAEMON_START 1200 /* Daemon startup record */ 58#define AUDIT_DAEMON_START 1200 /* Daemon startup record */
@@ -75,10 +76,15 @@
75#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ 76#define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
76 77
77/* Rule flags */ 78/* Rule flags */
78#define AUDIT_PER_TASK 0x01 /* Apply rule at task creation (not syscall) */ 79#define AUDIT_FILTER_USER 0x00 /* Apply rule to user-generated messages */
79#define AUDIT_AT_ENTRY 0x02 /* Apply rule at syscall entry */ 80#define AUDIT_FILTER_TASK 0x01 /* Apply rule at task creation (not syscall) */
80#define AUDIT_AT_EXIT 0x04 /* Apply rule at syscall exit */ 81#define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */
81#define AUDIT_PREPEND 0x10 /* Prepend to front of list */ 82#define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */
83#define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */
84
85#define AUDIT_NR_FILTERS 5
86
87#define AUDIT_FILTER_PREPEND 0x10 /* Prepend to front of list */
82 88
83/* Rule actions */ 89/* Rule actions */
84#define AUDIT_NEVER 0 /* Do not build context if rule matches */ 90#define AUDIT_NEVER 0 /* Do not build context if rule matches */
@@ -199,6 +205,7 @@ struct audit_sig_info {
199struct audit_buffer; 205struct audit_buffer;
200struct audit_context; 206struct audit_context;
201struct inode; 207struct inode;
208struct netlink_skb_parms;
202 209
203#define AUDITSC_INVALID 0 210#define AUDITSC_INVALID 0
204#define AUDITSC_SUCCESS 1 211#define AUDITSC_SUCCESS 1
@@ -215,7 +222,7 @@ extern void audit_syscall_entry(struct task_struct *task, int arch,
215extern void audit_syscall_exit(struct task_struct *task, int failed, long return_code); 222extern void audit_syscall_exit(struct task_struct *task, int failed, long return_code);
216extern void audit_getname(const char *name); 223extern void audit_getname(const char *name);
217extern void audit_putname(const char *name); 224extern void audit_putname(const char *name);
218extern void audit_inode(const char *name, const struct inode *inode); 225extern void audit_inode(const char *name, const struct inode *inode, unsigned flags);
219 226
220 /* Private API (for audit.c only) */ 227 /* Private API (for audit.c only) */
221extern int audit_receive_filter(int type, int pid, int uid, int seq, 228extern int audit_receive_filter(int type, int pid, int uid, int seq,
@@ -230,6 +237,7 @@ extern int audit_socketcall(int nargs, unsigned long *args);
230extern int audit_sockaddr(int len, void *addr); 237extern int audit_sockaddr(int len, void *addr);
231extern int audit_avc_path(struct dentry *dentry, struct vfsmount *mnt); 238extern int audit_avc_path(struct dentry *dentry, struct vfsmount *mnt);
232extern void audit_signal_info(int sig, struct task_struct *t); 239extern void audit_signal_info(int sig, struct task_struct *t);
240extern int audit_filter_user(struct netlink_skb_parms *cb, int type);
233#else 241#else
234#define audit_alloc(t) ({ 0; }) 242#define audit_alloc(t) ({ 0; })
235#define audit_free(t) do { ; } while (0) 243#define audit_free(t) do { ; } while (0)
@@ -237,7 +245,7 @@ extern void audit_signal_info(int sig, struct task_struct *t);
237#define audit_syscall_exit(t,f,r) do { ; } while (0) 245#define audit_syscall_exit(t,f,r) do { ; } while (0)
238#define audit_getname(n) do { ; } while (0) 246#define audit_getname(n) do { ; } while (0)
239#define audit_putname(n) do { ; } while (0) 247#define audit_putname(n) do { ; } while (0)
240#define audit_inode(n,i) do { ; } while (0) 248#define audit_inode(n,i,f) do { ; } while (0)
241#define audit_receive_filter(t,p,u,s,d,l) ({ -EOPNOTSUPP; }) 249#define audit_receive_filter(t,p,u,s,d,l) ({ -EOPNOTSUPP; })
242#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0) 250#define auditsc_get_stamp(c,t,s) do { BUG(); } while (0)
243#define audit_get_loginuid(c) ({ -1; }) 251#define audit_get_loginuid(c) ({ -1; })
@@ -246,16 +254,17 @@ extern void audit_signal_info(int sig, struct task_struct *t);
246#define audit_sockaddr(len, addr) ({ 0; }) 254#define audit_sockaddr(len, addr) ({ 0; })
247#define audit_avc_path(dentry, mnt) ({ 0; }) 255#define audit_avc_path(dentry, mnt) ({ 0; })
248#define audit_signal_info(s,t) do { ; } while (0) 256#define audit_signal_info(s,t) do { ; } while (0)
257#define audit_filter_user(cb,t) ({ 1; })
249#endif 258#endif
250 259
251#ifdef CONFIG_AUDIT 260#ifdef CONFIG_AUDIT
252/* These are defined in audit.c */ 261/* These are defined in audit.c */
253 /* Public API */ 262 /* Public API */
254extern void audit_log(struct audit_context *ctx, int type, 263extern void audit_log(struct audit_context *ctx, int gfp_mask,
255 const char *fmt, ...) 264 int type, const char *fmt, ...)
256 __attribute__((format(printf,3,4))); 265 __attribute__((format(printf,4,5)));
257 266
258extern struct audit_buffer *audit_log_start(struct audit_context *ctx,int type); 267extern struct audit_buffer *audit_log_start(struct audit_context *ctx, int gfp_mask, int type);
259extern void audit_log_format(struct audit_buffer *ab, 268extern void audit_log_format(struct audit_buffer *ab,
260 const char *fmt, ...) 269 const char *fmt, ...)
261 __attribute__((format(printf,2,3))); 270 __attribute__((format(printf,2,3)));
@@ -274,9 +283,10 @@ extern void audit_send_reply(int pid, int seq, int type,
274 int done, int multi, 283 int done, int multi,
275 void *payload, int size); 284 void *payload, int size);
276extern void audit_log_lost(const char *message); 285extern void audit_log_lost(const char *message);
286extern struct semaphore audit_netlink_sem;
277#else 287#else
278#define audit_log(c,t,f,...) do { ; } while (0) 288#define audit_log(c,g,t,f,...) do { ; } while (0)
279#define audit_log_start(c,t) ({ NULL; }) 289#define audit_log_start(c,g,t) ({ NULL; })
280#define audit_log_vformat(b,f,a) do { ; } while (0) 290#define audit_log_vformat(b,f,a) do { ; } while (0)
281#define audit_log_format(b,f,...) do { ; } while (0) 291#define audit_log_format(b,f,...) do { ; } while (0)
282#define audit_log_end(b) do { ; } while (0) 292#define audit_log_end(b) do { ; } while (0)
diff --git a/include/linux/crc16.h b/include/linux/crc16.h
index bdedf825b04a..9443c084f881 100644
--- a/include/linux/crc16.h
+++ b/include/linux/crc16.h
@@ -1,22 +1,11 @@
1/* 1/*
2 * crc16.h - CRC-16 routine 2 * crc16.h - CRC-16 routine
3 * 3 *
4 * Implements the standard CRC-16, as used with 1-wire devices: 4 * Implements the standard CRC-16:
5 * Width 16 5 * Width 16
6 * Poly 0x8005 (x^16 + x^15 + x^2 + 1) 6 * Poly 0x8005 (x^16 + x^15 + x^2 + 1)
7 * Init 0 7 * Init 0
8 * 8 *
9 * For 1-wire devices, the CRC is stored inverted, LSB-first
10 *
11 * Example buffer with the CRC attached:
12 * 31 32 33 34 35 36 37 38 39 C2 44
13 *
14 * The CRC over a buffer with the CRC attached is 0xB001.
15 * So, if (crc16(0, buf, size) == 0xB001) then the buffer is valid.
16 *
17 * Refer to "Application Note 937: Book of iButton Standards" for details.
18 * http://www.maxim-ic.com/appnotes.cfm/appnote_number/937
19 *
20 * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com> 9 * Copyright (c) 2005 Ben Gardner <bgardner@wabtec.com>
21 * 10 *
22 * This source code is licensed under the GNU General Public License, 11 * This source code is licensed under the GNU General Public License,
@@ -28,9 +17,6 @@
28 17
29#include <linux/types.h> 18#include <linux/types.h>
30 19
31#define CRC16_INIT 0
32#define CRC16_VALID 0xb001
33
34extern u16 const crc16_table[256]; 20extern u16 const crc16_table[256];
35 21
36extern u16 crc16(u16 crc, const u8 *buffer, size_t len); 22extern u16 crc16(u16 crc, const u8 *buffer, size_t len);
diff --git a/include/linux/dmi.h b/include/linux/dmi.h
index c30175e8dec6..a415f1d93e9a 100644
--- a/include/linux/dmi.h
+++ b/include/linux/dmi.h
@@ -70,7 +70,7 @@ extern struct dmi_device * dmi_find_device(int type, const char *name,
70 70
71static inline int dmi_check_system(struct dmi_system_id *list) { return 0; } 71static inline int dmi_check_system(struct dmi_system_id *list) { return 0; }
72static inline char * dmi_get_system_info(int field) { return NULL; } 72static inline char * dmi_get_system_info(int field) { return NULL; }
73static struct dmi_device * dmi_find_device(int type, const char *name, 73static inline struct dmi_device * dmi_find_device(int type, const char *name,
74 struct dmi_device *from) { return NULL; } 74 struct dmi_device *from) { return NULL; }
75 75
76#endif 76#endif
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 82e39cd0c4fb..c698055266d0 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -619,7 +619,7 @@ struct fb_tilemap {
619 __u32 height; /* height of each tile in scanlines */ 619 __u32 height; /* height of each tile in scanlines */
620 __u32 depth; /* color depth of each tile */ 620 __u32 depth; /* color depth of each tile */
621 __u32 length; /* number of tiles in the map */ 621 __u32 length; /* number of tiles in the map */
622 __u8 *data; /* actual tile map: a bitmap array, packed 622 const __u8 *data; /* actual tile map: a bitmap array, packed
623 to the nearest byte */ 623 to the nearest byte */
624}; 624};
625 625
diff --git a/include/linux/font.h b/include/linux/font.h
index 8fc80a7d78ac..53b129f07f6f 100644
--- a/include/linux/font.h
+++ b/include/linux/font.h
@@ -15,9 +15,9 @@
15 15
16struct font_desc { 16struct font_desc {
17 int idx; 17 int idx;
18 char *name; 18 const char *name;
19 int width, height; 19 int width, height;
20 void *data; 20 const void *data;
21 int pref; 21 int pref;
22}; 22};
23 23
@@ -32,7 +32,7 @@ struct font_desc {
32#define ACORN8x8_IDX 8 32#define ACORN8x8_IDX 8
33#define MINI4x6_IDX 9 33#define MINI4x6_IDX 9
34 34
35extern struct font_desc font_vga_8x8, 35extern const struct font_desc font_vga_8x8,
36 font_vga_8x16, 36 font_vga_8x16,
37 font_pearl_8x8, 37 font_pearl_8x8,
38 font_vga_6x11, 38 font_vga_6x11,
@@ -45,11 +45,11 @@ extern struct font_desc font_vga_8x8,
45 45
46/* Find a font with a specific name */ 46/* Find a font with a specific name */
47 47
48extern struct font_desc *find_font(char *name); 48extern const struct font_desc *find_font(const char *name);
49 49
50/* Get the default font for a specific screen size */ 50/* Get the default font for a specific screen size */
51 51
52extern struct font_desc *get_default_font(int xres, int yres); 52extern const struct font_desc *get_default_font(int xres, int yres);
53 53
54/* Max. length for the name of a predefined font */ 54/* Max. length for the name of a predefined font */
55#define MAX_FONT_NAME 32 55#define MAX_FONT_NAME 32
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index d99e7aeb7d33..0a90205184b0 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -57,6 +57,11 @@ extern void disable_irq(unsigned int irq);
57extern void enable_irq(unsigned int irq); 57extern void enable_irq(unsigned int irq);
58#endif 58#endif
59 59
60#ifndef __ARCH_SET_SOFTIRQ_PENDING
61#define set_softirq_pending(x) (local_softirq_pending() = (x))
62#define or_softirq_pending(x) (local_softirq_pending() |= (x))
63#endif
64
60/* 65/*
61 * Temporary defines for UP kernels, until all code gets fixed. 66 * Temporary defines for UP kernels, until all code gets fixed.
62 */ 67 */
@@ -123,7 +128,7 @@ struct softirq_action
123asmlinkage void do_softirq(void); 128asmlinkage void do_softirq(void);
124extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data); 129extern void open_softirq(int nr, void (*action)(struct softirq_action*), void *data);
125extern void softirq_init(void); 130extern void softirq_init(void);
126#define __raise_softirq_irqoff(nr) do { local_softirq_pending() |= 1UL << (nr); } while (0) 131#define __raise_softirq_irqoff(nr) do { or_softirq_pending(1UL << (nr)); } while (0)
127extern void FASTCALL(raise_softirq_irqoff(unsigned int nr)); 132extern void FASTCALL(raise_softirq_irqoff(unsigned int nr));
128extern void FASTCALL(raise_softirq(unsigned int nr)); 133extern void FASTCALL(raise_softirq(unsigned int nr));
129 134
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 687ba8c9973d..4367ce4db52a 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -307,8 +307,8 @@ struct sysinfo {
307 char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ 307 char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
308}; 308};
309 309
310extern void BUILD_BUG(void); 310/* Force a compilation error if condition is false */
311#define BUILD_BUG_ON(condition) do { if (condition) BUILD_BUG(); } while(0) 311#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
312 312
313#ifdef CONFIG_SYSCTL 313#ifdef CONFIG_SYSCTL
314extern int randomize_va_space; 314extern int randomize_va_space;
diff --git a/include/linux/nfsd/xdr4.h b/include/linux/nfsd/xdr4.h
index 4d24d65c0e88..8903688890ce 100644
--- a/include/linux/nfsd/xdr4.h
+++ b/include/linux/nfsd/xdr4.h
@@ -438,17 +438,22 @@ extern int nfsd4_process_open1(struct nfsd4_open *open);
438extern int nfsd4_process_open2(struct svc_rqst *rqstp, 438extern int nfsd4_process_open2(struct svc_rqst *rqstp,
439 struct svc_fh *current_fh, struct nfsd4_open *open); 439 struct svc_fh *current_fh, struct nfsd4_open *open);
440extern int nfsd4_open_confirm(struct svc_rqst *rqstp, 440extern int nfsd4_open_confirm(struct svc_rqst *rqstp,
441 struct svc_fh *current_fh, struct nfsd4_open_confirm *oc); 441 struct svc_fh *current_fh, struct nfsd4_open_confirm *oc,
442 struct nfs4_stateowner **);
442extern int nfsd4_close(struct svc_rqst *rqstp, struct svc_fh *current_fh, 443extern int nfsd4_close(struct svc_rqst *rqstp, struct svc_fh *current_fh,
443 struct nfsd4_close *close); 444 struct nfsd4_close *close,
445 struct nfs4_stateowner **replay_owner);
444extern int nfsd4_open_downgrade(struct svc_rqst *rqstp, 446extern int nfsd4_open_downgrade(struct svc_rqst *rqstp,
445 struct svc_fh *current_fh, struct nfsd4_open_downgrade *od); 447 struct svc_fh *current_fh, struct nfsd4_open_downgrade *od,
448 struct nfs4_stateowner **replay_owner);
446extern int nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, 449extern int nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh,
447 struct nfsd4_lock *lock); 450 struct nfsd4_lock *lock,
451 struct nfs4_stateowner **replay_owner);
448extern int nfsd4_lockt(struct svc_rqst *rqstp, struct svc_fh *current_fh, 452extern int nfsd4_lockt(struct svc_rqst *rqstp, struct svc_fh *current_fh,
449 struct nfsd4_lockt *lockt); 453 struct nfsd4_lockt *lockt);
450extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh, 454extern int nfsd4_locku(struct svc_rqst *rqstp, struct svc_fh *current_fh,
451 struct nfsd4_locku *locku); 455 struct nfsd4_locku *locku,
456 struct nfs4_stateowner **replay_owner);
452extern int 457extern int
453nfsd4_release_lockowner(struct svc_rqst *rqstp, 458nfsd4_release_lockowner(struct svc_rqst *rqstp,
454 struct nfsd4_release_lockowner *rlockowner); 459 struct nfsd4_release_lockowner *rlockowner);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index ee0ab7a5f91b..f6c1a142286a 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -447,6 +447,10 @@
447#define PCI_DEVICE_ID_CIRRUS_7542 0x1200 447#define PCI_DEVICE_ID_CIRRUS_7542 0x1200
448#define PCI_DEVICE_ID_CIRRUS_7543 0x1202 448#define PCI_DEVICE_ID_CIRRUS_7543 0x1202
449#define PCI_DEVICE_ID_CIRRUS_7541 0x1204 449#define PCI_DEVICE_ID_CIRRUS_7541 0x1204
450#define PCI_DEVICE_ID_CIRRUS_4610 0x6001
451#define PCI_DEVICE_ID_CIRRUS_4612 0x6003
452#define PCI_DEVICE_ID_CIRRUS_4615 0x6004
453#define PCI_DEVICE_ID_CIRRUS_4281 0x6005
450 454
451#define PCI_VENDOR_ID_IBM 0x1014 455#define PCI_VENDOR_ID_IBM 0x1014
452#define PCI_DEVICE_ID_IBM_FIRE_CORAL 0x000a 456#define PCI_DEVICE_ID_IBM_FIRE_CORAL 0x000a
@@ -682,7 +686,9 @@
682#define PCI_DEVICE_ID_SI_6326 0x6326 686#define PCI_DEVICE_ID_SI_6326 0x6326
683#define PCI_DEVICE_ID_SI_7001 0x7001 687#define PCI_DEVICE_ID_SI_7001 0x7001
684#define PCI_DEVICE_ID_SI_7012 0x7012 688#define PCI_DEVICE_ID_SI_7012 0x7012
689#define PCI_DEVICE_ID_SI_7013 0x7013
685#define PCI_DEVICE_ID_SI_7016 0x7016 690#define PCI_DEVICE_ID_SI_7016 0x7016
691#define PCI_DEVICE_ID_SI_7018 0x7018
686 692
687#define PCI_VENDOR_ID_HP 0x103c 693#define PCI_VENDOR_ID_HP 0x103c
688#define PCI_DEVICE_ID_HP_VISUALIZE_EG 0x1005 694#define PCI_DEVICE_ID_HP_VISUALIZE_EG 0x1005
@@ -713,10 +719,12 @@
713#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282 719#define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282
714#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290 720#define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290
715#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301 721#define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301
722#define PCI_DEVICE_ID_HP_CISS 0x3210
716#define PCI_DEVICE_ID_HP_CISSA 0x3220 723#define PCI_DEVICE_ID_HP_CISSA 0x3220
717#define PCI_DEVICE_ID_HP_CISSB 0x3222 724#define PCI_DEVICE_ID_HP_CISSB 0x3222
718#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
719#define PCI_DEVICE_ID_HP_CISSC 0x3230 725#define PCI_DEVICE_ID_HP_CISSC 0x3230
726#define PCI_DEVICE_ID_HP_CISSD 0x3238
727#define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031
720 728
721#define PCI_VENDOR_ID_PCTECH 0x1042 729#define PCI_VENDOR_ID_PCTECH 0x1042
722#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000 730#define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000
@@ -991,6 +999,7 @@
991#define PCI_DEVICE_ID_BROOKTREE_849A 0x0351 999#define PCI_DEVICE_ID_BROOKTREE_849A 0x0351
992#define PCI_DEVICE_ID_BROOKTREE_878_1 0x036e 1000#define PCI_DEVICE_ID_BROOKTREE_878_1 0x036e
993#define PCI_DEVICE_ID_BROOKTREE_878 0x0878 1001#define PCI_DEVICE_ID_BROOKTREE_878 0x0878
1002#define PCI_DEVICE_ID_BROOKTREE_879 0x0879
994#define PCI_DEVICE_ID_BROOKTREE_8474 0x8474 1003#define PCI_DEVICE_ID_BROOKTREE_8474 0x8474
995 1004
996#define PCI_VENDOR_ID_SIERRA 0x10a8 1005#define PCI_VENDOR_ID_SIERRA 0x10a8
@@ -1109,6 +1118,9 @@
1109#define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2160 0x0004 1118#define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2160 0x0004
1110#define PCI_DEVICE_ID_NEOMAGIC_MAGICMEDIA_256AV 0x0005 1119#define PCI_DEVICE_ID_NEOMAGIC_MAGICMEDIA_256AV 0x0005
1111#define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZVPLUS 0x0083 1120#define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZVPLUS 0x0083
1121#define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005
1122#define PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO 0x8006
1123#define PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO 0x8016
1112 1124
1113#define PCI_VENDOR_ID_ASP 0x10cd 1125#define PCI_VENDOR_ID_ASP 0x10cd
1114#define PCI_DEVICE_ID_ASP_ABP940 0x1200 1126#define PCI_DEVICE_ID_ASP_ABP940 0x1200
@@ -1155,10 +1167,13 @@
1155#define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064 1167#define PCI_DEVICE_ID_NVIDIA_NFORCE2_SMBUS 0x0064
1156#define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065 1168#define PCI_DEVICE_ID_NVIDIA_NFORCE2_IDE 0x0065
1157#define PCI_DEVICE_ID_NVIDIA_NVENET_2 0x0066 1169#define PCI_DEVICE_ID_NVIDIA_NVENET_2 0x0066
1170#define PCI_DEVICE_ID_NVIDIA_MCP2_MODEM 0x0069
1158#define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a 1171#define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO 0x006a
1159#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SMBUS 0x0084 1172#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SMBUS 0x0084
1160#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085 1173#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_IDE 0x0085
1161#define PCI_DEVICE_ID_NVIDIA_NVENET_4 0x0086 1174#define PCI_DEVICE_ID_NVIDIA_NVENET_4 0x0086
1175#define PCI_DEVICE_ID_NVIDIA_MCP2S_MODEM 0x0089
1176#define PCI_DEVICE_ID_NVIDIA_CK8_AUDIO 0x008a
1162#define PCI_DEVICE_ID_NVIDIA_NVENET_5 0x008c 1177#define PCI_DEVICE_ID_NVIDIA_NVENET_5 0x008c
1163#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e 1178#define PCI_DEVICE_ID_NVIDIA_NFORCE2S_SATA 0x008e
1164#define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0 1179#define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0
@@ -1173,6 +1188,7 @@
1173#define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4 1188#define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4
1174#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 1189#define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5
1175#define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6 1190#define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6
1191#define PCI_DEVICE_ID_NVIDIA_MCP3_MODEM 0x00d9
1176#define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da 1192#define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da
1177#define PCI_DEVICE_ID_NVIDIA_NVENET_7 0x00df 1193#define PCI_DEVICE_ID_NVIDIA_NVENET_7 0x00df
1178#define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1 1194#define PCI_DEVICE_ID_NVIDIA_NFORCE3S 0x00e1
@@ -1180,6 +1196,7 @@
1180#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS 0x00e4 1196#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS 0x00e4
1181#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5 1197#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_IDE 0x00e5
1182#define PCI_DEVICE_ID_NVIDIA_NVENET_6 0x00e6 1198#define PCI_DEVICE_ID_NVIDIA_NVENET_6 0x00e6
1199#define PCI_DEVICE_ID_NVIDIA_CK8S_AUDIO 0x00ea
1183#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee 1200#define PCI_DEVICE_ID_NVIDIA_NFORCE3S_SATA2 0x00ee
1184#define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100 1201#define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100
1185#define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101 1202#define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101
@@ -1230,6 +1247,7 @@
1230#define PCI_DEVICE_ID_NVIDIA_MCP1_AUDIO 0x01b1 1247#define PCI_DEVICE_ID_NVIDIA_MCP1_AUDIO 0x01b1
1231#define PCI_DEVICE_ID_NVIDIA_NFORCE_SMBUS 0x01b4 1248#define PCI_DEVICE_ID_NVIDIA_NFORCE_SMBUS 0x01b4
1232#define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE 0x01bc 1249#define PCI_DEVICE_ID_NVIDIA_NFORCE_IDE 0x01bc
1250#define PCI_DEVICE_ID_NVIDIA_MCP1_MODEM 0x01c1
1233#define PCI_DEVICE_ID_NVIDIA_NVENET_1 0x01c3 1251#define PCI_DEVICE_ID_NVIDIA_NVENET_1 0x01c3
1234#define PCI_DEVICE_ID_NVIDIA_NFORCE2 0x01e0 1252#define PCI_DEVICE_ID_NVIDIA_NFORCE2 0x01e0
1235#define PCI_DEVICE_ID_NVIDIA_GEFORCE3 0x0200 1253#define PCI_DEVICE_ID_NVIDIA_GEFORCE3 0x0200
@@ -1334,6 +1352,13 @@
1334#define PCI_DEVICE_ID_REALTEK_8169 0x8169 1352#define PCI_DEVICE_ID_REALTEK_8169 0x8169
1335 1353
1336#define PCI_VENDOR_ID_XILINX 0x10ee 1354#define PCI_VENDOR_ID_XILINX 0x10ee
1355#define PCI_DEVICE_ID_RME_DIGI96 0x3fc0
1356#define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1
1357#define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2
1358#define PCI_DEVICE_IDRME__DIGI96_8_PAD_OR_PST 0x3fc3
1359#define PCI_DEVICE_ID_XILINX_HAMMERFALL 0x3fc4
1360#define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5
1361#define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6
1337#define PCI_DEVICE_ID_TURBOPAM 0x4020 1362#define PCI_DEVICE_ID_TURBOPAM 0x4020
1338 1363
1339#define PCI_VENDOR_ID_TRUEVISION 0x10fa 1364#define PCI_VENDOR_ID_TRUEVISION 0x10fa
@@ -1809,6 +1834,14 @@
1809#define PCI_DEVICE_ID_ESS_ESS1968 0x1968 1834#define PCI_DEVICE_ID_ESS_ESS1968 0x1968
1810#define PCI_DEVICE_ID_ESS_AUDIOPCI 0x1969 1835#define PCI_DEVICE_ID_ESS_AUDIOPCI 0x1969
1811#define PCI_DEVICE_ID_ESS_ESS1978 0x1978 1836#define PCI_DEVICE_ID_ESS_ESS1978 0x1978
1837#define PCI_DEVICE_ID_ESS_ALLEGRO_1 0x1988
1838#define PCI_DEVICE_ID_ESS_ALLEGRO 0x1989
1839#define PCI_DEVICE_ID_ESS_CANYON3D_2LE 0x1990
1840#define PCI_DEVICE_ID_ESS_CANYON3D_2 0x1992
1841#define PCI_DEVICE_ID_ESS_MAESTRO3 0x1998
1842#define PCI_DEVICE_ID_ESS_MAESTRO3_1 0x1999
1843#define PCI_DEVICE_ID_ESS_MAESTRO3_HW 0x199a
1844#define PCI_DEVICE_ID_ESS_MAESTRO3_2 0x199b
1812 1845
1813#define PCI_VENDOR_ID_SATSAGEM 0x1267 1846#define PCI_VENDOR_ID_SATSAGEM 0x1267
1814#define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016 1847#define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016
@@ -1968,6 +2001,9 @@
1968#define PCI_DEVICE_ID_LMC_SSI 0x0005 2001#define PCI_DEVICE_ID_LMC_SSI 0x0005
1969#define PCI_DEVICE_ID_LMC_T1 0x0006 2002#define PCI_DEVICE_ID_LMC_T1 0x0006
1970 2003
2004#define PCI_VENDOR_ID_MARIAN 0x1382
2005#define PCI_DEVICE_ID_MARIAN_PRODIF_PLUS 0x2048
2006
1971#define PCI_VENDOR_ID_NETGEAR 0x1385 2007#define PCI_VENDOR_ID_NETGEAR 0x1385
1972#define PCI_DEVICE_ID_NETGEAR_GA620 0x620a 2008#define PCI_DEVICE_ID_NETGEAR_GA620 0x620a
1973#define PCI_DEVICE_ID_NETGEAR_GA622 0x622a 2009#define PCI_DEVICE_ID_NETGEAR_GA622 0x622a
@@ -2056,6 +2092,10 @@
2056#define PCI_VENDOR_ID_TIMEDIA 0x1409 2092#define PCI_VENDOR_ID_TIMEDIA 0x1409
2057#define PCI_DEVICE_ID_TIMEDIA_1889 0x7168 2093#define PCI_DEVICE_ID_TIMEDIA_1889 0x7168
2058 2094
2095#define PCI_VENDOR_ID_ICE 0x1412
2096#define PCI_DEVICE_ID_ICE_1712 0x1712
2097#define PCI_DEVICE_ID_VT1724 0x1724
2098
2059#define PCI_VENDOR_ID_OXSEMI 0x1415 2099#define PCI_VENDOR_ID_OXSEMI 0x1415
2060#define PCI_DEVICE_ID_OXSEMI_12PCI840 0x8403 2100#define PCI_DEVICE_ID_OXSEMI_12PCI840 0x8403
2061#define PCI_DEVICE_ID_OXSEMI_16PCI954 0x9501 2101#define PCI_DEVICE_ID_OXSEMI_16PCI954 0x9501
@@ -2536,6 +2576,7 @@
2536#define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191 2576#define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191
2537#define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192 2577#define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192
2538#define PCI_DEVICE_ID_INTEL_440MX 0x7195 2578#define PCI_DEVICE_ID_INTEL_440MX 0x7195
2579#define PCI_DEVICE_ID_INTEL_440MX_6 0x7196
2539#define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198 2580#define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198
2540#define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199 2581#define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199
2541#define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a 2582#define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a
@@ -2642,6 +2683,11 @@
2642#define PCI_VENDOR_ID_TTTECH 0x0357 2683#define PCI_VENDOR_ID_TTTECH 0x0357
2643#define PCI_DEVICE_ID_TTTECH_MC322 0x000A 2684#define PCI_DEVICE_ID_TTTECH_MC322 0x000A
2644 2685
2686#define PCI_VENDOR_ID_XILINX_RME 0xea60
2687#define PCI_DEVICE_ID_RME_DIGI32 0x9896
2688#define PCI_DEVICE_ID_RME_DIGI32_PRO 0x9897
2689#define PCI_DEVICE_ID_RME_DIGI32_8 0x9898
2690
2645#define PCI_VENDOR_ID_ARK 0xedd8 2691#define PCI_VENDOR_ID_ARK 0xedd8
2646#define PCI_DEVICE_ID_ARK_STING 0xa091 2692#define PCI_DEVICE_ID_ARK_STING 0xa091
2647#define PCI_DEVICE_ID_ARK_STINGARK 0xa099 2693#define PCI_DEVICE_ID_ARK_STINGARK 0xa099
diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h
index 4b32bce9a289..2c177e4c8f22 100644
--- a/include/linux/pktcdvd.h
+++ b/include/linux/pktcdvd.h
@@ -166,6 +166,9 @@ struct packet_iosched
166/* 166/*
167 * 32 buffers of 2048 bytes 167 * 32 buffers of 2048 bytes
168 */ 168 */
169#if (PAGE_SIZE % CD_FRAMESIZE) != 0
170#error "PAGE_SIZE must be a multiple of CD_FRAMESIZE"
171#endif
169#define PACKET_MAX_SIZE 32 172#define PACKET_MAX_SIZE 32
170#define PAGES_PER_PACKET (PACKET_MAX_SIZE * CD_FRAMESIZE / PAGE_SIZE) 173#define PAGES_PER_PACKET (PACKET_MAX_SIZE * CD_FRAMESIZE / PAGE_SIZE)
171#define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9) 174#define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index ed3bb19d1337..49e617fa0f66 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -121,6 +121,17 @@ extern unsigned long nr_iowait(void);
121#define set_task_state(tsk, state_value) \ 121#define set_task_state(tsk, state_value) \
122 set_mb((tsk)->state, (state_value)) 122 set_mb((tsk)->state, (state_value))
123 123
124/*
125 * set_current_state() includes a barrier so that the write of current->state
126 * is correctly serialised wrt the caller's subsequent test of whether to
127 * actually sleep:
128 *
129 * set_current_state(TASK_UNINTERRUPTIBLE);
130 * if (do_i_need_to_sleep())
131 * schedule();
132 *
133 * If the caller does not need such serialisation then use __set_current_state()
134 */
124#define __set_current_state(state_value) \ 135#define __set_current_state(state_value) \
125 do { current->state = (state_value); } while (0) 136 do { current->state = (state_value); } while (0)
126#define set_current_state(state_value) \ 137#define set_current_state(state_value) \
@@ -785,7 +796,6 @@ struct task_struct {
785 short il_next; 796 short il_next;
786#endif 797#endif
787#ifdef CONFIG_CPUSETS 798#ifdef CONFIG_CPUSETS
788 short cpuset_sem_nest_depth;
789 struct cpuset *cpuset; 799 struct cpuset *cpuset;
790 nodemask_t mems_allowed; 800 nodemask_t mems_allowed;
791 int cpuset_mems_generation; 801 int cpuset_mems_generation;
diff --git a/include/linux/security.h b/include/linux/security.h
index 55b02e1c73f4..0e43460d374e 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -1907,6 +1907,11 @@ extern int register_security (struct security_operations *ops);
1907extern int unregister_security (struct security_operations *ops); 1907extern int unregister_security (struct security_operations *ops);
1908extern int mod_reg_security (const char *name, struct security_operations *ops); 1908extern int mod_reg_security (const char *name, struct security_operations *ops);
1909extern int mod_unreg_security (const char *name, struct security_operations *ops); 1909extern int mod_unreg_security (const char *name, struct security_operations *ops);
1910extern struct dentry *securityfs_create_file(const char *name, mode_t mode,
1911 struct dentry *parent, void *data,
1912 struct file_operations *fops);
1913extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent);
1914extern void securityfs_remove(struct dentry *dentry);
1910 1915
1911 1916
1912#else /* CONFIG_SECURITY */ 1917#else /* CONFIG_SECURITY */
diff --git a/include/linux/usbdevice_fs.h b/include/linux/usbdevice_fs.h
index fb57c2217468..9facf733800c 100644
--- a/include/linux/usbdevice_fs.h
+++ b/include/linux/usbdevice_fs.h
@@ -32,7 +32,6 @@
32#define _LINUX_USBDEVICE_FS_H 32#define _LINUX_USBDEVICE_FS_H
33 33
34#include <linux/types.h> 34#include <linux/types.h>
35#include <linux/compat.h>
36 35
37/* --------------------------------------------------------------------- */ 36/* --------------------------------------------------------------------- */
38 37
@@ -125,6 +124,7 @@ struct usbdevfs_hub_portinfo {
125}; 124};
126 125
127#ifdef CONFIG_COMPAT 126#ifdef CONFIG_COMPAT
127#include <linux/compat.h>
128struct usbdevfs_urb32 { 128struct usbdevfs_urb32 {
129 unsigned char type; 129 unsigned char type;
130 unsigned char endpoint; 130 unsigned char endpoint;
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index f623a33b9abe..89a055761bed 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -60,12 +60,17 @@ enum v4l2_field {
60 (field) == V4L2_FIELD_SEQ_BT) 60 (field) == V4L2_FIELD_SEQ_BT)
61 61
62enum v4l2_buf_type { 62enum v4l2_buf_type {
63 V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, 63 V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
64 V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, 64 V4L2_BUF_TYPE_VIDEO_OUTPUT = 2,
65 V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, 65 V4L2_BUF_TYPE_VIDEO_OVERLAY = 3,
66 V4L2_BUF_TYPE_VBI_CAPTURE = 4, 66 V4L2_BUF_TYPE_VBI_CAPTURE = 4,
67 V4L2_BUF_TYPE_VBI_OUTPUT = 5, 67 V4L2_BUF_TYPE_VBI_OUTPUT = 5,
68 V4L2_BUF_TYPE_PRIVATE = 0x80, 68#if 1
69 /* Experimental Sliced VBI */
70 V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6,
71 V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7,
72#endif
73 V4L2_BUF_TYPE_PRIVATE = 0x80,
69}; 74};
70 75
71enum v4l2_ctrl_type { 76enum v4l2_ctrl_type {
@@ -149,20 +154,24 @@ struct v4l2_capability
149}; 154};
150 155
151/* Values for 'capabilities' field */ 156/* Values for 'capabilities' field */
152#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */ 157#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */
153#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */ 158#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */
154#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */ 159#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */
155#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a VBI capture device */ 160#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */
156#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a VBI output device */ 161#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */
157#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ 162#if 1
163#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */
164#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */
165#endif
166#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */
158 167
159#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ 168#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */
160#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */ 169#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */
161#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ 170#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */
162 171
163#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ 172#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
164#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ 173#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
165#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ 174#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
166 175
167/* 176/*
168 * V I D E O I M A G E F O R M A T 177 * V I D E O I M A G E F O R M A T
@@ -809,6 +818,8 @@ struct v4l2_audioout
809 * Data services API by Michael Schimek 818 * Data services API by Michael Schimek
810 */ 819 */
811 820
821/* Raw VBI */
822
812struct v4l2_vbi_format 823struct v4l2_vbi_format
813{ 824{
814 __u32 sampling_rate; /* in 1 Hz */ 825 __u32 sampling_rate; /* in 1 Hz */
@@ -825,6 +836,54 @@ struct v4l2_vbi_format
825#define V4L2_VBI_UNSYNC (1<< 0) 836#define V4L2_VBI_UNSYNC (1<< 0)
826#define V4L2_VBI_INTERLACED (1<< 1) 837#define V4L2_VBI_INTERLACED (1<< 1)
827 838
839#if 1
840/* Sliced VBI
841 *
842 * This implements is a proposal V4L2 API to allow SLICED VBI
843 * required for some hardware encoders. It should change without
844 * notice in the definitive implementation.
845 */
846
847struct v4l2_sliced_vbi_format
848{
849 __u16 service_set;
850 /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
851 service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
852 (equals frame lines 313-336 for 625 line video
853 standards, 263-286 for 525 line standards) */
854 __u16 service_lines[2][24];
855 __u32 io_size;
856 __u32 reserved[2]; /* must be zero */
857};
858
859#define V4L2_SLICED_TELETEXT_B (0x0001)
860#define V4L2_SLICED_VPS (0x0400)
861#define V4L2_SLICED_CAPTION_525 (0x1000)
862#define V4L2_SLICED_WSS_625 (0x4000)
863
864#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525)
865#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625)
866
867struct v4l2_sliced_vbi_cap
868{
869 __u16 service_set;
870 /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field
871 service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field
872 (equals frame lines 313-336 for 625 line video
873 standards, 263-286 for 525 line standards) */
874 __u16 service_lines[2][24];
875 __u32 reserved[4]; /* must be 0 */
876};
877
878struct v4l2_sliced_vbi_data
879{
880 __u32 id;
881 __u32 field; /* 0: first field, 1: second field */
882 __u32 line; /* 1-23 */
883 __u32 reserved; /* must be 0 */
884 __u8 data[48];
885};
886#endif
828 887
829/* 888/*
830 * A G G R E G A T E S T R U C T U R E S 889 * A G G R E G A T E S T R U C T U R E S
@@ -837,10 +896,13 @@ struct v4l2_format
837 enum v4l2_buf_type type; 896 enum v4l2_buf_type type;
838 union 897 union
839 { 898 {
840 struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE 899 struct v4l2_pix_format pix; // V4L2_BUF_TYPE_VIDEO_CAPTURE
841 struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY 900 struct v4l2_window win; // V4L2_BUF_TYPE_VIDEO_OVERLAY
842 struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE 901 struct v4l2_vbi_format vbi; // V4L2_BUF_TYPE_VBI_CAPTURE
843 __u8 raw_data[200]; // user-defined 902#if 1
903 struct v4l2_sliced_vbi_format sliced; // V4L2_BUF_TYPE_SLICED_VBI_CAPTURE
904#endif
905 __u8 raw_data[200]; // user-defined
844 } fmt; 906 } fmt;
845}; 907};
846 908
@@ -916,6 +978,9 @@ struct v4l2_streamparm
916#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout) 978#define VIDIOC_ENUMAUDOUT _IOWR ('V', 66, struct v4l2_audioout)
917#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority) 979#define VIDIOC_G_PRIORITY _IOR ('V', 67, enum v4l2_priority)
918#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority) 980#define VIDIOC_S_PRIORITY _IOW ('V', 68, enum v4l2_priority)
981#if 1
982#define VIDIOC_G_SLICED_VBI_CAP _IOR ('V', 69, struct v4l2_sliced_vbi_cap)
983#endif
919 984
920/* for compatibility, will go away some day */ 985/* for compatibility, will go away some day */
921#define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int) 986#define VIDIOC_OVERLAY_OLD _IOWR ('V', 14, int)