Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) | |
3 | * Licensed under the GPL | |
4 | */ | |
5 | ||
6 | #include <stdlib.h> | |
7 | #include <errno.h> | |
8 | #include "chan_user.h" | |
9 | #include "os.h" | |
10 | ||
11 | static int null_chan; | |
12 | ||
13 | static void *null_init(char *str, int device, struct chan_opts *opts) | |
14 | { | |
15 | return(&null_chan); | |
16 | } | |
17 | ||
18 | static int null_open(int input, int output, int primary, void *d, | |
19 | char **dev_out) | |
20 | { | |
21 | *dev_out = NULL; | |
22 | return(os_open_file(DEV_NULL, of_rdwr(OPENFLAGS()), 0)); | |
23 | } | |
24 | ||
25 | static int null_read(int fd, char *c_out, void *unused) | |
26 | { | |
27 | return(-ENODEV); | |
28 | } | |
29 | ||
30 | static void null_free(void *data) | |
31 | { | |
32 | } | |
33 | ||
34 | struct chan_ops null_ops = { | |
35 | .type = "null", | |
36 | .init = null_init, | |
37 | .open = null_open, | |
38 | .close = generic_close, | |
39 | .read = null_read, | |
40 | .write = generic_write, | |
41 | .console_write = generic_console_write, | |
42 | .window_size = generic_window_size, | |
43 | .free = null_free, | |
44 | .winch = 0, | |
45 | }; | |
46 | ||
47 | /* | |
48 | * Overrides for Emacs so that we follow Linus's tabbing style. | |
49 | * Emacs will notice this stuff at the end of the file and automatically | |
50 | * adjust the settings for this buffer only. This must remain at the end | |
51 | * of the file. | |
52 | * --------------------------------------------------------------------------- | |
53 | * Local variables: | |
54 | * c-file-style: "linux" | |
55 | * End: | |
56 | */ |