diff options
Diffstat (limited to 'include')
47 files changed, 241 insertions, 80 deletions
diff --git a/include/asm-generic/pci-dma-compat.h b/include/asm-generic/pci-dma-compat.h index 37b3706226e7..1437b7da09b2 100644 --- a/include/asm-generic/pci-dma-compat.h +++ b/include/asm-generic/pci-dma-compat.h | |||
@@ -6,9 +6,6 @@ | |||
6 | 6 | ||
7 | #include <linux/dma-mapping.h> | 7 | #include <linux/dma-mapping.h> |
8 | 8 | ||
9 | /* note pci_set_dma_mask isn't here, since it's a public function | ||
10 | * exported from drivers/pci, use dma_supported instead */ | ||
11 | |||
12 | static inline int | 9 | static inline int |
13 | pci_dma_supported(struct pci_dev *hwdev, u64 mask) | 10 | pci_dma_supported(struct pci_dev *hwdev, u64 mask) |
14 | { | 11 | { |
@@ -104,4 +101,16 @@ pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr) | |||
104 | return dma_mapping_error(&pdev->dev, dma_addr); | 101 | return dma_mapping_error(&pdev->dev, dma_addr); |
105 | } | 102 | } |
106 | 103 | ||
104 | #ifdef CONFIG_PCI | ||
105 | static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) | ||
106 | { | ||
107 | return dma_set_mask(&dev->dev, mask); | ||
108 | } | ||
109 | |||
110 | static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) | ||
111 | { | ||
112 | return dma_set_coherent_mask(&dev->dev, mask); | ||
113 | } | ||
114 | #endif | ||
115 | |||
107 | #endif | 116 | #endif |
diff --git a/include/linux/acct.h b/include/linux/acct.h index 882dc7248766..3e4737fa6cce 100644 --- a/include/linux/acct.h +++ b/include/linux/acct.h | |||
@@ -121,16 +121,15 @@ struct vfsmount; | |||
121 | struct super_block; | 121 | struct super_block; |
122 | struct pacct_struct; | 122 | struct pacct_struct; |
123 | struct pid_namespace; | 123 | struct pid_namespace; |
124 | extern int acct_parm[]; /* for sysctl */ | ||
124 | extern void acct_auto_close_mnt(struct vfsmount *m); | 125 | extern void acct_auto_close_mnt(struct vfsmount *m); |
125 | extern void acct_auto_close(struct super_block *sb); | 126 | extern void acct_auto_close(struct super_block *sb); |
126 | extern void acct_init_pacct(struct pacct_struct *pacct); | ||
127 | extern void acct_collect(long exitcode, int group_dead); | 127 | extern void acct_collect(long exitcode, int group_dead); |
128 | extern void acct_process(void); | 128 | extern void acct_process(void); |
129 | extern void acct_exit_ns(struct pid_namespace *); | 129 | extern void acct_exit_ns(struct pid_namespace *); |
130 | #else | 130 | #else |
131 | #define acct_auto_close_mnt(x) do { } while (0) | 131 | #define acct_auto_close_mnt(x) do { } while (0) |
132 | #define acct_auto_close(x) do { } while (0) | 132 | #define acct_auto_close(x) do { } while (0) |
133 | #define acct_init_pacct(x) do { } while (0) | ||
134 | #define acct_collect(x,y) do { } while (0) | 133 | #define acct_collect(x,y) do { } while (0) |
135 | #define acct_process() do { } while (0) | 134 | #define acct_process() do { } while (0) |
136 | #define acct_exit_ns(ns) do { } while (0) | 135 | #define acct_exit_ns(ns) do { } while (0) |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index c9bbcb2a75ae..b8ad1ea99586 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
@@ -37,16 +37,24 @@ extern void cgroup_post_fork(struct task_struct *p); | |||
37 | extern void cgroup_exit(struct task_struct *p, int run_callbacks); | 37 | extern void cgroup_exit(struct task_struct *p, int run_callbacks); |
38 | extern int cgroupstats_build(struct cgroupstats *stats, | 38 | extern int cgroupstats_build(struct cgroupstats *stats, |
39 | struct dentry *dentry); | 39 | struct dentry *dentry); |
40 | extern int cgroup_load_subsys(struct cgroup_subsys *ss); | ||
41 | extern void cgroup_unload_subsys(struct cgroup_subsys *ss); | ||
40 | 42 | ||
41 | extern const struct file_operations proc_cgroup_operations; | 43 | extern const struct file_operations proc_cgroup_operations; |
42 | 44 | ||
43 | /* Define the enumeration of all cgroup subsystems */ | 45 | /* Define the enumeration of all builtin cgroup subsystems */ |
44 | #define SUBSYS(_x) _x ## _subsys_id, | 46 | #define SUBSYS(_x) _x ## _subsys_id, |
45 | enum cgroup_subsys_id { | 47 | enum cgroup_subsys_id { |
46 | #include <linux/cgroup_subsys.h> | 48 | #include <linux/cgroup_subsys.h> |
47 | CGROUP_SUBSYS_COUNT | 49 | CGROUP_BUILTIN_SUBSYS_COUNT |
48 | }; | 50 | }; |
49 | #undef SUBSYS | 51 | #undef SUBSYS |
52 | /* | ||
53 | * This define indicates the maximum number of subsystems that can be loaded | ||
54 | * at once. We limit to this many since cgroupfs_root has subsys_bits to keep | ||
55 | * track of all of them. | ||
56 | */ | ||
57 | #define CGROUP_SUBSYS_COUNT (BITS_PER_BYTE*sizeof(unsigned long)) | ||
50 | 58 | ||
51 | /* Per-subsystem/per-cgroup state maintained by the system. */ | 59 | /* Per-subsystem/per-cgroup state maintained by the system. */ |
52 | struct cgroup_subsys_state { | 60 | struct cgroup_subsys_state { |
@@ -76,6 +84,12 @@ enum { | |||
76 | CSS_REMOVED, /* This CSS is dead */ | 84 | CSS_REMOVED, /* This CSS is dead */ |
77 | }; | 85 | }; |
78 | 86 | ||
87 | /* Caller must verify that the css is not for root cgroup */ | ||
88 | static inline void __css_get(struct cgroup_subsys_state *css, int count) | ||
89 | { | ||
90 | atomic_add(count, &css->refcnt); | ||
91 | } | ||
92 | |||
79 | /* | 93 | /* |
80 | * Call css_get() to hold a reference on the css; it can be used | 94 | * Call css_get() to hold a reference on the css; it can be used |
81 | * for a reference obtained via: | 95 | * for a reference obtained via: |
@@ -87,7 +101,7 @@ static inline void css_get(struct cgroup_subsys_state *css) | |||
87 | { | 101 | { |
88 | /* We don't need to reference count the root state */ | 102 | /* We don't need to reference count the root state */ |
89 | if (!test_bit(CSS_ROOT, &css->flags)) | 103 | if (!test_bit(CSS_ROOT, &css->flags)) |
90 | atomic_inc(&css->refcnt); | 104 | __css_get(css, 1); |
91 | } | 105 | } |
92 | 106 | ||
93 | static inline bool css_is_removed(struct cgroup_subsys_state *css) | 107 | static inline bool css_is_removed(struct cgroup_subsys_state *css) |
@@ -118,11 +132,11 @@ static inline bool css_tryget(struct cgroup_subsys_state *css) | |||
118 | * css_get() or css_tryget() | 132 | * css_get() or css_tryget() |
119 | */ | 133 | */ |
120 | 134 | ||
121 | extern void __css_put(struct cgroup_subsys_state *css); | 135 | extern void __css_put(struct cgroup_subsys_state *css, int count); |
122 | static inline void css_put(struct cgroup_subsys_state *css) | 136 | static inline void css_put(struct cgroup_subsys_state *css) |
123 | { | 137 | { |
124 | if (!test_bit(CSS_ROOT, &css->flags)) | 138 | if (!test_bit(CSS_ROOT, &css->flags)) |
125 | __css_put(css); | 139 | __css_put(css, 1); |
126 | } | 140 | } |
127 | 141 | ||
128 | /* bits in struct cgroup flags field */ | 142 | /* bits in struct cgroup flags field */ |
@@ -221,6 +235,10 @@ struct cgroup { | |||
221 | 235 | ||
222 | /* For RCU-protected deletion */ | 236 | /* For RCU-protected deletion */ |
223 | struct rcu_head rcu_head; | 237 | struct rcu_head rcu_head; |
238 | |||
239 | /* List of events which userspace want to recieve */ | ||
240 | struct list_head event_list; | ||
241 | spinlock_t event_list_lock; | ||
224 | }; | 242 | }; |
225 | 243 | ||
226 | /* | 244 | /* |
@@ -258,7 +276,8 @@ struct css_set { | |||
258 | /* | 276 | /* |
259 | * Set of subsystem states, one for each subsystem. This array | 277 | * Set of subsystem states, one for each subsystem. This array |
260 | * is immutable after creation apart from the init_css_set | 278 | * is immutable after creation apart from the init_css_set |
261 | * during subsystem registration (at boot time). | 279 | * during subsystem registration (at boot time) and modular subsystem |
280 | * loading/unloading. | ||
262 | */ | 281 | */ |
263 | struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT]; | 282 | struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT]; |
264 | 283 | ||
@@ -363,6 +382,23 @@ struct cftype { | |||
363 | int (*trigger)(struct cgroup *cgrp, unsigned int event); | 382 | int (*trigger)(struct cgroup *cgrp, unsigned int event); |
364 | 383 | ||
365 | int (*release)(struct inode *inode, struct file *file); | 384 | int (*release)(struct inode *inode, struct file *file); |
385 | |||
386 | /* | ||
387 | * register_event() callback will be used to add new userspace | ||
388 | * waiter for changes related to the cftype. Implement it if | ||
389 | * you want to provide this functionality. Use eventfd_signal() | ||
390 | * on eventfd to send notification to userspace. | ||
391 | */ | ||
392 | int (*register_event)(struct cgroup *cgrp, struct cftype *cft, | ||
393 | struct eventfd_ctx *eventfd, const char *args); | ||
394 | /* | ||
395 | * unregister_event() callback will be called when userspace | ||
396 | * closes the eventfd or on cgroup removing. | ||
397 | * This callback must be implemented, if you want provide | ||
398 | * notification functionality. | ||
399 | */ | ||
400 | int (*unregister_event)(struct cgroup *cgrp, struct cftype *cft, | ||
401 | struct eventfd_ctx *eventfd); | ||
366 | }; | 402 | }; |
367 | 403 | ||
368 | struct cgroup_scanner { | 404 | struct cgroup_scanner { |
@@ -428,6 +464,8 @@ struct cgroup_subsys { | |||
428 | void (*destroy)(struct cgroup_subsys *ss, struct cgroup *cgrp); | 464 | void (*destroy)(struct cgroup_subsys *ss, struct cgroup *cgrp); |
429 | int (*can_attach)(struct cgroup_subsys *ss, struct cgroup *cgrp, | 465 | int (*can_attach)(struct cgroup_subsys *ss, struct cgroup *cgrp, |
430 | struct task_struct *tsk, bool threadgroup); | 466 | struct task_struct *tsk, bool threadgroup); |
467 | void (*cancel_attach)(struct cgroup_subsys *ss, struct cgroup *cgrp, | ||
468 | struct task_struct *tsk, bool threadgroup); | ||
431 | void (*attach)(struct cgroup_subsys *ss, struct cgroup *cgrp, | 469 | void (*attach)(struct cgroup_subsys *ss, struct cgroup *cgrp, |
432 | struct cgroup *old_cgrp, struct task_struct *tsk, | 470 | struct cgroup *old_cgrp, struct task_struct *tsk, |
433 | bool threadgroup); | 471 | bool threadgroup); |
@@ -472,6 +510,9 @@ struct cgroup_subsys { | |||
472 | /* used when use_id == true */ | 510 | /* used when use_id == true */ |
473 | struct idr idr; | 511 | struct idr idr; |
474 | spinlock_t id_lock; | 512 | spinlock_t id_lock; |
513 | |||
514 | /* should be defined only by modular subsystems */ | ||
515 | struct module *module; | ||
475 | }; | 516 | }; |
476 | 517 | ||
477 | #define SUBSYS(_x) extern struct cgroup_subsys _x ## _subsys; | 518 | #define SUBSYS(_x) extern struct cgroup_subsys _x ## _subsys; |
diff --git a/include/linux/compat.h b/include/linux/compat.h index ef68119a4fd2..717c691ecd8e 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -23,6 +23,7 @@ | |||
23 | typedef __compat_uid32_t compat_uid_t; | 23 | typedef __compat_uid32_t compat_uid_t; |
24 | typedef __compat_gid32_t compat_gid_t; | 24 | typedef __compat_gid32_t compat_gid_t; |
25 | 25 | ||
26 | struct compat_sel_arg_struct; | ||
26 | struct rusage; | 27 | struct rusage; |
27 | 28 | ||
28 | struct compat_itimerspec { | 29 | struct compat_itimerspec { |
@@ -249,6 +250,8 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, | |||
249 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | 250 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, |
250 | struct compat_timeval __user *tvp); | 251 | struct compat_timeval __user *tvp); |
251 | 252 | ||
253 | asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg); | ||
254 | |||
252 | asmlinkage long compat_sys_wait4(compat_pid_t pid, | 255 | asmlinkage long compat_sys_wait4(compat_pid_t pid, |
253 | compat_uint_t __user *stat_addr, int options, | 256 | compat_uint_t __user *stat_addr, int options, |
254 | struct compat_rusage __user *ru); | 257 | struct compat_rusage __user *ru); |
diff --git a/include/linux/coredump.h b/include/linux/coredump.h index b3c91d7cede4..8ba66a9d9022 100644 --- a/include/linux/coredump.h +++ b/include/linux/coredump.h | |||
@@ -16,6 +16,8 @@ static inline int dump_write(struct file *file, const void *addr, int nr) | |||
16 | 16 | ||
17 | static inline int dump_seek(struct file *file, loff_t off) | 17 | static inline int dump_seek(struct file *file, loff_t off) |
18 | { | 18 | { |
19 | int ret = 1; | ||
20 | |||
19 | if (file->f_op->llseek && file->f_op->llseek != no_llseek) { | 21 | if (file->f_op->llseek && file->f_op->llseek != no_llseek) { |
20 | if (file->f_op->llseek(file, off, SEEK_CUR) < 0) | 22 | if (file->f_op->llseek(file, off, SEEK_CUR) < 0) |
21 | return 0; | 23 | return 0; |
@@ -29,13 +31,15 @@ static inline int dump_seek(struct file *file, loff_t off) | |||
29 | 31 | ||
30 | if (n > PAGE_SIZE) | 32 | if (n > PAGE_SIZE) |
31 | n = PAGE_SIZE; | 33 | n = PAGE_SIZE; |
32 | if (!dump_write(file, buf, n)) | 34 | if (!dump_write(file, buf, n)) { |
33 | return 0; | 35 | ret = 0; |
36 | break; | ||
37 | } | ||
34 | off -= n; | 38 | off -= n; |
35 | } | 39 | } |
36 | free_page((unsigned long)buf); | 40 | free_page((unsigned long)buf); |
37 | } | 41 | } |
38 | return 1; | 42 | return ret; |
39 | } | 43 | } |
40 | 44 | ||
41 | #endif /* _LINUX_COREDUMP_H */ | 45 | #endif /* _LINUX_COREDUMP_H */ |
diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h index 5032b9a31ae7..ad5ec1d0475e 100644 --- a/include/linux/decompress/mm.h +++ b/include/linux/decompress/mm.h | |||
@@ -14,11 +14,21 @@ | |||
14 | 14 | ||
15 | /* Code active when included from pre-boot environment: */ | 15 | /* Code active when included from pre-boot environment: */ |
16 | 16 | ||
17 | /* | ||
18 | * Some architectures want to ensure there is no local data in their | ||
19 | * pre-boot environment, so that data can arbitarily relocated (via | ||
20 | * GOT references). This is achieved by defining STATIC_RW_DATA to | ||
21 | * be null. | ||
22 | */ | ||
23 | #ifndef STATIC_RW_DATA | ||
24 | #define STATIC_RW_DATA static | ||
25 | #endif | ||
26 | |||
17 | /* A trivial malloc implementation, adapted from | 27 | /* A trivial malloc implementation, adapted from |
18 | * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994 | 28 | * malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994 |
19 | */ | 29 | */ |
20 | static unsigned long malloc_ptr; | 30 | STATIC_RW_DATA unsigned long malloc_ptr; |
21 | static int malloc_count; | 31 | STATIC_RW_DATA int malloc_count; |
22 | 32 | ||
23 | static void *malloc(int size) | 33 | static void *malloc(int size) |
24 | { | 34 | { |
diff --git a/include/linux/dm9000.h b/include/linux/dm9000.h index c30879cf93bc..96e87693d933 100644 --- a/include/linux/dm9000.h +++ b/include/linux/dm9000.h | |||
@@ -23,7 +23,7 @@ | |||
23 | #define DM9000_PLATF_NO_EEPROM (0x0010) | 23 | #define DM9000_PLATF_NO_EEPROM (0x0010) |
24 | #define DM9000_PLATF_SIMPLE_PHY (0x0020) /* Use NSR to find LinkStatus */ | 24 | #define DM9000_PLATF_SIMPLE_PHY (0x0020) /* Use NSR to find LinkStatus */ |
25 | 25 | ||
26 | /* platfrom data for platfrom device structure's platfrom_data field */ | 26 | /* platform data for platform device structure's platform_data field */ |
27 | 27 | ||
28 | struct dm9000_plat_data { | 28 | struct dm9000_plat_data { |
29 | unsigned int flags; | 29 | unsigned int flags; |
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 91b761846061..ca32ed78b057 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h | |||
@@ -127,6 +127,14 @@ static inline u64 dma_get_mask(struct device *dev) | |||
127 | return DMA_BIT_MASK(32); | 127 | return DMA_BIT_MASK(32); |
128 | } | 128 | } |
129 | 129 | ||
130 | static inline int dma_set_coherent_mask(struct device *dev, u64 mask) | ||
131 | { | ||
132 | if (!dma_supported(dev, mask)) | ||
133 | return -EIO; | ||
134 | dev->coherent_dma_mask = mask; | ||
135 | return 0; | ||
136 | } | ||
137 | |||
130 | extern u64 dma_get_required_mask(struct device *dev); | 138 | extern u64 dma_get_required_mask(struct device *dev); |
131 | 139 | ||
132 | static inline unsigned int dma_get_max_seg_size(struct device *dev) | 140 | static inline unsigned int dma_get_max_seg_size(struct device *dev) |
@@ -232,4 +240,20 @@ struct dma_attrs; | |||
232 | 240 | ||
233 | #endif /* CONFIG_HAVE_DMA_ATTRS */ | 241 | #endif /* CONFIG_HAVE_DMA_ATTRS */ |
234 | 242 | ||
243 | #ifdef CONFIG_NEED_DMA_MAP_STATE | ||
244 | #define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME | ||
245 | #define DEFINE_DMA_UNMAP_LEN(LEN_NAME) __u32 LEN_NAME | ||
246 | #define dma_unmap_addr(PTR, ADDR_NAME) ((PTR)->ADDR_NAME) | ||
247 | #define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) (((PTR)->ADDR_NAME) = (VAL)) | ||
248 | #define dma_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME) | ||
249 | #define dma_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL)) | ||
250 | #else | ||
251 | #define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME) | ||
252 | #define DEFINE_DMA_UNMAP_LEN(LEN_NAME) | ||
253 | #define dma_unmap_addr(PTR, ADDR_NAME) (0) | ||
254 | #define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) | ||
255 | #define dma_unmap_len(PTR, LEN_NAME) (0) | ||
256 | #define dma_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | ||
257 | #endif | ||
258 | |||
235 | #endif | 259 | #endif |
diff --git a/include/linux/hil.h b/include/linux/hil.h index 13352d7d0caf..523785a9de70 100644 --- a/include/linux/hil.h +++ b/include/linux/hil.h | |||
@@ -168,14 +168,14 @@ enum hil_command { | |||
168 | HIL_CMD_PR6 = 0x45, /* Prompt6 */ | 168 | HIL_CMD_PR6 = 0x45, /* Prompt6 */ |
169 | HIL_CMD_PR7 = 0x46, /* Prompt7 */ | 169 | HIL_CMD_PR7 = 0x46, /* Prompt7 */ |
170 | HIL_CMD_PRM = 0x47, /* Prompt (General Purpose) */ | 170 | HIL_CMD_PRM = 0x47, /* Prompt (General Purpose) */ |
171 | HIL_CMD_AK1 = 0x48, /* Acknowlege1 */ | 171 | HIL_CMD_AK1 = 0x48, /* Acknowledge1 */ |
172 | HIL_CMD_AK2 = 0x49, /* Acknowlege2 */ | 172 | HIL_CMD_AK2 = 0x49, /* Acknowledge2 */ |
173 | HIL_CMD_AK3 = 0x4a, /* Acknowlege3 */ | 173 | HIL_CMD_AK3 = 0x4a, /* Acknowledge3 */ |
174 | HIL_CMD_AK4 = 0x4b, /* Acknowlege4 */ | 174 | HIL_CMD_AK4 = 0x4b, /* Acknowledge4 */ |
175 | HIL_CMD_AK5 = 0x4c, /* Acknowlege5 */ | 175 | HIL_CMD_AK5 = 0x4c, /* Acknowledge5 */ |
176 | HIL_CMD_AK6 = 0x4d, /* Acknowlege6 */ | 176 | HIL_CMD_AK6 = 0x4d, /* Acknowledge6 */ |
177 | HIL_CMD_AK7 = 0x4e, /* Acknowlege7 */ | 177 | HIL_CMD_AK7 = 0x4e, /* Acknowledge7 */ |
178 | HIL_CMD_ACK = 0x4f, /* Acknowlege (General Purpose) */ | 178 | HIL_CMD_ACK = 0x4f, /* Acknowledge (General Purpose) */ |
179 | 179 | ||
180 | /* 0x50 to 0x78 reserved for future use */ | 180 | /* 0x50 to 0x78 reserved for future use */ |
181 | /* 0x80 to 0xEF device-specific commands */ | 181 | /* 0x80 to 0xEF device-specific commands */ |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index abec69b63d7e..b1ed1cd8e2a8 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -32,14 +32,6 @@ extern struct fs_struct init_fs; | |||
32 | } | 32 | } |
33 | 33 | ||
34 | extern struct nsproxy init_nsproxy; | 34 | extern struct nsproxy init_nsproxy; |
35 | #define INIT_NSPROXY(nsproxy) { \ | ||
36 | .pid_ns = &init_pid_ns, \ | ||
37 | .count = ATOMIC_INIT(1), \ | ||
38 | .uts_ns = &init_uts_ns, \ | ||
39 | .mnt_ns = NULL, \ | ||
40 | INIT_NET_NS(net_ns) \ | ||
41 | INIT_IPC_NS(ipc_ns) \ | ||
42 | } | ||
43 | 35 | ||
44 | #define INIT_SIGHAND(sighand) { \ | 36 | #define INIT_SIGHAND(sighand) { \ |
45 | .count = ATOMIC_INIT(1), \ | 37 | .count = ATOMIC_INIT(1), \ |
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index 1195a806fe0c..a0bb301afac0 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
@@ -42,7 +42,7 @@ struct io_context { | |||
42 | unsigned short ioprio; | 42 | unsigned short ioprio; |
43 | unsigned short ioprio_changed; | 43 | unsigned short ioprio_changed; |
44 | 44 | ||
45 | #ifdef CONFIG_BLK_CGROUP | 45 | #if defined(CONFIG_BLK_CGROUP) || defined(CONFIG_BLK_CGROUP_MODULE) |
46 | unsigned short cgroup_changed; | 46 | unsigned short cgroup_changed; |
47 | #endif | 47 | #endif |
48 | 48 | ||
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index 07baa38bce37..51952989ad42 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h | |||
@@ -62,11 +62,6 @@ extern struct ipc_namespace init_ipc_ns; | |||
62 | extern atomic_t nr_ipc_ns; | 62 | extern atomic_t nr_ipc_ns; |
63 | 63 | ||
64 | extern spinlock_t mq_lock; | 64 | extern spinlock_t mq_lock; |
65 | #if defined(CONFIG_POSIX_MQUEUE) || defined(CONFIG_SYSVIPC) | ||
66 | #define INIT_IPC_NS(ns) .ns = &init_ipc_ns, | ||
67 | #else | ||
68 | #define INIT_IPC_NS(ns) | ||
69 | #endif | ||
70 | 65 | ||
71 | #ifdef CONFIG_SYSVIPC | 66 | #ifdef CONFIG_SYSVIPC |
72 | extern int register_ipcns_notifier(struct ipc_namespace *); | 67 | extern int register_ipcns_notifier(struct ipc_namespace *); |
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index f7c9c75a2775..4b48318ac542 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h | |||
@@ -39,7 +39,6 @@ | |||
39 | #include <linux/module.h> | 39 | #include <linux/module.h> |
40 | #include <linux/device.h> | 40 | #include <linux/device.h> |
41 | #include <linux/platform_device.h> | 41 | #include <linux/platform_device.h> |
42 | #include <linux/ipmi_smi.h> | ||
43 | 42 | ||
44 | /* This files describes the interface for IPMI system management interface | 43 | /* This files describes the interface for IPMI system management interface |
45 | drivers to bind into the IPMI message handler. */ | 44 | drivers to bind into the IPMI message handler. */ |
diff --git a/include/linux/kmod.h b/include/linux/kmod.h index 384ca8bbf1ac..facb27fe7de0 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h | |||
@@ -27,6 +27,7 @@ | |||
27 | #define KMOD_PATH_LEN 256 | 27 | #define KMOD_PATH_LEN 256 |
28 | 28 | ||
29 | #ifdef CONFIG_MODULES | 29 | #ifdef CONFIG_MODULES |
30 | extern char modprobe_path[]; /* for sysctl */ | ||
30 | /* modprobe exit status on success, -ve on error. Return value | 31 | /* modprobe exit status on success, -ve on error. Return value |
31 | * usually useless though. */ | 32 | * usually useless though. */ |
32 | extern int __request_module(bool wait, const char *name, ...) \ | 33 | extern int __request_module(bool wait, const char *name, ...) \ |
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h index 10206a87da19..a03977a96d7e 100644 --- a/include/linux/lockdep.h +++ b/include/linux/lockdep.h | |||
@@ -12,6 +12,10 @@ | |||
12 | struct task_struct; | 12 | struct task_struct; |
13 | struct lockdep_map; | 13 | struct lockdep_map; |
14 | 14 | ||
15 | /* for sysctl */ | ||
16 | extern int prove_locking; | ||
17 | extern int lock_stat; | ||
18 | |||
15 | #ifdef CONFIG_LOCKDEP | 19 | #ifdef CONFIG_LOCKDEP |
16 | 20 | ||
17 | #include <linux/linkage.h> | 21 | #include <linux/linkage.h> |
diff --git a/include/linux/lru_cache.h b/include/linux/lru_cache.h index 3a2b2d9b0472..de48d167568b 100644 --- a/include/linux/lru_cache.h +++ b/include/linux/lru_cache.h | |||
@@ -64,7 +64,7 @@ For crash recovery after replication node failure, | |||
64 | usually the condition is softened to regions that _may_ have been target of | 64 | usually the condition is softened to regions that _may_ have been target of |
65 | in-flight WRITE IO, e.g. by only lazily clearing the on-disk write-intent | 65 | in-flight WRITE IO, e.g. by only lazily clearing the on-disk write-intent |
66 | bitmap, trading frequency of meta data transactions against amount of | 66 | bitmap, trading frequency of meta data transactions against amount of |
67 | (possibly unneccessary) resync traffic. | 67 | (possibly unnecessary) resync traffic. |
68 | 68 | ||
69 | If we set a hard limit on the area that may be "hot" at any given time, we | 69 | If we set a hard limit on the area that may be "hot" at any given time, we |
70 | limit the amount of resync traffic needed for crash recovery. | 70 | limit the amount of resync traffic needed for crash recovery. |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 1f9b119f4ace..44301c6affa8 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -124,7 +124,6 @@ static inline bool mem_cgroup_disabled(void) | |||
124 | return false; | 124 | return false; |
125 | } | 125 | } |
126 | 126 | ||
127 | extern bool mem_cgroup_oom_called(struct task_struct *task); | ||
128 | void mem_cgroup_update_file_mapped(struct page *page, int val); | 127 | void mem_cgroup_update_file_mapped(struct page *page, int val); |
129 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | 128 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, |
130 | gfp_t gfp_mask, int nid, | 129 | gfp_t gfp_mask, int nid, |
@@ -258,11 +257,6 @@ static inline bool mem_cgroup_disabled(void) | |||
258 | return true; | 257 | return true; |
259 | } | 258 | } |
260 | 259 | ||
261 | static inline bool mem_cgroup_oom_called(struct task_struct *task) | ||
262 | { | ||
263 | return false; | ||
264 | } | ||
265 | |||
266 | static inline int | 260 | static inline int |
267 | mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg) | 261 | mem_cgroup_inactive_anon_is_low(struct mem_cgroup *memcg) |
268 | { | 262 | { |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 3899395a03de..e70f21beb4b4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -971,7 +971,13 @@ static inline void setmax_mm_hiwater_rss(unsigned long *maxrss, | |||
971 | *maxrss = hiwater_rss; | 971 | *maxrss = hiwater_rss; |
972 | } | 972 | } |
973 | 973 | ||
974 | #if defined(SPLIT_RSS_COUNTING) | ||
974 | void sync_mm_rss(struct task_struct *task, struct mm_struct *mm); | 975 | void sync_mm_rss(struct task_struct *task, struct mm_struct *mm); |
976 | #else | ||
977 | static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm) | ||
978 | { | ||
979 | } | ||
980 | #endif | ||
975 | 981 | ||
976 | /* | 982 | /* |
977 | * A callback you can register to apply pressure to ageable caches. | 983 | * A callback you can register to apply pressure to ageable caches. |
@@ -1459,5 +1465,7 @@ extern void shake_page(struct page *p, int access); | |||
1459 | extern atomic_long_t mce_bad_pages; | 1465 | extern atomic_long_t mce_bad_pages; |
1460 | extern int soft_offline_page(struct page *page, int flags); | 1466 | extern int soft_offline_page(struct page *page, int flags); |
1461 | 1467 | ||
1468 | extern void dump_page(struct page *page); | ||
1469 | |||
1462 | #endif /* __KERNEL__ */ | 1470 | #endif /* __KERNEL__ */ |
1463 | #endif /* _LINUX_MM_H */ | 1471 | #endif /* _LINUX_MM_H */ |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 048b46270aa5..b8bb9a6a1f37 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
@@ -203,7 +203,7 @@ enum { | |||
203 | NR_MM_COUNTERS | 203 | NR_MM_COUNTERS |
204 | }; | 204 | }; |
205 | 205 | ||
206 | #if USE_SPLIT_PTLOCKS | 206 | #if USE_SPLIT_PTLOCKS && defined(CONFIG_MMU) |
207 | #define SPLIT_RSS_COUNTING | 207 | #define SPLIT_RSS_COUNTING |
208 | struct mm_rss_stat { | 208 | struct mm_rss_stat { |
209 | atomic_long_t count[NR_MM_COUNTERS]; | 209 | atomic_long_t count[NR_MM_COUNTERS]; |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index bc209d8b7b5c..cf9e458e96b0 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -342,7 +342,7 @@ struct zone { | |||
342 | * prev_priority holds the scanning priority for this zone. It is | 342 | * prev_priority holds the scanning priority for this zone. It is |
343 | * defined as the scanning priority at which we achieved our reclaim | 343 | * defined as the scanning priority at which we achieved our reclaim |
344 | * target at the previous try_to_free_pages() or balance_pgdat() | 344 | * target at the previous try_to_free_pages() or balance_pgdat() |
345 | * invokation. | 345 | * invocation. |
346 | * | 346 | * |
347 | * We use prev_priority as a measure of how much stress page reclaim is | 347 | * We use prev_priority as a measure of how much stress page reclaim is |
348 | * under - it drives the swappiness decision: whether to unmap mapped | 348 | * under - it drives the swappiness decision: whether to unmap mapped |
diff --git a/include/linux/module.h b/include/linux/module.h index dd618eb026aa..5e869ffd34aa 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -175,6 +175,7 @@ struct notifier_block; | |||
175 | 175 | ||
176 | #ifdef CONFIG_MODULES | 176 | #ifdef CONFIG_MODULES |
177 | 177 | ||
178 | extern int modules_disabled; /* for sysctl */ | ||
178 | /* Get/put a kernel symbol (calls must be symmetric) */ | 179 | /* Get/put a kernel symbol (calls must be symmetric) */ |
179 | void *__symbol_get(const char *symbol); | 180 | void *__symbol_get(const char *symbol); |
180 | void *__symbol_get_gpl(const char *symbol); | 181 | void *__symbol_get_gpl(const char *symbol); |
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index ce38f1caa5e1..34066e65fdeb 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h | |||
@@ -15,6 +15,7 @@ | |||
15 | #define MSDOS_DPB_BITS 4 /* log2(MSDOS_DPB) */ | 15 | #define MSDOS_DPB_BITS 4 /* log2(MSDOS_DPB) */ |
16 | #define MSDOS_DPS (SECTOR_SIZE / sizeof(struct msdos_dir_entry)) | 16 | #define MSDOS_DPS (SECTOR_SIZE / sizeof(struct msdos_dir_entry)) |
17 | #define MSDOS_DPS_BITS 4 /* log2(MSDOS_DPS) */ | 17 | #define MSDOS_DPS_BITS 4 /* log2(MSDOS_DPS) */ |
18 | #define MSDOS_LONGNAME 256 /* maximum name length */ | ||
18 | #define CF_LE_W(v) le16_to_cpu(v) | 19 | #define CF_LE_W(v) le16_to_cpu(v) |
19 | #define CF_LE_L(v) le32_to_cpu(v) | 20 | #define CF_LE_L(v) le32_to_cpu(v) |
20 | #define CT_LE_W(v) cpu_to_le16(v) | 21 | #define CT_LE_W(v) cpu_to_le16(v) |
@@ -47,8 +48,8 @@ | |||
47 | #define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */ | 48 | #define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */ |
48 | #define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG) | 49 | #define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG) |
49 | 50 | ||
51 | #define FAT_LFN_LEN 255 /* maximum long name length */ | ||
50 | #define MSDOS_NAME 11 /* maximum name length */ | 52 | #define MSDOS_NAME 11 /* maximum name length */ |
51 | #define MSDOS_LONGNAME 256 /* maximum name length */ | ||
52 | #define MSDOS_SLOTS 21 /* max # of slots for short and long names */ | 53 | #define MSDOS_SLOTS 21 /* max # of slots for short and long names */ |
53 | #define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */ | 54 | #define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */ |
54 | #define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */ | 55 | #define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */ |
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h index c4fa64b585ff..dba35e413371 100644 --- a/include/linux/nodemask.h +++ b/include/linux/nodemask.h | |||
@@ -483,7 +483,7 @@ static inline int num_node_state(enum node_states state) | |||
483 | type *name = kmalloc(sizeof(*name), gfp_flags) | 483 | type *name = kmalloc(sizeof(*name), gfp_flags) |
484 | #define NODEMASK_FREE(m) kfree(m) | 484 | #define NODEMASK_FREE(m) kfree(m) |
485 | #else | 485 | #else |
486 | #define NODEMASK_ALLOC(type, name, gfp_flags) type _name, *name = &_name | 486 | #define NODEMASK_ALLOC(type, name, gfp_flags) type _##name, *name = &_##name |
487 | #define NODEMASK_FREE(m) do {} while (0) | 487 | #define NODEMASK_FREE(m) do {} while (0) |
488 | #endif | 488 | #endif |
489 | 489 | ||
diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h index b0e4eb126236..30b08136fdf3 100644 --- a/include/linux/page_cgroup.h +++ b/include/linux/page_cgroup.h | |||
@@ -118,6 +118,8 @@ static inline void __init page_cgroup_init_flatmem(void) | |||
118 | #include <linux/swap.h> | 118 | #include <linux/swap.h> |
119 | 119 | ||
120 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP | 120 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP |
121 | extern unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, | ||
122 | unsigned short old, unsigned short new); | ||
121 | extern unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id); | 123 | extern unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id); |
122 | extern unsigned short lookup_swap_cgroup(swp_entry_t ent); | 124 | extern unsigned short lookup_swap_cgroup(swp_entry_t ent); |
123 | extern int swap_cgroup_swapon(int type, unsigned long max_pages); | 125 | extern int swap_cgroup_swapon(int type, unsigned long max_pages); |
diff --git a/include/linux/pci-dma.h b/include/linux/pci-dma.h new file mode 100644 index 000000000000..549a041f9c08 --- /dev/null +++ b/include/linux/pci-dma.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _LINUX_PCI_DMA_H | ||
2 | #define _LINUX_PCI_DMA_H | ||
3 | |||
4 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) DEFINE_DMA_UNMAP_ADDR(ADDR_NAME); | ||
5 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) DEFINE_DMA_UNMAP_LEN(LEN_NAME); | ||
6 | #define pci_unmap_addr dma_unmap_addr | ||
7 | #define pci_unmap_addr_set dma_unmap_addr_set | ||
8 | #define pci_unmap_len dma_unmap_len | ||
9 | #define pci_unmap_len_set dma_unmap_len_set | ||
10 | |||
11 | #endif | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index cd5809a5963e..a788fa12ff31 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -769,8 +769,6 @@ int pci_try_set_mwi(struct pci_dev *dev); | |||
769 | void pci_clear_mwi(struct pci_dev *dev); | 769 | void pci_clear_mwi(struct pci_dev *dev); |
770 | void pci_intx(struct pci_dev *dev, int enable); | 770 | void pci_intx(struct pci_dev *dev, int enable); |
771 | void pci_msi_off(struct pci_dev *dev); | 771 | void pci_msi_off(struct pci_dev *dev); |
772 | int pci_set_dma_mask(struct pci_dev *dev, u64 mask); | ||
773 | int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask); | ||
774 | int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size); | 772 | int pci_set_dma_max_seg_size(struct pci_dev *dev, unsigned int size); |
775 | int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask); | 773 | int pci_set_dma_seg_boundary(struct pci_dev *dev, unsigned long mask); |
776 | int pcix_get_max_mmrbc(struct pci_dev *dev); | 774 | int pcix_get_max_mmrbc(struct pci_dev *dev); |
@@ -904,6 +902,7 @@ int pci_set_vga_state(struct pci_dev *pdev, bool decode, | |||
904 | unsigned int command_bits, bool change_bridge); | 902 | unsigned int command_bits, bool change_bridge); |
905 | /* kmem_cache style wrapper around pci_alloc_consistent() */ | 903 | /* kmem_cache style wrapper around pci_alloc_consistent() */ |
906 | 904 | ||
905 | #include <linux/pci-dma.h> | ||
907 | #include <linux/dmapool.h> | 906 | #include <linux/dmapool.h> |
908 | 907 | ||
909 | #define pci_pool dma_pool | 908 | #define pci_pool dma_pool |
diff --git a/include/linux/poll.h b/include/linux/poll.h index 6673743946f7..600cc1fde64d 100644 --- a/include/linux/poll.h +++ b/include/linux/poll.h | |||
@@ -10,8 +10,10 @@ | |||
10 | #include <linux/wait.h> | 10 | #include <linux/wait.h> |
11 | #include <linux/string.h> | 11 | #include <linux/string.h> |
12 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
13 | #include <linux/sysctl.h> | ||
13 | #include <asm/uaccess.h> | 14 | #include <asm/uaccess.h> |
14 | 15 | ||
16 | extern struct ctl_table epoll_table[]; /* for sysctl */ | ||
15 | /* ~832 bytes of stack space used max in sys_select/sys_poll before allocating | 17 | /* ~832 bytes of stack space used max in sys_select/sys_poll before allocating |
16 | additional memory. */ | 18 | additional memory. */ |
17 | #define MAX_STACK_ALLOC 832 | 19 | #define MAX_STACK_ALLOC 832 |
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index c5eab89da51e..e1fb60729979 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h | |||
@@ -264,6 +264,9 @@ static inline void user_enable_single_step(struct task_struct *task) | |||
264 | static inline void user_disable_single_step(struct task_struct *task) | 264 | static inline void user_disable_single_step(struct task_struct *task) |
265 | { | 265 | { |
266 | } | 266 | } |
267 | #else | ||
268 | extern void user_enable_single_step(struct task_struct *); | ||
269 | extern void user_disable_single_step(struct task_struct *); | ||
267 | #endif /* arch_has_single_step */ | 270 | #endif /* arch_has_single_step */ |
268 | 271 | ||
269 | #ifndef arch_has_block_step | 272 | #ifndef arch_has_block_step |
@@ -291,6 +294,8 @@ static inline void user_enable_block_step(struct task_struct *task) | |||
291 | { | 294 | { |
292 | BUG(); /* This can never be called. */ | 295 | BUG(); /* This can never be called. */ |
293 | } | 296 | } |
297 | #else | ||
298 | extern void user_enable_block_step(struct task_struct *); | ||
294 | #endif /* arch_has_block_step */ | 299 | #endif /* arch_has_block_step */ |
295 | 300 | ||
296 | #ifdef ARCH_HAS_USER_SINGLE_STEP_INFO | 301 | #ifdef ARCH_HAS_USER_SINGLE_STEP_INFO |
diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h index 9c295411d01f..5210a5c60877 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h | |||
@@ -25,10 +25,10 @@ | |||
25 | 25 | ||
26 | Some example of insert and search follows here. The search is a plain | 26 | Some example of insert and search follows here. The search is a plain |
27 | normal search over an ordered tree. The insert instead must be implemented | 27 | normal search over an ordered tree. The insert instead must be implemented |
28 | int two steps: as first thing the code must insert the element in | 28 | in two steps: First, the code must insert the element in order as a red leaf |
29 | order as a red leaf in the tree, then the support library function | 29 | in the tree, and then the support library function rb_insert_color() must |
30 | rb_insert_color() must be called. Such function will do the | 30 | be called. Such function will do the not trivial work to rebalance the |
31 | not trivial work to rebalance the rbtree if necessary. | 31 | rbtree, if necessary. |
32 | 32 | ||
33 | ----------------------------------------------------------------------- | 33 | ----------------------------------------------------------------------- |
34 | static inline struct page * rb_search_page_cache(struct inode * inode, | 34 | static inline struct page * rb_search_page_cache(struct inode * inode, |
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index c84373626336..a005cac5e302 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -41,6 +41,10 @@ | |||
41 | #include <linux/lockdep.h> | 41 | #include <linux/lockdep.h> |
42 | #include <linux/completion.h> | 42 | #include <linux/completion.h> |
43 | 43 | ||
44 | #ifdef CONFIG_RCU_TORTURE_TEST | ||
45 | extern int rcutorture_runnable; /* for sysctl */ | ||
46 | #endif /* #ifdef CONFIG_RCU_TORTURE_TEST */ | ||
47 | |||
44 | /** | 48 | /** |
45 | * struct rcu_head - callback structure for use with RCU | 49 | * struct rcu_head - callback structure for use with RCU |
46 | * @next: next update requests in a list | 50 | * @next: next update requests in a list |
diff --git a/include/linux/reboot.h b/include/linux/reboot.h index 988e55fe649b..3005d5a7fce5 100644 --- a/include/linux/reboot.h +++ b/include/linux/reboot.h | |||
@@ -64,6 +64,7 @@ extern void kernel_restart(char *cmd); | |||
64 | extern void kernel_halt(void); | 64 | extern void kernel_halt(void); |
65 | extern void kernel_power_off(void); | 65 | extern void kernel_power_off(void); |
66 | 66 | ||
67 | extern int C_A_D; /* for sysctl */ | ||
67 | void ctrl_alt_del(void); | 68 | void ctrl_alt_del(void); |
68 | 69 | ||
69 | #define POWEROFF_CMD_PATH_LEN 256 | 70 | #define POWEROFF_CMD_PATH_LEN 256 |
diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 60f88a7fb13d..14dbc83ded20 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h | |||
@@ -238,6 +238,12 @@ static inline bool is_leap_year(unsigned int year) | |||
238 | return (!(year % 4) && (year % 100)) || !(year % 400); | 238 | return (!(year % 4) && (year % 100)) || !(year % 400); |
239 | } | 239 | } |
240 | 240 | ||
241 | #ifdef CONFIG_RTC_HCTOSYS | ||
242 | extern int rtc_hctosys_ret; | ||
243 | #else | ||
244 | #define rtc_hctosys_ret -ENODEV | ||
245 | #endif | ||
246 | |||
241 | #endif /* __KERNEL__ */ | 247 | #endif /* __KERNEL__ */ |
242 | 248 | ||
243 | #endif /* _LINUX_RTC_H_ */ | 249 | #endif /* _LINUX_RTC_H_ */ |
diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h index 281d8fd775e8..8d522ffeda33 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/plist.h> | 16 | #include <linux/plist.h> |
17 | #include <linux/spinlock_types.h> | 17 | #include <linux/spinlock_types.h> |
18 | 18 | ||
19 | extern int max_lock_depth; /* for sysctl */ | ||
20 | |||
19 | /** | 21 | /** |
20 | * The rt_mutex structure | 22 | * The rt_mutex structure |
21 | * | 23 | * |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 46c6f8d5dc06..8d70ff802da2 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1473,7 +1473,7 @@ struct task_struct { | |||
1473 | 1473 | ||
1474 | struct list_head *scm_work_list; | 1474 | struct list_head *scm_work_list; |
1475 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 1475 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
1476 | /* Index of current stored adress in ret_stack */ | 1476 | /* Index of current stored address in ret_stack */ |
1477 | int curr_ret_stack; | 1477 | int curr_ret_stack; |
1478 | /* Stack of return addresses for return function tracing */ | 1478 | /* Stack of return addresses for return function tracing */ |
1479 | struct ftrace_ret_stack *ret_stack; | 1479 | struct ftrace_ret_stack *ret_stack; |
@@ -2391,9 +2391,7 @@ void thread_group_cputimer(struct task_struct *tsk, struct task_cputime *times); | |||
2391 | 2391 | ||
2392 | static inline void thread_group_cputime_init(struct signal_struct *sig) | 2392 | static inline void thread_group_cputime_init(struct signal_struct *sig) |
2393 | { | 2393 | { |
2394 | sig->cputimer.cputime = INIT_CPUTIME; | ||
2395 | spin_lock_init(&sig->cputimer.lock); | 2394 | spin_lock_init(&sig->cputimer.lock); |
2396 | sig->cputimer.running = 0; | ||
2397 | } | 2395 | } |
2398 | 2396 | ||
2399 | static inline void thread_group_cputime_free(struct signal_struct *sig) | 2397 | static inline void thread_group_cputime_free(struct signal_struct *sig) |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 8c3dd36fe91a..78dd1e7120a9 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -491,9 +491,13 @@ uart_handle_dcd_change(struct uart_port *uport, unsigned int status) | |||
491 | { | 491 | { |
492 | struct uart_state *state = uport->state; | 492 | struct uart_state *state = uport->state; |
493 | struct tty_port *port = &state->port; | 493 | struct tty_port *port = &state->port; |
494 | struct tty_ldisc *ld = tty_ldisc_ref(port->tty); | ||
495 | struct timespec ts; | ||
494 | 496 | ||
495 | uport->icount.dcd++; | 497 | if (ld && ld->ops->dcd_change) |
498 | getnstimeofday(&ts); | ||
496 | 499 | ||
500 | uport->icount.dcd++; | ||
497 | #ifdef CONFIG_HARD_PPS | 501 | #ifdef CONFIG_HARD_PPS |
498 | if ((uport->flags & UPF_HARDPPS_CD) && status) | 502 | if ((uport->flags & UPF_HARDPPS_CD) && status) |
499 | hardpps(); | 503 | hardpps(); |
@@ -505,6 +509,11 @@ uart_handle_dcd_change(struct uart_port *uport, unsigned int status) | |||
505 | else if (port->tty) | 509 | else if (port->tty) |
506 | tty_hangup(port->tty); | 510 | tty_hangup(port->tty); |
507 | } | 511 | } |
512 | |||
513 | if (ld && ld->ops->dcd_change) | ||
514 | ld->ops->dcd_change(port->tty, status, &ts); | ||
515 | if (ld) | ||
516 | tty_ldisc_deref(ld); | ||
508 | } | 517 | } |
509 | 518 | ||
510 | /** | 519 | /** |
diff --git a/include/linux/signal.h b/include/linux/signal.h index ab9272cc270c..fcd2b14b1932 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -7,6 +7,8 @@ | |||
7 | #ifdef __KERNEL__ | 7 | #ifdef __KERNEL__ |
8 | #include <linux/list.h> | 8 | #include <linux/list.h> |
9 | 9 | ||
10 | /* for sysctl */ | ||
11 | extern int print_fatal_signals; | ||
10 | /* | 12 | /* |
11 | * Real Time signals may be queued. | 13 | * Real Time signals may be queued. |
12 | */ | 14 | */ |
diff --git a/include/linux/swap.h b/include/linux/swap.h index a2602a8207a6..1f59d9340c4d 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -355,6 +355,7 @@ static inline void disable_swap_token(void) | |||
355 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR | 355 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR |
356 | extern void | 356 | extern void |
357 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout); | 357 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout); |
358 | extern int mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep); | ||
358 | #else | 359 | #else |
359 | static inline void | 360 | static inline void |
360 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout) | 361 | mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout) |
@@ -485,6 +486,14 @@ mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent) | |||
485 | { | 486 | { |
486 | } | 487 | } |
487 | 488 | ||
489 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR | ||
490 | static inline int | ||
491 | mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep) | ||
492 | { | ||
493 | return 0; | ||
494 | } | ||
495 | #endif | ||
496 | |||
488 | #endif /* CONFIG_SWAP */ | 497 | #endif /* CONFIG_SWAP */ |
489 | #endif /* __KERNEL__*/ | 498 | #endif /* __KERNEL__*/ |
490 | #endif /* _LINUX_SWAP_H */ | 499 | #endif /* _LINUX_SWAP_H */ |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 8126f239edf0..44f2ad0e8825 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -23,6 +23,7 @@ struct kexec_segment; | |||
23 | struct linux_dirent; | 23 | struct linux_dirent; |
24 | struct linux_dirent64; | 24 | struct linux_dirent64; |
25 | struct list_head; | 25 | struct list_head; |
26 | struct mmap_arg_struct; | ||
26 | struct msgbuf; | 27 | struct msgbuf; |
27 | struct msghdr; | 28 | struct msghdr; |
28 | struct mmsghdr; | 29 | struct mmsghdr; |
@@ -30,10 +31,13 @@ struct msqid_ds; | |||
30 | struct new_utsname; | 31 | struct new_utsname; |
31 | struct nfsctl_arg; | 32 | struct nfsctl_arg; |
32 | struct __old_kernel_stat; | 33 | struct __old_kernel_stat; |
34 | struct oldold_utsname; | ||
35 | struct old_utsname; | ||
33 | struct pollfd; | 36 | struct pollfd; |
34 | struct rlimit; | 37 | struct rlimit; |
35 | struct rusage; | 38 | struct rusage; |
36 | struct sched_param; | 39 | struct sched_param; |
40 | struct sel_arg_struct; | ||
37 | struct semaphore; | 41 | struct semaphore; |
38 | struct sembuf; | 42 | struct sembuf; |
39 | struct shmid_ds; | 43 | struct shmid_ds; |
@@ -638,6 +642,7 @@ asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, | |||
638 | long timeout); | 642 | long timeout); |
639 | asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp, | 643 | asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp, |
640 | fd_set __user *exp, struct timeval __user *tvp); | 644 | fd_set __user *exp, struct timeval __user *tvp); |
645 | asmlinkage long sys_old_select(struct sel_arg_struct __user *arg); | ||
641 | asmlinkage long sys_epoll_create(int size); | 646 | asmlinkage long sys_epoll_create(int size); |
642 | asmlinkage long sys_epoll_create1(int flags); | 647 | asmlinkage long sys_epoll_create1(int flags); |
643 | asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, | 648 | asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, |
@@ -652,6 +657,8 @@ asmlinkage long sys_gethostname(char __user *name, int len); | |||
652 | asmlinkage long sys_sethostname(char __user *name, int len); | 657 | asmlinkage long sys_sethostname(char __user *name, int len); |
653 | asmlinkage long sys_setdomainname(char __user *name, int len); | 658 | asmlinkage long sys_setdomainname(char __user *name, int len); |
654 | asmlinkage long sys_newuname(struct new_utsname __user *name); | 659 | asmlinkage long sys_newuname(struct new_utsname __user *name); |
660 | asmlinkage long sys_uname(struct old_utsname __user *); | ||
661 | asmlinkage long sys_olduname(struct oldold_utsname __user *); | ||
655 | 662 | ||
656 | asmlinkage long sys_getrlimit(unsigned int resource, | 663 | asmlinkage long sys_getrlimit(unsigned int resource, |
657 | struct rlimit __user *rlim); | 664 | struct rlimit __user *rlim); |
@@ -681,6 +688,8 @@ asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg); | |||
681 | asmlinkage long sys_shmget(key_t key, size_t size, int flag); | 688 | asmlinkage long sys_shmget(key_t key, size_t size, int flag); |
682 | asmlinkage long sys_shmdt(char __user *shmaddr); | 689 | asmlinkage long sys_shmdt(char __user *shmaddr); |
683 | asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf); | 690 | asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf); |
691 | asmlinkage long sys_ipc(unsigned int call, int first, int second, | ||
692 | unsigned long third, void __user *ptr, long fifth); | ||
684 | 693 | ||
685 | asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr); | 694 | asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr); |
686 | asmlinkage long sys_mq_unlink(const char __user *name); | 695 | asmlinkage long sys_mq_unlink(const char __user *name); |
@@ -836,4 +845,6 @@ asmlinkage long sys_perf_event_open( | |||
836 | asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len, | 845 | asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len, |
837 | unsigned long prot, unsigned long flags, | 846 | unsigned long prot, unsigned long flags, |
838 | unsigned long fd, unsigned long pgoff); | 847 | unsigned long fd, unsigned long pgoff); |
848 | asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg); | ||
849 | |||
839 | #endif | 850 | #endif |
diff --git a/include/linux/taskstats_kern.h b/include/linux/taskstats_kern.h index 3398f4553269..b6523c1427ce 100644 --- a/include/linux/taskstats_kern.h +++ b/include/linux/taskstats_kern.h | |||
@@ -14,11 +14,6 @@ | |||
14 | extern struct kmem_cache *taskstats_cache; | 14 | extern struct kmem_cache *taskstats_cache; |
15 | extern struct mutex taskstats_exit_mutex; | 15 | extern struct mutex taskstats_exit_mutex; |
16 | 16 | ||
17 | static inline void taskstats_tgid_init(struct signal_struct *sig) | ||
18 | { | ||
19 | sig->stats = NULL; | ||
20 | } | ||
21 | |||
22 | static inline void taskstats_tgid_free(struct signal_struct *sig) | 17 | static inline void taskstats_tgid_free(struct signal_struct *sig) |
23 | { | 18 | { |
24 | if (sig->stats) | 19 | if (sig->stats) |
@@ -30,8 +25,6 @@ extern void taskstats_init_early(void); | |||
30 | #else | 25 | #else |
31 | static inline void taskstats_exit(struct task_struct *tsk, int group_dead) | 26 | static inline void taskstats_exit(struct task_struct *tsk, int group_dead) |
32 | {} | 27 | {} |
33 | static inline void taskstats_tgid_init(struct signal_struct *sig) | ||
34 | {} | ||
35 | static inline void taskstats_tgid_free(struct signal_struct *sig) | 28 | static inline void taskstats_tgid_free(struct signal_struct *sig) |
36 | {} | 29 | {} |
37 | static inline void taskstats_init_early(void) | 30 | static inline void taskstats_init_early(void) |
diff --git a/include/linux/tty.h b/include/linux/tty.h index d96e5882f129..568369a86306 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -514,6 +514,7 @@ extern void tty_ldisc_enable(struct tty_struct *tty); | |||
514 | 514 | ||
515 | /* n_tty.c */ | 515 | /* n_tty.c */ |
516 | extern struct tty_ldisc_ops tty_ldisc_N_TTY; | 516 | extern struct tty_ldisc_ops tty_ldisc_N_TTY; |
517 | extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops); | ||
517 | 518 | ||
518 | /* tty_audit.c */ | 519 | /* tty_audit.c */ |
519 | #ifdef CONFIG_AUDIT | 520 | #ifdef CONFIG_AUDIT |
diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h index 0c4ee9b88f85..526d66f066a3 100644 --- a/include/linux/tty_ldisc.h +++ b/include/linux/tty_ldisc.h | |||
@@ -99,6 +99,12 @@ | |||
99 | * cease I/O to the tty driver. Can sleep. The driver should | 99 | * cease I/O to the tty driver. Can sleep. The driver should |
100 | * seek to perform this action quickly but should wait until | 100 | * seek to perform this action quickly but should wait until |
101 | * any pending driver I/O is completed. | 101 | * any pending driver I/O is completed. |
102 | * | ||
103 | * void (*dcd_change)(struct tty_struct *tty, unsigned int status, | ||
104 | * struct timespec *ts) | ||
105 | * | ||
106 | * Tells the discipline that the DCD pin has changed its status and | ||
107 | * the relative timestamp. Pointer ts can be NULL. | ||
102 | */ | 108 | */ |
103 | 109 | ||
104 | #include <linux/fs.h> | 110 | #include <linux/fs.h> |
@@ -136,6 +142,8 @@ struct tty_ldisc_ops { | |||
136 | void (*receive_buf)(struct tty_struct *, const unsigned char *cp, | 142 | void (*receive_buf)(struct tty_struct *, const unsigned char *cp, |
137 | char *fp, int count); | 143 | char *fp, int count); |
138 | void (*write_wakeup)(struct tty_struct *); | 144 | void (*write_wakeup)(struct tty_struct *); |
145 | void (*dcd_change)(struct tty_struct *, unsigned int, | ||
146 | struct timespec *); | ||
139 | 147 | ||
140 | struct module *owner; | 148 | struct module *owner; |
141 | 149 | ||
diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h index f456534dcaf9..fd882261225e 100644 --- a/include/math-emu/op-common.h +++ b/include/math-emu/op-common.h | |||
@@ -29,7 +29,7 @@ | |||
29 | _FP_FRAC_DECL_##wc(X) | 29 | _FP_FRAC_DECL_##wc(X) |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * Finish truely unpacking a native fp value by classifying the kind | 32 | * Finish truly unpacking a native fp value by classifying the kind |
33 | * of fp value and normalizing both the exponent and the fraction. | 33 | * of fp value and normalizing both the exponent and the fraction. |
34 | */ | 34 | */ |
35 | 35 | ||
diff --git a/include/media/davinci/vpfe_capture.h b/include/media/davinci/vpfe_capture.h index d863e5e8426d..4314a5f6a087 100644 --- a/include/media/davinci/vpfe_capture.h +++ b/include/media/davinci/vpfe_capture.h | |||
@@ -165,7 +165,7 @@ struct vpfe_device { | |||
165 | u8 started; | 165 | u8 started; |
166 | /* | 166 | /* |
167 | * offset where second field starts from the starting of the | 167 | * offset where second field starts from the starting of the |
168 | * buffer for field seperated YCbCr formats | 168 | * buffer for field separated YCbCr formats |
169 | */ | 169 | */ |
170 | u32 field_off; | 170 | u32 field_off; |
171 | }; | 171 | }; |
diff --git a/include/net/irda/irttp.h b/include/net/irda/irttp.h index 0788c23d2828..11aee7a2972a 100644 --- a/include/net/irda/irttp.h +++ b/include/net/irda/irttp.h | |||
@@ -97,7 +97,7 @@ | |||
97 | #define TTP_MAX_SDU_SIZE 0x01 | 97 | #define TTP_MAX_SDU_SIZE 0x01 |
98 | 98 | ||
99 | /* | 99 | /* |
100 | * This structure contains all data assosiated with one instance of a TTP | 100 | * This structure contains all data associated with one instance of a TTP |
101 | * connection. | 101 | * connection. |
102 | */ | 102 | */ |
103 | struct tsap_cb { | 103 | struct tsap_cb { |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 82b7be4db89a..bd10a7908993 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -100,14 +100,9 @@ struct net { | |||
100 | extern struct net init_net; | 100 | extern struct net init_net; |
101 | 101 | ||
102 | #ifdef CONFIG_NET | 102 | #ifdef CONFIG_NET |
103 | #define INIT_NET_NS(net_ns) .net_ns = &init_net, | ||
104 | |||
105 | extern struct net *copy_net_ns(unsigned long flags, struct net *net_ns); | 103 | extern struct net *copy_net_ns(unsigned long flags, struct net *net_ns); |
106 | 104 | ||
107 | #else /* CONFIG_NET */ | 105 | #else /* CONFIG_NET */ |
108 | |||
109 | #define INIT_NET_NS(net_ns) | ||
110 | |||
111 | static inline struct net *copy_net_ns(unsigned long flags, struct net *net_ns) | 106 | static inline struct net *copy_net_ns(unsigned long flags, struct net *net_ns) |
112 | { | 107 | { |
113 | /* There is nothing to copy so this is a noop */ | 108 | /* There is nothing to copy so this is a noop */ |
diff --git a/include/scsi/sg.h b/include/scsi/sg.h index 934ae389671d..a9f3c6fc3f57 100644 --- a/include/scsi/sg.h +++ b/include/scsi/sg.h | |||
@@ -70,6 +70,9 @@ Major new features in SG 3.x driver (cf SG 2.x drivers) | |||
70 | (for the lk 2.2 series). | 70 | (for the lk 2.2 series). |
71 | */ | 71 | */ |
72 | 72 | ||
73 | #ifdef __KERNEL__ | ||
74 | extern int sg_big_buff; /* for sysctl */ | ||
75 | #endif | ||
73 | 76 | ||
74 | /* New interface introduced in the 3.x SG drivers follows */ | 77 | /* New interface introduced in the 3.x SG drivers follows */ |
75 | 78 | ||
diff --git a/include/video/broadsheetfb.h b/include/video/broadsheetfb.h index a758534c0272..548d28f4ec67 100644 --- a/include/video/broadsheetfb.h +++ b/include/video/broadsheetfb.h | |||
@@ -29,11 +29,19 @@ | |||
29 | #define BS_CMD_UPD_FULL 0x33 | 29 | #define BS_CMD_UPD_FULL 0x33 |
30 | #define BS_CMD_UPD_GDRV_CLR 0x37 | 30 | #define BS_CMD_UPD_GDRV_CLR 0x37 |
31 | 31 | ||
32 | /* Broadsheet register interface defines */ | ||
33 | #define BS_REG_REV 0x00 | ||
34 | #define BS_REG_PRC 0x02 | ||
35 | |||
32 | /* Broadsheet pin interface specific defines */ | 36 | /* Broadsheet pin interface specific defines */ |
33 | #define BS_CS 0x01 | 37 | #define BS_CS 0x01 |
34 | #define BS_DC 0x02 | 38 | #define BS_DC 0x02 |
35 | #define BS_WR 0x03 | 39 | #define BS_WR 0x03 |
36 | 40 | ||
41 | /* Broadsheet IO interface specific defines */ | ||
42 | #define BS_MMIO_CMD 0x01 | ||
43 | #define BS_MMIO_DATA 0x02 | ||
44 | |||
37 | /* struct used by broadsheet. board specific stuff comes from *board */ | 45 | /* struct used by broadsheet. board specific stuff comes from *board */ |
38 | struct broadsheetfb_par { | 46 | struct broadsheetfb_par { |
39 | struct fb_info *info; | 47 | struct fb_info *info; |
@@ -41,6 +49,8 @@ struct broadsheetfb_par { | |||
41 | void (*write_reg)(struct broadsheetfb_par *, u16 reg, u16 val); | 49 | void (*write_reg)(struct broadsheetfb_par *, u16 reg, u16 val); |
42 | u16 (*read_reg)(struct broadsheetfb_par *, u16 reg); | 50 | u16 (*read_reg)(struct broadsheetfb_par *, u16 reg); |
43 | wait_queue_head_t waitq; | 51 | wait_queue_head_t waitq; |
52 | int panel_index; | ||
53 | struct mutex io_lock; | ||
44 | }; | 54 | }; |
45 | 55 | ||
46 | /* board specific routines */ | 56 | /* board specific routines */ |
@@ -48,12 +58,17 @@ struct broadsheet_board { | |||
48 | struct module *owner; | 58 | struct module *owner; |
49 | int (*init)(struct broadsheetfb_par *); | 59 | int (*init)(struct broadsheetfb_par *); |
50 | int (*wait_for_rdy)(struct broadsheetfb_par *); | 60 | int (*wait_for_rdy)(struct broadsheetfb_par *); |
51 | void (*set_ctl)(struct broadsheetfb_par *, unsigned char, u8); | ||
52 | void (*set_hdb)(struct broadsheetfb_par *, u16); | ||
53 | u16 (*get_hdb)(struct broadsheetfb_par *); | ||
54 | void (*cleanup)(struct broadsheetfb_par *); | 61 | void (*cleanup)(struct broadsheetfb_par *); |
55 | int (*get_panel_type)(void); | 62 | int (*get_panel_type)(void); |
56 | int (*setup_irq)(struct fb_info *); | 63 | int (*setup_irq)(struct fb_info *); |
57 | }; | ||
58 | 64 | ||
65 | /* Functions for boards that use GPIO */ | ||
66 | void (*set_ctl)(struct broadsheetfb_par *, unsigned char, u8); | ||
67 | void (*set_hdb)(struct broadsheetfb_par *, u16); | ||
68 | u16 (*get_hdb)(struct broadsheetfb_par *); | ||
69 | |||
70 | /* Functions for boards that have specialized MMIO */ | ||
71 | void (*mmio_write)(struct broadsheetfb_par *, int type, u16); | ||
72 | u16 (*mmio_read)(struct broadsheetfb_par *); | ||
73 | }; | ||
59 | #endif | 74 | #endif |