1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com) |
4 | */ |
5 | |
6 | #ifndef __MCONSOLE_KERN_H__ |
7 | #define __MCONSOLE_KERN_H__ |
8 | |
9 | #include <linux/list.h> |
10 | #include "mconsole.h" |
11 | |
12 | struct mconsole_entry { |
13 | struct list_head list; |
14 | struct mc_request request; |
15 | }; |
16 | |
17 | /* All these methods are called in process context. */ |
18 | struct mc_device { |
19 | struct list_head list; |
20 | char *name; |
21 | int (*config)(char *, char **); |
22 | int (*get_config)(char *, char *, int, char **); |
23 | int (*id)(char **, int *, int *); |
24 | int (*remove)(int, char **); |
25 | }; |
26 | |
27 | #define CONFIG_CHUNK(str, size, current, chunk, end) \ |
28 | do { \ |
29 | current += strlen(chunk); \ |
30 | if(current >= size) \ |
31 | str = NULL; \ |
32 | if(str != NULL){ \ |
33 | strcpy(str, chunk); \ |
34 | str += strlen(chunk); \ |
35 | } \ |
36 | if(end) \ |
37 | current++; \ |
38 | } while(0) |
39 | |
40 | #ifdef CONFIG_MCONSOLE |
41 | |
42 | extern void mconsole_register_dev(struct mc_device *new); |
43 | |
44 | #else |
45 | |
46 | static inline void mconsole_register_dev(struct mc_device *new) |
47 | { |
48 | } |
49 | |
50 | #endif |
51 | |
52 | #endif |
53 | |