diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2007-02-20 14:13:30 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-02-20 14:13:30 -0500 |
commit | 5a84d159061d914c8dd4aa372ac6e9529c2be453 (patch) | |
tree | 9b08af78085334af44414adafe0096276f8fe0ff /arch/um/include | |
parent | e80a0e6e7ccdf64575d4384cb4172860422f5b81 (diff) | |
parent | 7d477a04a619e90ee08724e8f2d8803c6bdfcef8 (diff) |
Merge ARM fixes
Diffstat (limited to 'arch/um/include')
-rw-r--r-- | arch/um/include/chan_kern.h | 5 | ||||
-rw-r--r-- | arch/um/include/chan_user.h | 21 | ||||
-rw-r--r-- | arch/um/include/kern_util.h | 5 | ||||
-rw-r--r-- | arch/um/include/line.h | 57 | ||||
-rw-r--r-- | arch/um/include/mconsole_kern.h | 17 | ||||
-rw-r--r-- | arch/um/include/net_kern.h | 14 | ||||
-rw-r--r-- | arch/um/include/os.h | 3 | ||||
-rw-r--r-- | arch/um/include/sigio.h | 11 | ||||
-rw-r--r-- | arch/um/include/tempfile.h | 10 | ||||
-rw-r--r-- | arch/um/include/umid.h | 22 | ||||
-rw-r--r-- | arch/um/include/user_util.h | 2 |
11 files changed, 46 insertions, 121 deletions
diff --git a/arch/um/include/chan_kern.h b/arch/um/include/chan_kern.h index 9003a343e148..c4b41bb1035f 100644 --- a/arch/um/include/chan_kern.h +++ b/arch/um/include/chan_kern.h | |||
@@ -30,14 +30,13 @@ struct chan { | |||
30 | extern void chan_interrupt(struct list_head *chans, struct delayed_work *task, | 30 | extern void chan_interrupt(struct list_head *chans, struct delayed_work *task, |
31 | struct tty_struct *tty, int irq); | 31 | struct tty_struct *tty, int irq); |
32 | extern int parse_chan_pair(char *str, struct line *line, int device, | 32 | extern int parse_chan_pair(char *str, struct line *line, int device, |
33 | const struct chan_opts *opts); | 33 | const struct chan_opts *opts, char **error_out); |
34 | extern int open_chan(struct list_head *chans); | 34 | extern int open_chan(struct list_head *chans); |
35 | extern int write_chan(struct list_head *chans, const char *buf, int len, | 35 | extern int write_chan(struct list_head *chans, const char *buf, int len, |
36 | int write_irq); | 36 | int write_irq); |
37 | extern int console_write_chan(struct list_head *chans, const char *buf, | 37 | extern int console_write_chan(struct list_head *chans, const char *buf, |
38 | int len); | 38 | int len); |
39 | extern int console_open_chan(struct line *line, struct console *co, | 39 | extern int console_open_chan(struct line *line, struct console *co); |
40 | const struct chan_opts *opts); | ||
41 | extern void deactivate_chan(struct list_head *chans, int irq); | 40 | extern void deactivate_chan(struct list_head *chans, int irq); |
42 | extern void reactivate_chan(struct list_head *chans, int irq); | 41 | extern void reactivate_chan(struct list_head *chans, int irq); |
43 | extern void chan_enable_winch(struct list_head *chans, struct tty_struct *tty); | 42 | extern void chan_enable_winch(struct list_head *chans, struct tty_struct *tty); |
diff --git a/arch/um/include/chan_user.h b/arch/um/include/chan_user.h index a795547a1dbd..38f16d812e7c 100644 --- a/arch/um/include/chan_user.h +++ b/arch/um/include/chan_user.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com) | 2 | * Copyright (C) 2000, 2001 Jeff Dike (jdike@karaya.com) |
3 | * Licensed under the GPL | 3 | * Licensed under the GPL |
4 | */ | 4 | */ |
@@ -9,11 +9,11 @@ | |||
9 | #include "init.h" | 9 | #include "init.h" |
10 | 10 | ||
11 | struct chan_opts { | 11 | struct chan_opts { |
12 | void (*announce)(char *dev_name, int dev); | 12 | void (*const announce)(char *dev_name, int dev); |
13 | char *xterm_title; | 13 | char *xterm_title; |
14 | int raw; | 14 | const int raw; |
15 | unsigned long tramp_stack; | 15 | const unsigned long tramp_stack; |
16 | int in_kernel; | 16 | const int in_kernel; |
17 | }; | 17 | }; |
18 | 18 | ||
19 | enum chan_init_pri { INIT_STATIC, INIT_ALL, INIT_ONE }; | 19 | enum chan_init_pri { INIT_STATIC, INIT_ALL, INIT_ONE }; |
@@ -54,14 +54,3 @@ __uml_help(fn, prefix "[0-9]*=<channel description>\n" \ | |||
54 | ); | 54 | ); |
55 | 55 | ||
56 | #endif | 56 | #endif |
57 | |||
58 | /* | ||
59 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
60 | * Emacs will notice this stuff at the end of the file and automatically | ||
61 | * adjust the settings for this buffer only. This must remain at the end | ||
62 | * of the file. | ||
63 | * --------------------------------------------------------------------------- | ||
64 | * Local variables: | ||
65 | * c-file-style: "linux" | ||
66 | * End: | ||
67 | */ | ||
diff --git a/arch/um/include/kern_util.h b/arch/um/include/kern_util.h index cec9fcc57bf5..173af029d12b 100644 --- a/arch/um/include/kern_util.h +++ b/arch/um/include/kern_util.h | |||
@@ -61,7 +61,6 @@ extern int set_signals(int enable); | |||
61 | extern void force_sigbus(void); | 61 | extern void force_sigbus(void); |
62 | extern int pid_to_processor_id(int pid); | 62 | extern int pid_to_processor_id(int pid); |
63 | extern void deliver_signals(void *t); | 63 | extern void deliver_signals(void *t); |
64 | extern int next_syscall_index(int max); | ||
65 | extern int next_trap_index(int max); | 64 | extern int next_trap_index(int max); |
66 | extern void default_idle(void); | 65 | extern void default_idle(void); |
67 | extern void finish_fork(void); | 66 | extern void finish_fork(void); |
@@ -88,7 +87,6 @@ extern void timer_irq(union uml_pt_regs *regs); | |||
88 | extern void unprotect_stack(unsigned long stack); | 87 | extern void unprotect_stack(unsigned long stack); |
89 | extern void do_uml_exitcalls(void); | 88 | extern void do_uml_exitcalls(void); |
90 | extern int attach_debugger(int idle_pid, int pid, int stop); | 89 | extern int attach_debugger(int idle_pid, int pid, int stop); |
91 | extern void bad_segv(struct faultinfo fi, unsigned long ip); | ||
92 | extern int config_gdb(char *str); | 90 | extern int config_gdb(char *str); |
93 | extern int remove_gdb(void); | 91 | extern int remove_gdb(void); |
94 | extern char *uml_strdup(char *string); | 92 | extern char *uml_strdup(char *string); |
@@ -104,8 +102,6 @@ extern int clear_user_proc(void *buf, int size); | |||
104 | extern int copy_to_user_proc(void *to, void *from, int size); | 102 | extern int copy_to_user_proc(void *to, void *from, int size); |
105 | extern int copy_from_user_proc(void *to, void *from, int size); | 103 | extern int copy_from_user_proc(void *to, void *from, int size); |
106 | extern int strlen_user_proc(char *str); | 104 | extern int strlen_user_proc(char *str); |
107 | extern void bus_handler(int sig, union uml_pt_regs *regs); | ||
108 | extern void winch(int sig, union uml_pt_regs *regs); | ||
109 | extern long execute_syscall(void *r); | 105 | extern long execute_syscall(void *r); |
110 | extern int smp_sigio_handler(void); | 106 | extern int smp_sigio_handler(void); |
111 | extern void *get_current(void); | 107 | extern void *get_current(void); |
@@ -120,7 +116,6 @@ extern void time_init_kern(void); | |||
120 | 116 | ||
121 | /* Are we disallowed to sleep? Used to choose between GFP_KERNEL and GFP_ATOMIC. */ | 117 | /* Are we disallowed to sleep? Used to choose between GFP_KERNEL and GFP_ATOMIC. */ |
122 | extern int __cant_sleep(void); | 118 | extern int __cant_sleep(void); |
123 | extern void segv_handler(int sig, union uml_pt_regs *regs); | ||
124 | extern void sigio_handler(int sig, union uml_pt_regs *regs); | 119 | extern void sigio_handler(int sig, union uml_pt_regs *regs); |
125 | 120 | ||
126 | #endif | 121 | #endif |
diff --git a/arch/um/include/line.h b/arch/um/include/line.h index 5f232ae89fbb..1223f2c844b4 100644 --- a/arch/um/include/line.h +++ b/arch/um/include/line.h | |||
@@ -11,36 +11,37 @@ | |||
11 | #include "linux/tty.h" | 11 | #include "linux/tty.h" |
12 | #include "linux/interrupt.h" | 12 | #include "linux/interrupt.h" |
13 | #include "linux/spinlock.h" | 13 | #include "linux/spinlock.h" |
14 | #include "linux/mutex.h" | ||
14 | #include "chan_user.h" | 15 | #include "chan_user.h" |
15 | #include "mconsole_kern.h" | 16 | #include "mconsole_kern.h" |
16 | 17 | ||
18 | /* There's only one modifiable field in this - .mc.list */ | ||
17 | struct line_driver { | 19 | struct line_driver { |
18 | char *name; | 20 | const char *name; |
19 | char *device_name; | 21 | const char *device_name; |
20 | short major; | 22 | const short major; |
21 | short minor_start; | 23 | const short minor_start; |
22 | short type; | 24 | const short type; |
23 | short subtype; | 25 | const short subtype; |
24 | int read_irq; | 26 | const int read_irq; |
25 | char *read_irq_name; | 27 | const char *read_irq_name; |
26 | int write_irq; | 28 | const int write_irq; |
27 | char *write_irq_name; | 29 | const char *write_irq_name; |
28 | char *symlink_from; | ||
29 | char *symlink_to; | ||
30 | struct mc_device mc; | 30 | struct mc_device mc; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | struct line { | 33 | struct line { |
34 | struct tty_struct *tty; | 34 | struct tty_struct *tty; |
35 | spinlock_t count_lock; | ||
36 | int valid; | ||
37 | |||
35 | char *init_str; | 38 | char *init_str; |
36 | int init_pri; | 39 | int init_pri; |
37 | struct list_head chan_list; | 40 | struct list_head chan_list; |
38 | int valid; | 41 | |
39 | int count; | ||
40 | int throttled; | ||
41 | /*This lock is actually, mostly, local to*/ | 42 | /*This lock is actually, mostly, local to*/ |
42 | spinlock_t lock; | 43 | spinlock_t lock; |
43 | 44 | int throttled; | |
44 | /* Yes, this is a real circular buffer. | 45 | /* Yes, this is a real circular buffer. |
45 | * XXX: And this should become a struct kfifo! | 46 | * XXX: And this should become a struct kfifo! |
46 | * | 47 | * |
@@ -57,22 +58,17 @@ struct line { | |||
57 | }; | 58 | }; |
58 | 59 | ||
59 | #define LINE_INIT(str, d) \ | 60 | #define LINE_INIT(str, d) \ |
60 | { .init_str = str, \ | 61 | { .count_lock = SPIN_LOCK_UNLOCKED, \ |
62 | .init_str = str, \ | ||
61 | .init_pri = INIT_STATIC, \ | 63 | .init_pri = INIT_STATIC, \ |
62 | .valid = 1, \ | 64 | .valid = 1, \ |
63 | .lock = SPIN_LOCK_UNLOCKED, \ | 65 | .lock = SPIN_LOCK_UNLOCKED, \ |
64 | .driver = d } | 66 | .driver = d } |
65 | 67 | ||
66 | struct lines { | ||
67 | int num; | ||
68 | }; | ||
69 | |||
70 | #define LINES_INIT(n) { .num = n } | ||
71 | |||
72 | extern void line_close(struct tty_struct *tty, struct file * filp); | 68 | extern void line_close(struct tty_struct *tty, struct file * filp); |
73 | extern int line_open(struct line *lines, struct tty_struct *tty); | 69 | extern int line_open(struct line *lines, struct tty_struct *tty); |
74 | extern int line_setup(struct line *lines, unsigned int sizeof_lines, | 70 | extern int line_setup(struct line *lines, unsigned int sizeof_lines, |
75 | char *init); | 71 | char *init, char **error_out); |
76 | extern int line_write(struct tty_struct *tty, const unsigned char *buf, | 72 | extern int line_write(struct tty_struct *tty, const unsigned char *buf, |
77 | int len); | 73 | int len); |
78 | extern void line_put_char(struct tty_struct *tty, unsigned char ch); | 74 | extern void line_put_char(struct tty_struct *tty, unsigned char ch); |
@@ -90,17 +86,18 @@ extern char *add_xterm_umid(char *base); | |||
90 | extern int line_setup_irq(int fd, int input, int output, struct line *line, | 86 | extern int line_setup_irq(int fd, int input, int output, struct line *line, |
91 | void *data); | 87 | void *data); |
92 | extern void line_close_chan(struct line *line); | 88 | extern void line_close_chan(struct line *line); |
93 | extern struct tty_driver * line_register_devfs(struct lines *set, | 89 | extern struct tty_driver *register_lines(struct line_driver *line_driver, |
94 | struct line_driver *line_driver, | 90 | const struct tty_operations *driver, |
95 | const struct tty_operations *driver, | 91 | struct line *lines, int nlines); |
96 | struct line *lines, int nlines); | ||
97 | extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts); | 92 | extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts); |
98 | extern void close_lines(struct line *lines, int nlines); | 93 | extern void close_lines(struct line *lines, int nlines); |
99 | 94 | ||
100 | extern int line_config(struct line *lines, unsigned int sizeof_lines, | 95 | extern int line_config(struct line *lines, unsigned int sizeof_lines, |
101 | char *str, const struct chan_opts *opts); | 96 | char *str, const struct chan_opts *opts, |
97 | char **error_out); | ||
102 | extern int line_id(char **str, int *start_out, int *end_out); | 98 | extern int line_id(char **str, int *start_out, int *end_out); |
103 | extern int line_remove(struct line *lines, unsigned int sizeof_lines, int n); | 99 | extern int line_remove(struct line *lines, unsigned int sizeof_lines, int n, |
100 | char **error_out); | ||
104 | extern int line_get_config(char *dev, struct line *lines, | 101 | extern int line_get_config(char *dev, struct line *lines, |
105 | unsigned int sizeof_lines, char *str, | 102 | unsigned int sizeof_lines, char *str, |
106 | int size, char **error_out); | 103 | int size, char **error_out); |
diff --git a/arch/um/include/mconsole_kern.h b/arch/um/include/mconsole_kern.h index 1ea6d928e1cd..d2fe07e78958 100644 --- a/arch/um/include/mconsole_kern.h +++ b/arch/um/include/mconsole_kern.h | |||
@@ -18,10 +18,10 @@ struct mconsole_entry { | |||
18 | struct mc_device { | 18 | struct mc_device { |
19 | struct list_head list; | 19 | struct list_head list; |
20 | char *name; | 20 | char *name; |
21 | int (*config)(char *); | 21 | int (*config)(char *, char **); |
22 | int (*get_config)(char *, char *, int, char **); | 22 | int (*get_config)(char *, char *, int, char **); |
23 | int (*id)(char **, int *, int *); | 23 | int (*id)(char **, int *, int *); |
24 | int (*remove)(int); | 24 | int (*remove)(int, char **); |
25 | }; | 25 | }; |
26 | 26 | ||
27 | #define CONFIG_CHUNK(str, size, current, chunk, end) \ | 27 | #define CONFIG_CHUNK(str, size, current, chunk, end) \ |
@@ -50,14 +50,3 @@ static inline void mconsole_register_dev(struct mc_device *new) | |||
50 | #endif | 50 | #endif |
51 | 51 | ||
52 | #endif | 52 | #endif |
53 | |||
54 | /* | ||
55 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
56 | * Emacs will notice this stuff at the end of the file and automatically | ||
57 | * adjust the settings for this buffer only. This must remain at the end | ||
58 | * of the file. | ||
59 | * --------------------------------------------------------------------------- | ||
60 | * Local variables: | ||
61 | * c-file-style: "linux" | ||
62 | * End: | ||
63 | */ | ||
diff --git a/arch/um/include/net_kern.h b/arch/um/include/net_kern.h index 218f8b47fdcd..125ab42df18a 100644 --- a/arch/um/include/net_kern.h +++ b/arch/um/include/net_kern.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | 2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) |
3 | * Licensed under the GPL | 3 | * Licensed under the GPL |
4 | */ | 4 | */ |
@@ -36,7 +36,7 @@ struct uml_net_private { | |||
36 | void (*remove)(void *); | 36 | void (*remove)(void *); |
37 | int (*read)(int, struct sk_buff **skb, struct uml_net_private *); | 37 | int (*read)(int, struct sk_buff **skb, struct uml_net_private *); |
38 | int (*write)(int, struct sk_buff **skb, struct uml_net_private *); | 38 | int (*write)(int, struct sk_buff **skb, struct uml_net_private *); |
39 | 39 | ||
40 | void (*add_address)(unsigned char *, unsigned char *, void *); | 40 | void (*add_address)(unsigned char *, unsigned char *, void *); |
41 | void (*delete_address)(unsigned char *, unsigned char *, void *); | 41 | void (*delete_address)(unsigned char *, unsigned char *, void *); |
42 | int (*set_mtu)(int mtu, void *); | 42 | int (*set_mtu)(int mtu, void *); |
@@ -52,18 +52,18 @@ struct net_kern_info { | |||
52 | 52 | ||
53 | struct transport { | 53 | struct transport { |
54 | struct list_head list; | 54 | struct list_head list; |
55 | char *name; | 55 | const char *name; |
56 | int (*setup)(char *, char **, void *); | 56 | int (* const setup)(char *, char **, void *); |
57 | const struct net_user_info *user; | 57 | const struct net_user_info *user; |
58 | const struct net_kern_info *kern; | 58 | const struct net_kern_info *kern; |
59 | int private_size; | 59 | const int private_size; |
60 | int setup_size; | 60 | const int setup_size; |
61 | }; | 61 | }; |
62 | 62 | ||
63 | extern struct net_device *ether_init(int); | 63 | extern struct net_device *ether_init(int); |
64 | extern unsigned short ether_protocol(struct sk_buff *); | 64 | extern unsigned short ether_protocol(struct sk_buff *); |
65 | extern struct sk_buff *ether_adjust_skb(struct sk_buff *skb, int extra); | 65 | extern struct sk_buff *ether_adjust_skb(struct sk_buff *skb, int extra); |
66 | extern int tap_setup_common(char *str, char *type, char **dev_name, | 66 | extern int tap_setup_common(char *str, char *type, char **dev_name, |
67 | char **mac_out, char **gate_addr); | 67 | char **mac_out, char **gate_addr); |
68 | extern void register_transport(struct transport *new); | 68 | extern void register_transport(struct transport *new); |
69 | extern unsigned short eth_protocol(struct sk_buff *skb); | 69 | extern unsigned short eth_protocol(struct sk_buff *skb); |
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index 13a86bd383d3..8629bd191492 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
@@ -137,7 +137,6 @@ extern int os_new_tty_pgrp(int fd, int pid); | |||
137 | extern int os_get_ifname(int fd, char *namebuf); | 137 | extern int os_get_ifname(int fd, char *namebuf); |
138 | extern int os_set_slip(int fd); | 138 | extern int os_set_slip(int fd); |
139 | extern int os_set_owner(int fd, int pid); | 139 | extern int os_set_owner(int fd, int pid); |
140 | extern int os_sigio_async(int master, int slave); | ||
141 | extern int os_mode_fd(int fd, int mode); | 140 | extern int os_mode_fd(int fd, int mode); |
142 | 141 | ||
143 | extern int os_seek_file(int fd, __u64 offset); | 142 | extern int os_seek_file(int fd, __u64 offset); |
@@ -341,4 +340,6 @@ extern void maybe_sigio_broken(int fd, int read); | |||
341 | extern void sig_handler_common_skas(int sig, void *sc_ptr); | 340 | extern void sig_handler_common_skas(int sig, void *sc_ptr); |
342 | extern void user_signal(int sig, union uml_pt_regs *regs, int pid); | 341 | extern void user_signal(int sig, union uml_pt_regs *regs, int pid); |
343 | 342 | ||
343 | extern int os_arch_prctl(int pid, int code, unsigned long *addr); | ||
344 | |||
344 | #endif | 345 | #endif |
diff --git a/arch/um/include/sigio.h b/arch/um/include/sigio.h index fe99ea163c2e..434f1a9ae4b3 100644 --- a/arch/um/include/sigio.h +++ b/arch/um/include/sigio.h | |||
@@ -12,14 +12,3 @@ extern void sigio_lock(void); | |||
12 | extern void sigio_unlock(void); | 12 | extern void sigio_unlock(void); |
13 | 13 | ||
14 | #endif | 14 | #endif |
15 | |||
16 | /* | ||
17 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
18 | * Emacs will notice this stuff at the end of the file and automatically | ||
19 | * adjust the settings for this buffer only. This must remain at the end | ||
20 | * of the file. | ||
21 | * --------------------------------------------------------------------------- | ||
22 | * Local variables: | ||
23 | * c-file-style: "linux" | ||
24 | * End: | ||
25 | */ | ||
diff --git a/arch/um/include/tempfile.h b/arch/um/include/tempfile.h index e36d9e0f5105..d441eac936b9 100644 --- a/arch/um/include/tempfile.h +++ b/arch/um/include/tempfile.h | |||
@@ -9,13 +9,3 @@ | |||
9 | extern int make_tempfile(const char *template, char **tempname, int do_unlink); | 9 | extern int make_tempfile(const char *template, char **tempname, int do_unlink); |
10 | 10 | ||
11 | #endif | 11 | #endif |
12 | /* | ||
13 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
14 | * Emacs will notice this stuff at the end of the file and automatically | ||
15 | * adjust the settings for this buffer only. This must remain at the end | ||
16 | * of the file. | ||
17 | * --------------------------------------------------------------------------- | ||
18 | * Local variables: | ||
19 | * c-file-style: "linux" | ||
20 | * End: | ||
21 | */ | ||
diff --git a/arch/um/include/umid.h b/arch/um/include/umid.h deleted file mode 100644 index 11373c851f15..000000000000 --- a/arch/um/include/umid.h +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2001 Jeff Dike (jdike@karaya.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #ifndef __UMID_H__ | ||
7 | #define __UMID_H__ | ||
8 | |||
9 | extern int umid_file_name(char *name, char *buf, int len); | ||
10 | |||
11 | #endif | ||
12 | |||
13 | /* | ||
14 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
15 | * Emacs will notice this stuff at the end of the file and automatically | ||
16 | * adjust the settings for this buffer only. This must remain at the end | ||
17 | * of the file. | ||
18 | * --------------------------------------------------------------------------- | ||
19 | * Local variables: | ||
20 | * c-file-style: "linux" | ||
21 | * End: | ||
22 | */ | ||
diff --git a/arch/um/include/user_util.h b/arch/um/include/user_util.h index 06625fefef33..023575f67343 100644 --- a/arch/um/include/user_util.h +++ b/arch/um/include/user_util.h | |||
@@ -38,8 +38,6 @@ extern unsigned long long highmem; | |||
38 | 38 | ||
39 | extern char host_info[]; | 39 | extern char host_info[]; |
40 | 40 | ||
41 | extern char saved_command_line[]; | ||
42 | |||
43 | extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; | 41 | extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; |
44 | extern unsigned long _unprotected_end; | 42 | extern unsigned long _unprotected_end; |
45 | extern unsigned long brk_start; | 43 | extern unsigned long brk_start; |