提交 5e7672ec 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

[PATCH] uml: const more data

Make lots of structures const in order to make it obvious that they need no
locking.
Signed-off-by: NJeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 48af05ed
...@@ -110,7 +110,7 @@ static void not_configged_free(void *data) ...@@ -110,7 +110,7 @@ static void not_configged_free(void *data)
"UML\n"); "UML\n");
} }
static struct chan_ops not_configged_ops = { static const struct chan_ops not_configged_ops = {
.init = not_configged_init, .init = not_configged_init,
.open = not_configged_open, .open = not_configged_open,
.close = not_configged_close, .close = not_configged_close,
...@@ -373,7 +373,7 @@ int console_write_chan(struct list_head *chans, const char *buf, int len) ...@@ -373,7 +373,7 @@ int console_write_chan(struct list_head *chans, const char *buf, int len)
} }
int console_open_chan(struct line *line, struct console *co, int console_open_chan(struct line *line, struct console *co,
struct chan_opts *opts) const struct chan_opts *opts)
{ {
int err; int err;
...@@ -494,10 +494,10 @@ int chan_config_string(struct list_head *chans, char *str, int size, ...@@ -494,10 +494,10 @@ int chan_config_string(struct list_head *chans, char *str, int size,
struct chan_type { struct chan_type {
char *key; char *key;
struct chan_ops *ops; const struct chan_ops *ops;
}; };
static struct chan_type chan_table[] = { static const struct chan_type chan_table[] = {
{ "fd", &fd_ops }, { "fd", &fd_ops },
#ifdef CONFIG_NULL_CHAN #ifdef CONFIG_NULL_CHAN
...@@ -534,10 +534,10 @@ static struct chan_type chan_table[] = { ...@@ -534,10 +534,10 @@ static struct chan_type chan_table[] = {
}; };
static struct chan *parse_chan(struct line *line, char *str, int device, static struct chan *parse_chan(struct line *line, char *str, int device,
struct chan_opts *opts) const struct chan_opts *opts)
{ {
struct chan_type *entry; const struct chan_type *entry;
struct chan_ops *ops; const struct chan_ops *ops;
struct chan *chan; struct chan *chan;
void *data; void *data;
int i; int i;
...@@ -582,7 +582,7 @@ static struct chan *parse_chan(struct line *line, char *str, int device, ...@@ -582,7 +582,7 @@ static struct chan *parse_chan(struct line *line, char *str, int device,
} }
int parse_chan_pair(char *str, struct line *line, int device, int parse_chan_pair(char *str, struct line *line, int device,
struct chan_opts *opts) const struct chan_opts *opts)
{ {
struct list_head *chans = &line->chan_list; struct list_head *chans = &line->chan_list;
struct chan *new, *chan; struct chan *new, *chan;
......
...@@ -18,7 +18,7 @@ struct daemon_data { ...@@ -18,7 +18,7 @@ struct daemon_data {
void *dev; void *dev;
}; };
extern struct net_user_info daemon_user_info; extern const struct net_user_info daemon_user_info;
extern int daemon_user_write(int fd, void *buf, int len, extern int daemon_user_write(int fd, void *buf, int len,
struct daemon_data *pri); struct daemon_data *pri);
......
...@@ -57,7 +57,7 @@ static int daemon_write(int fd, struct sk_buff **skb, ...@@ -57,7 +57,7 @@ static int daemon_write(int fd, struct sk_buff **skb,
(struct daemon_data *) &lp->user)); (struct daemon_data *) &lp->user));
} }
static struct net_kern_info daemon_kern_info = { static const struct net_kern_info daemon_kern_info = {
.init = daemon_init, .init = daemon_init,
.protocol = eth_protocol, .protocol = eth_protocol,
.read = daemon_read, .read = daemon_read,
......
...@@ -182,7 +182,7 @@ static int daemon_set_mtu(int mtu, void *data) ...@@ -182,7 +182,7 @@ static int daemon_set_mtu(int mtu, void *data)
return(mtu); return(mtu);
} }
struct net_user_info daemon_user_info = { const struct net_user_info daemon_user_info = {
.init = daemon_user_init, .init = daemon_user_init,
.open = daemon_open, .open = daemon_open,
.close = NULL, .close = NULL,
......
...@@ -20,7 +20,7 @@ struct fd_chan { ...@@ -20,7 +20,7 @@ struct fd_chan {
char str[sizeof("1234567890\0")]; char str[sizeof("1234567890\0")];
}; };
static void *fd_init(char *str, int device, struct chan_opts *opts) static void *fd_init(char *str, int device, const struct chan_opts *opts)
{ {
struct fd_chan *data; struct fd_chan *data;
char *end; char *end;
...@@ -77,7 +77,7 @@ static void fd_close(int fd, void *d) ...@@ -77,7 +77,7 @@ static void fd_close(int fd, void *d)
} }
} }
struct chan_ops fd_ops = { const struct chan_ops fd_ops = {
.type = "fd", .type = "fd",
.init = fd_init, .init = fd_init,
.open = fd_open, .open = fd_open,
......
...@@ -280,7 +280,7 @@ static int hostmixer_release(struct inode *inode, struct file *file) ...@@ -280,7 +280,7 @@ static int hostmixer_release(struct inode *inode, struct file *file)
/* kernel module operations */ /* kernel module operations */
static struct file_operations hostaudio_fops = { static const struct file_operations hostaudio_fops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.llseek = no_llseek, .llseek = no_llseek,
.read = hostaudio_read, .read = hostaudio_read,
...@@ -292,7 +292,7 @@ static struct file_operations hostaudio_fops = { ...@@ -292,7 +292,7 @@ static struct file_operations hostaudio_fops = {
.release = hostaudio_release, .release = hostaudio_release,
}; };
static struct file_operations hostmixer_fops = { static const struct file_operations hostmixer_fops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.llseek = no_llseek, .llseek = no_llseek,
.ioctl = hostmixer_ioctl_mixdev, .ioctl = hostmixer_ioctl_mixdev,
......
...@@ -251,7 +251,7 @@ void line_set_termios(struct tty_struct *tty, struct termios * old) ...@@ -251,7 +251,7 @@ void line_set_termios(struct tty_struct *tty, struct termios * old)
/* nothing */ /* nothing */
} }
static struct { static const struct {
int cmd; int cmd;
char *level; char *level;
char *name; char *name;
...@@ -405,7 +405,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data, ...@@ -405,7 +405,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data,
int line_setup_irq(int fd, int input, int output, struct line *line, void *data) int line_setup_irq(int fd, int input, int output, struct line *line, void *data)
{ {
struct line_driver *driver = line->driver; const struct line_driver *driver = line->driver;
int err = 0, flags = IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM; int err = 0, flags = IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM;
if (input) if (input)
...@@ -558,7 +558,7 @@ int line_setup(struct line *lines, unsigned int num, char *init) ...@@ -558,7 +558,7 @@ int line_setup(struct line *lines, unsigned int num, char *init)
} }
int line_config(struct line *lines, unsigned int num, char *str, int line_config(struct line *lines, unsigned int num, char *str,
struct chan_opts *opts) const struct chan_opts *opts)
{ {
struct line *line; struct line *line;
char *new; char *new;
......
...@@ -13,7 +13,7 @@ struct mcast_data { ...@@ -13,7 +13,7 @@ struct mcast_data {
void *dev; void *dev;
}; };
extern struct net_user_info mcast_user_info; extern const struct net_user_info mcast_user_info;
extern int mcast_user_write(int fd, void *buf, int len, extern int mcast_user_write(int fd, void *buf, int len,
struct mcast_data *pri); struct mcast_data *pri);
......
...@@ -61,7 +61,7 @@ static int mcast_write(int fd, struct sk_buff **skb, ...@@ -61,7 +61,7 @@ static int mcast_write(int fd, struct sk_buff **skb,
(struct mcast_data *) &lp->user); (struct mcast_data *) &lp->user);
} }
static struct net_kern_info mcast_kern_info = { static const struct net_kern_info mcast_kern_info = {
.init = mcast_init, .init = mcast_init,
.protocol = eth_protocol, .protocol = eth_protocol,
.read = mcast_read, .read = mcast_read,
......
...@@ -152,7 +152,7 @@ static int mcast_set_mtu(int mtu, void *data) ...@@ -152,7 +152,7 @@ static int mcast_set_mtu(int mtu, void *data)
return(mtu); return(mtu);
} }
struct net_user_info mcast_user_info = { const struct net_user_info mcast_user_info = {
.init = mcast_user_init, .init = mcast_user_init,
.open = mcast_open, .open = mcast_open,
.close = mcast_close, .close = mcast_close,
......
...@@ -85,7 +85,7 @@ mmapper_release(struct inode *inode, struct file *file) ...@@ -85,7 +85,7 @@ mmapper_release(struct inode *inode, struct file *file)
return 0; return 0;
} }
static struct file_operations mmapper_fops = { static const struct file_operations mmapper_fops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.read = mmapper_read, .read = mmapper_read,
.write = mmapper_write, .write = mmapper_write,
...@@ -95,7 +95,7 @@ static struct file_operations mmapper_fops = { ...@@ -95,7 +95,7 @@ static struct file_operations mmapper_fops = {
.release = mmapper_release, .release = mmapper_release,
}; };
static struct miscdevice mmapper_dev = { static const struct miscdevice mmapper_dev = {
.minor = MISC_DYNAMIC_MINOR, .minor = MISC_DYNAMIC_MINOR,
.name = "mmapper", .name = "mmapper",
.fops = &mmapper_fops .fops = &mmapper_fops
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
static int null_chan; static int null_chan;
static void *null_init(char *str, int device, struct chan_opts *opts) static void *null_init(char *str, int device, const struct chan_opts *opts)
{ {
return(&null_chan); return(&null_chan);
} }
...@@ -31,7 +31,7 @@ static void null_free(void *data) ...@@ -31,7 +31,7 @@ static void null_free(void *data)
{ {
} }
struct chan_ops null_ops = { const struct chan_ops null_ops = {
.type = "null", .type = "null",
.init = null_init, .init = null_init,
.open = null_open, .open = null_open,
......
...@@ -46,7 +46,7 @@ static int pcap_write(int fd, struct sk_buff **skb, struct uml_net_private *lp) ...@@ -46,7 +46,7 @@ static int pcap_write(int fd, struct sk_buff **skb, struct uml_net_private *lp)
return(-EPERM); return(-EPERM);
} }
static struct net_kern_info pcap_kern_info = { static const struct net_kern_info pcap_kern_info = {
.init = pcap_init, .init = pcap_init,
.protocol = eth_protocol, .protocol = eth_protocol,
.read = pcap_read, .read = pcap_read,
......
...@@ -120,7 +120,7 @@ int pcap_user_read(int fd, void *buffer, int len, struct pcap_data *pri) ...@@ -120,7 +120,7 @@ int pcap_user_read(int fd, void *buffer, int len, struct pcap_data *pri)
return(hdata.len); return(hdata.len);
} }
struct net_user_info pcap_user_info = { const struct net_user_info pcap_user_info = {
.init = pcap_user_init, .init = pcap_user_init,
.open = pcap_open, .open = pcap_open,
.close = NULL, .close = NULL,
......
...@@ -27,7 +27,7 @@ struct port_chan { ...@@ -27,7 +27,7 @@ struct port_chan {
char dev[sizeof("32768\0")]; char dev[sizeof("32768\0")];
}; };
static void *port_init(char *str, int device, struct chan_opts *opts) static void *port_init(char *str, int device, const struct chan_opts *opts)
{ {
struct port_chan *data; struct port_chan *data;
void *kern_data; void *kern_data;
...@@ -100,7 +100,7 @@ static void port_close(int fd, void *d) ...@@ -100,7 +100,7 @@ static void port_close(int fd, void *d)
os_close_file(fd); os_close_file(fd);
} }
struct chan_ops port_ops = { const struct chan_ops port_ops = {
.type = "port", .type = "port",
.init = port_init, .init = port_init,
.open = port_open, .open = port_open,
......
...@@ -22,7 +22,7 @@ struct pty_chan { ...@@ -22,7 +22,7 @@ struct pty_chan {
char dev_name[sizeof("/dev/pts/0123456\0")]; char dev_name[sizeof("/dev/pts/0123456\0")];
}; };
static void *pty_chan_init(char *str, int device, struct chan_opts *opts) static void *pty_chan_init(char *str, int device, const struct chan_opts *opts)
{ {
struct pty_chan *data; struct pty_chan *data;
...@@ -118,7 +118,7 @@ static int pty_open(int input, int output, int primary, void *d, ...@@ -118,7 +118,7 @@ static int pty_open(int input, int output, int primary, void *d,
return(fd); return(fd);
} }
struct chan_ops pty_ops = { const struct chan_ops pty_ops = {
.type = "pty", .type = "pty",
.init = pty_chan_init, .init = pty_chan_init,
.open = pty_open, .open = pty_open,
...@@ -131,7 +131,7 @@ struct chan_ops pty_ops = { ...@@ -131,7 +131,7 @@ struct chan_ops pty_ops = {
.winch = 0, .winch = 0,
}; };
struct chan_ops pts_ops = { const struct chan_ops pts_ops = {
.type = "pts", .type = "pts",
.init = pty_chan_init, .init = pty_chan_init,
.open = pts_open, .open = pts_open,
......
...@@ -68,7 +68,7 @@ static ssize_t rng_dev_read (struct file *filp, char __user *buf, size_t size, ...@@ -68,7 +68,7 @@ static ssize_t rng_dev_read (struct file *filp, char __user *buf, size_t size,
return ret; return ret;
} }
static struct file_operations rng_chrdev_ops = { static const struct file_operations rng_chrdev_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.open = rng_dev_open, .open = rng_dev_open,
.read = rng_dev_read, .read = rng_dev_read,
......
...@@ -12,7 +12,7 @@ struct slip_data { ...@@ -12,7 +12,7 @@ struct slip_data {
struct slip_proto slip; struct slip_proto slip;
}; };
extern struct net_user_info slip_user_info; extern const struct net_user_info slip_user_info;
extern int slip_user_read(int fd, void *buf, int len, struct slip_data *pri); extern int slip_user_read(int fd, void *buf, int len, struct slip_data *pri);
extern int slip_user_write(int fd, void *buf, int len, struct slip_data *pri); extern int slip_user_write(int fd, void *buf, int len, struct slip_data *pri);
......
...@@ -61,7 +61,7 @@ static int slip_write(int fd, struct sk_buff **skb, ...@@ -61,7 +61,7 @@ static int slip_write(int fd, struct sk_buff **skb,
(struct slip_data *) &lp->user)); (struct slip_data *) &lp->user));
} }
struct net_kern_info slip_kern_info = { const struct net_kern_info slip_kern_info = {
.init = slip_init, .init = slip_init,
.protocol = slip_protocol, .protocol = slip_protocol,
.read = slip_read, .read = slip_read,
......
...@@ -241,7 +241,7 @@ static void slip_del_addr(unsigned char *addr, unsigned char *netmask, ...@@ -241,7 +241,7 @@ static void slip_del_addr(unsigned char *addr, unsigned char *netmask,
close_addr(addr, netmask, pri->name); close_addr(addr, netmask, pri->name);
} }
struct net_user_info slip_user_info = { const struct net_user_info slip_user_info = {
.init = slip_user_init, .init = slip_user_init,
.open = slip_open, .open = slip_open,
.close = slip_close, .close = slip_close,
......
...@@ -24,7 +24,7 @@ struct slirp_data { ...@@ -24,7 +24,7 @@ struct slirp_data {
struct slip_proto slip; struct slip_proto slip;
}; };
extern struct net_user_info slirp_user_info; extern const struct net_user_info slirp_user_info;
extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri); extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri);
extern int slirp_user_write(int fd, void *buf, int len, extern int slirp_user_write(int fd, void *buf, int len,
......
...@@ -64,7 +64,7 @@ static int slirp_write(int fd, struct sk_buff **skb, ...@@ -64,7 +64,7 @@ static int slirp_write(int fd, struct sk_buff **skb,
(struct slirp_data *) &lp->user)); (struct slirp_data *) &lp->user));
} }
struct net_kern_info slirp_kern_info = { const struct net_kern_info slirp_kern_info = {
.init = slirp_init, .init = slirp_init,
.protocol = slirp_protocol, .protocol = slirp_protocol,
.read = slirp_read, .read = slirp_read,
......
...@@ -126,7 +126,7 @@ static int slirp_set_mtu(int mtu, void *data) ...@@ -126,7 +126,7 @@ static int slirp_set_mtu(int mtu, void *data)
return(mtu); return(mtu);
} }
struct net_user_info slirp_user_info = { const struct net_user_info slirp_user_info = {
.init = slirp_user_init, .init = slirp_user_init,
.open = slirp_open, .open = slirp_open,
.close = slirp_close, .close = slirp_close,
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "irq_user.h" #include "irq_user.h"
#include "mconsole_kern.h" #include "mconsole_kern.h"
static int ssl_version = 1; static const int ssl_version = 1;
/* Referenced only by tty_driver below - presumably it's locked correctly /* Referenced only by tty_driver below - presumably it's locked correctly
* by the tty driver. * by the tty driver.
...@@ -123,7 +123,7 @@ void ssl_hangup(struct tty_struct *tty) ...@@ -123,7 +123,7 @@ void ssl_hangup(struct tty_struct *tty)
} }
#endif #endif
static struct tty_operations ssl_ops = { static const struct tty_operations ssl_ops = {
.open = ssl_open, .open = ssl_open,
.close = line_close, .close = line_close,
.write = line_write, .write = line_write,
......
...@@ -110,7 +110,7 @@ static int con_open(struct tty_struct *tty, struct file *filp) ...@@ -110,7 +110,7 @@ static int con_open(struct tty_struct *tty, struct file *filp)
static int con_init_done = 0; static int con_init_done = 0;
static struct tty_operations console_ops = { static const struct tty_operations console_ops = {
.open = con_open, .open = con_open,
.close = line_close, .close = line_close,
.write = line_write, .write = line_write,
......
...@@ -18,7 +18,7 @@ struct tty_chan { ...@@ -18,7 +18,7 @@ struct tty_chan {
struct termios tt; struct termios tt;
}; };
static void *tty_chan_init(char *str, int device, struct chan_opts *opts) static void *tty_chan_init(char *str, int device, const struct chan_opts *opts)
{ {
struct tty_chan *data; struct tty_chan *data;
...@@ -62,7 +62,7 @@ static int tty_open(int input, int output, int primary, void *d, ...@@ -62,7 +62,7 @@ static int tty_open(int input, int output, int primary, void *d,
return fd; return fd;
} }
struct chan_ops tty_ops = { const struct chan_ops tty_ops = {
.type = "tty", .type = "tty",
.init = tty_chan_init, .init = tty_chan_init,
.open = tty_open, .open = tty_open,
......
...@@ -31,7 +31,7 @@ struct xterm_chan { ...@@ -31,7 +31,7 @@ struct xterm_chan {
}; };
/* Not static because it's called directly by the tt mode gdb code */ /* Not static because it's called directly by the tt mode gdb code */
void *xterm_init(char *str, int device, struct chan_opts *opts) void *xterm_init(char *str, int device, const struct chan_opts *opts)
{ {
struct xterm_chan *data; struct xterm_chan *data;
...@@ -194,7 +194,7 @@ static void xterm_free(void *d) ...@@ -194,7 +194,7 @@ static void xterm_free(void *d)
free(d); free(d);
} }
struct chan_ops xterm_ops = { const struct chan_ops xterm_ops = {
.type = "xterm", .type = "xterm",
.init = xterm_init, .init = xterm_init,
.open = xterm_open, .open = xterm_open,
......
...@@ -23,21 +23,21 @@ struct chan { ...@@ -23,21 +23,21 @@ struct chan {
unsigned int opened:1; unsigned int opened:1;
unsigned int enabled:1; unsigned int enabled:1;
int fd; int fd;
struct chan_ops *ops; const struct chan_ops *ops;
void *data; void *data;
}; };
extern void chan_interrupt(struct list_head *chans, struct work_struct *task, extern void chan_interrupt(struct list_head *chans, struct work_struct *task,
struct tty_struct *tty, int irq); struct tty_struct *tty, int irq);
extern int parse_chan_pair(char *str, struct line *line, int device, extern int parse_chan_pair(char *str, struct line *line, int device,
struct chan_opts *opts); const struct chan_opts *opts);
extern int open_chan(struct list_head *chans); extern int open_chan(struct list_head *chans);
extern int write_chan(struct list_head *chans, const char *buf, int len, extern int write_chan(struct list_head *chans, const char *buf, int len,
int write_irq); int write_irq);
extern int console_write_chan(struct list_head *chans, const char *buf, extern int console_write_chan(struct list_head *chans, const char *buf,
int len); int len);
extern int console_open_chan(struct line *line, struct console *co, extern int console_open_chan(struct line *line, struct console *co,
struct chan_opts *opts); const struct chan_opts *opts);
extern void deactivate_chan(struct list_head *chans, int irq); extern void deactivate_chan(struct list_head *chans, int irq);
extern void reactivate_chan(struct list_head *chans, int irq); extern void reactivate_chan(struct list_head *chans, int irq);
extern void chan_enable_winch(struct list_head *chans, struct tty_struct *tty); extern void chan_enable_winch(struct list_head *chans, struct tty_struct *tty);
......
...@@ -20,7 +20,7 @@ enum chan_init_pri { INIT_STATIC, INIT_ALL, INIT_ONE }; ...@@ -20,7 +20,7 @@ enum chan_init_pri { INIT_STATIC, INIT_ALL, INIT_ONE };
struct chan_ops { struct chan_ops {
char *type; char *type;
void *(*init)(char *, int, struct chan_opts *); void *(*init)(char *, int, const struct chan_opts *);
int (*open)(int, int, int, void *, char **); int (*open)(int, int, int, void *, char **);
void (*close)(int, void *); void (*close)(int, void *);
int (*read)(int, char *, void *); int (*read)(int, char *, void *);
...@@ -31,8 +31,8 @@ struct chan_ops { ...@@ -31,8 +31,8 @@ struct chan_ops {
int winch; int winch;
}; };
extern struct chan_ops fd_ops, null_ops, port_ops, pts_ops, pty_ops, tty_ops, extern const struct chan_ops fd_ops, null_ops, port_ops, pts_ops, pty_ops,
xterm_ops; tty_ops, xterm_ops;
extern void generic_close(int fd, void *unused); extern void generic_close(int fd, void *unused);
extern int generic_read(int fd, char *c_out, void *unused); extern int generic_read(int fd, char *c_out, void *unused);
......
...@@ -21,7 +21,7 @@ struct kern_handlers { ...@@ -21,7 +21,7 @@ struct kern_handlers {
kern_hndl timer_handler; kern_hndl timer_handler;
}; };
extern struct kern_handlers handlinfo_kern; extern const struct kern_handlers handlinfo_kern;
extern int ncpus; extern int ncpus;
extern char *linux_prog; extern char *linux_prog;
......
...@@ -52,7 +52,7 @@ struct line { ...@@ -52,7 +52,7 @@ struct line {
int sigio; int sigio;
struct work_struct task; struct work_struct task;
struct line_driver *driver; const struct line_driver *driver;
int have_irq; int have_irq;
}; };
...@@ -99,7 +99,7 @@ extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts); ...@@ -99,7 +99,7 @@ extern void lines_init(struct line *lines, int nlines, struct chan_opts *opts);
extern void close_lines(struct line *lines, int nlines); extern void close_lines(struct line *lines, int nlines);
extern int line_config(struct line *lines, unsigned int sizeof_lines, extern int line_config(struct line *lines, unsigned int sizeof_lines,
char *str, struct chan_opts *opts); char *str, const struct chan_opts *opts);
extern int line_id(char **str, int *start_out, int *end_out); extern int line_id(char **str, int *start_out, int *end_out);
extern int line_remove(struct line *lines, unsigned int sizeof_lines, int n); extern int line_remove(struct line *lines, unsigned int sizeof_lines, int n);
extern int line_get_config(char *dev, struct line *lines, extern int line_get_config(char *dev, struct line *lines,
......
...@@ -54,8 +54,8 @@ struct transport { ...@@ -54,8 +54,8 @@ struct transport {
struct list_head list; struct list_head list;
char *name; char *name;
int (*setup)(char *, char **, void *); int (*setup)(char *, char **, void *);
struct net_user_info *user; const struct net_user_info *user;
struct net_kern_info *kern; const struct net_kern_info *kern;
int private_size; int private_size;
int setup_size; int setup_size;
}; };
......
...@@ -140,7 +140,7 @@ void segv_handler(int sig, union uml_pt_regs *regs) ...@@ -140,7 +140,7 @@ void segv_handler(int sig, union uml_pt_regs *regs)
segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs); segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs);
} }
struct kern_handlers handlinfo_kern = { const struct kern_handlers handlinfo_kern = {
.relay_signal = relay_signal, .relay_signal = relay_signal,
.winch = winch, .winch = winch,
.bus_handler = relay_signal, .bus_handler = relay_signal,
......
...@@ -106,7 +106,7 @@ static void c_stop(struct seq_file *m, void *v) ...@@ -106,7 +106,7 @@ static void c_stop(struct seq_file *m, void *v)
{ {
} }
struct seq_operations cpuinfo_op = { const struct seq_operations cpuinfo_op = {
.start = c_start, .start = c_start,
.next = c_next, .next = c_next,
.stop = c_stop, .stop = c_stop,
......
...@@ -13,7 +13,7 @@ struct ethertap_data { ...@@ -13,7 +13,7 @@ struct ethertap_data {
void *dev; void *dev;
}; };
extern struct net_user_info ethertap_user_info; extern const struct net_user_info ethertap_user_info;
/* /*
* Overrides for Emacs so that we follow Linus's tabbing style. * Overrides for Emacs so that we follow Linus's tabbing style.
......
...@@ -65,7 +65,7 @@ static int etap_write(int fd, struct sk_buff **skb, struct uml_net_private *lp) ...@@ -65,7 +65,7 @@ static int etap_write(int fd, struct sk_buff **skb, struct uml_net_private *lp)
return(net_send(fd, (*skb)->data, (*skb)->len)); return(net_send(fd, (*skb)->data, (*skb)->len));
} }
struct net_kern_info ethertap_kern_info = { const struct net_kern_info ethertap_kern_info = {
.init = etap_init, .init = etap_init,
.protocol = eth_protocol, .protocol = eth_protocol,
.read = etap_read, .read = etap_read,
......
...@@ -216,7 +216,7 @@ static void etap_del_addr(unsigned char *addr, unsigned char *netmask, ...@@ -216,7 +216,7 @@ static void etap_del_addr(unsigned char *addr, unsigned char *netmask,
etap_close_addr(addr, netmask, &pri->control_fd); etap_close_addr(addr, netmask, &pri->control_fd);
} }
struct net_user_info ethertap_user_info = { const struct net_user_info ethertap_user_info = {
.init = etap_user_init, .init = etap_user_init,
.open = etap_open, .open = etap_open,
.close = etap_close, .close = etap_close,
......
...@@ -16,7 +16,7 @@ struct tuntap_data { ...@@ -16,7 +16,7 @@ struct tuntap_data {
void *dev; void *dev;
}; };
extern struct net_user_info tuntap_user_info; extern const struct net_user_info tuntap_user_info;
#endif #endif
......
...@@ -53,7 +53,7 @@ static int tuntap_write(int fd, struct sk_buff **skb, ...@@ -53,7 +53,7 @@ static int tuntap_write(int fd, struct sk_buff **skb,
return(net_write(fd, (*skb)->data, (*skb)->len)); return(net_write(fd, (*skb)->data, (*skb)->len));
} }
struct net_kern_info tuntap_kern_info = { const struct net_kern_info tuntap_kern_info = {
.init = tuntap_init, .init = tuntap_init,
.protocol = eth_protocol, .protocol = eth_protocol,
.read = tuntap_read, .read = tuntap_read,
......
...@@ -205,7 +205,7 @@ static int tuntap_set_mtu(int mtu, void *data) ...@@ -205,7 +205,7 @@ static int tuntap_set_mtu(int mtu, void *data)
return(mtu); return(mtu);
} }
struct net_user_info tuntap_user_info = { const struct net_user_info tuntap_user_info = {
.init = tuntap_user_init, .init = tuntap_user_init,
.open = tuntap_open, .open = tuntap_open,
.close = tuntap_close, .close = tuntap_close,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册