aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/include
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2007-02-20 14:13:30 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-02-20 14:13:30 -0500
commit5a84d159061d914c8dd4aa372ac6e9529c2be453 (patch)
tree9b08af78085334af44414adafe0096276f8fe0ff /arch/um/include
parente80a0e6e7ccdf64575d4384cb4172860422f5b81 (diff)
parent7d477a04a619e90ee08724e8f2d8803c6bdfcef8 (diff)
Merge ARM fixes
Diffstat (limited to 'arch/um/include')
-rw-r--r--arch/um/include/chan_kern.h5
-rw-r--r--arch/um/include/chan_user.h21
-rw-r--r--arch/um/include/kern_util.h5
-rw-r--r--arch/um/include/line.h57
-rw-r--r--arch/um/include/mconsole_kern.h17
-rw-r--r--arch/um/include/net_kern.h14
-rw-r--r--arch/um/include/os.h3
-rw-r--r--arch/um/include/sigio.h11
-rw-r--r--arch/um/include/tempfile.h10
-rw-r--r--arch/um/include/umid.h22
-rw-r--r--arch/um/include/user_util.h2
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 {
30extern void chan_interrupt(struct list_head *chans, struct delayed_work *task, 30extern 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);
32extern int parse_chan_pair(char *str, struct line *line, int device, 32extern 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);
34extern int open_chan(struct list_head *chans); 34extern int open_chan(struct list_head *chans);
35extern int write_chan(struct list_head *chans, const char *buf, int len, 35extern int write_chan(struct list_head *chans, const char *buf, int len,
36 int write_irq); 36 int write_irq);
37extern int console_write_chan(struct list_head *chans, const char *buf, 37extern int console_write_chan(struct list_head *chans, const char *buf,
38 int len); 38 int len);
39extern int console_open_chan(struct line *line, struct console *co, 39extern int console_open_chan(struct line *line, struct console *co);
40 const struct chan_opts *opts);
41extern void deactivate_chan(struct list_head *chans, int irq); 40extern void deactivate_chan(struct list_head *chans, int irq);
42extern void reactivate_chan(struct list_head *chans, int irq); 41extern void reactivate_chan(struct list_head *chans, int irq);
43extern void chan_enable_winch(struct list_head *chans, struct tty_struct *tty); 42extern 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
11struct chan_opts { 11struct 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
19enum chan_init_pri { INIT_STATIC, INIT_ALL, INIT_ONE }; 19enum 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);
61extern void force_sigbus(void); 61extern void force_sigbus(void);
62extern int pid_to_processor_id(int pid); 62extern int pid_to_processor_id(int pid);
63extern void deliver_signals(void *t); 63extern void deliver_signals(void *t);
64extern int next_syscall_index(int max);
65extern int next_trap_index(int max); 64extern int next_trap_index(int max);
66extern void default_idle(void); 65extern void default_idle(void);
67extern void finish_fork(void); 66extern void finish_fork(void);
@@ -88,7 +87,6 @@ extern void timer_irq(union uml_pt_regs *regs);
88extern void unprotect_stack(unsigned long stack); 87extern void unprotect_stack(unsigned long stack);
89extern void do_uml_exitcalls(void); 88extern void do_uml_exitcalls(void);
90extern int attach_debugger(int idle_pid, int pid, int stop); 89extern int attach_debugger(int idle_pid, int pid, int stop);
91extern void bad_segv(struct faultinfo fi, unsigned long ip);
92extern int config_gdb(char *str); 90extern int config_gdb(char *str);
93extern int remove_gdb(void); 91extern int remove_gdb(void);
94extern char *uml_strdup(char *string); 92extern char *uml_strdup(char *string);
@@ -104,8 +102,6 @@ extern int clear_user_proc(void *buf, int size);
104extern int copy_to_user_proc(void *to, void *from, int size); 102extern int copy_to_user_proc(void *to, void *from, int size);
105extern int copy_from_user_proc(void *to, void *from, int size); 103extern int copy_from_user_proc(void *to, void *from, int size);
106extern int strlen_user_proc(char *str); 104extern int strlen_user_proc(char *str);
107extern void bus_handler(int sig, union uml_pt_regs *regs);
108extern void winch(int sig, union uml_pt_regs *regs);
109extern long execute_syscall(void *r); 105extern long execute_syscall(void *r);
110extern int smp_sigio_handler(void); 106extern int smp_sigio_handler(void);
111extern void *get_current(void); 107extern 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. */
122extern int __cant_sleep(void); 118extern int __cant_sleep(void);
123extern void segv_handler(int sig, union uml_pt_regs *regs);
124extern void sigio_handler(int sig, union uml_pt_regs *regs); 119extern 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 */
17struct line_driver { 19struct 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
33struct line { 33struct 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
66struct lines {
67 int num;
68};
69
70#define LINES_INIT(n) { .num = n }
71
72extern void line_close(struct tty_struct *tty, struct file * filp); 68extern void line_close(struct tty_struct *tty, struct file * filp);
73extern int line_open(struct line *lines, struct tty_struct *tty); 69extern int line_open(struct line *lines, struct tty_struct *tty);
74extern int line_setup(struct line *lines, unsigned int sizeof_lines, 70extern int line_setup(struct line *lines, unsigned int sizeof_lines,
75 char *init); 71 char *init, char **error_out);
76extern int line_write(struct tty_struct *tty, const unsigned char *buf, 72extern int line_write(struct tty_struct *tty, const unsigned char *buf,
77 int len); 73 int len);
78extern void line_put_char(struct tty_struct *tty, unsigned char ch); 74extern void line_put_char(struct tty_struct *tty, unsigned char ch);
@@ -90,17 +86,18 @@ extern char *add_xterm_umid(char *base);
90extern int line_setup_irq(int fd, int input, int output, struct line *line, 86extern int line_setup_irq(int fd, int input, int output, struct line *line,
91 void *data); 87 void *data);
92extern void line_close_chan(struct line *line); 88extern void line_close_chan(struct line *line);
93extern struct tty_driver * line_register_devfs(struct lines *set, 89extern 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);
97extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts); 92extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts);
98extern void close_lines(struct line *lines, int nlines); 93extern void close_lines(struct line *lines, int nlines);
99 94
100extern int line_config(struct line *lines, unsigned int sizeof_lines, 95extern 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);
102extern int line_id(char **str, int *start_out, int *end_out); 98extern int line_id(char **str, int *start_out, int *end_out);
103extern int line_remove(struct line *lines, unsigned int sizeof_lines, int n); 99extern int line_remove(struct line *lines, unsigned int sizeof_lines, int n,
100 char **error_out);
104extern int line_get_config(char *dev, struct line *lines, 101extern 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 {
18struct mc_device { 18struct 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
53struct transport { 53struct 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
63extern struct net_device *ether_init(int); 63extern struct net_device *ether_init(int);
64extern unsigned short ether_protocol(struct sk_buff *); 64extern unsigned short ether_protocol(struct sk_buff *);
65extern struct sk_buff *ether_adjust_skb(struct sk_buff *skb, int extra); 65extern struct sk_buff *ether_adjust_skb(struct sk_buff *skb, int extra);
66extern int tap_setup_common(char *str, char *type, char **dev_name, 66extern 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);
68extern void register_transport(struct transport *new); 68extern void register_transport(struct transport *new);
69extern unsigned short eth_protocol(struct sk_buff *skb); 69extern 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);
137extern int os_get_ifname(int fd, char *namebuf); 137extern int os_get_ifname(int fd, char *namebuf);
138extern int os_set_slip(int fd); 138extern int os_set_slip(int fd);
139extern int os_set_owner(int fd, int pid); 139extern int os_set_owner(int fd, int pid);
140extern int os_sigio_async(int master, int slave);
141extern int os_mode_fd(int fd, int mode); 140extern int os_mode_fd(int fd, int mode);
142 141
143extern int os_seek_file(int fd, __u64 offset); 142extern int os_seek_file(int fd, __u64 offset);
@@ -341,4 +340,6 @@ extern void maybe_sigio_broken(int fd, int read);
341extern void sig_handler_common_skas(int sig, void *sc_ptr); 340extern void sig_handler_common_skas(int sig, void *sc_ptr);
342extern void user_signal(int sig, union uml_pt_regs *regs, int pid); 341extern void user_signal(int sig, union uml_pt_regs *regs, int pid);
343 342
343extern 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);
12extern void sigio_unlock(void); 12extern 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 @@
9extern int make_tempfile(const char *template, char **tempname, int do_unlink); 9extern 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
9extern 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
39extern char host_info[]; 39extern char host_info[];
40 40
41extern char saved_command_line[];
42
43extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end; 41extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end;
44extern unsigned long _unprotected_end; 42extern unsigned long _unprotected_end;
45extern unsigned long brk_start; 43extern unsigned long brk_start;