| /* | |
| * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com) | |
| * Licensed under the GPL | |
| */ | |
| #ifndef __MCONSOLE_KERN_H__ | |
| #define __MCONSOLE_KERN_H__ | |
| #include <linux/list.h> | |
| #include "mconsole.h" | |
| struct mconsole_entry { | |
| struct list_head list; | |
| struct mc_request request; | |
| }; | |
| /* All these methods are called in process context. */ | |
| struct mc_device { | |
| struct list_head list; | |
| char *name; | |
| int (*config)(char *, char **); | |
| int (*get_config)(char *, char *, int, char **); | |
| int (*id)(char **, int *, int *); | |
| int (*remove)(int, char **); | |
| }; | |
| #define CONFIG_CHUNK(str, size, current, chunk, end) \ | |
| do { \ | |
| current += strlen(chunk); \ | |
| if(current >= size) \ | |
| str = NULL; \ | |
| if(str != NULL){ \ | |
| strcpy(str, chunk); \ | |
| str += strlen(chunk); \ | |
| } \ | |
| if(end) \ | |
| current++; \ | |
| } while(0) | |
| #ifdef CONFIG_MCONSOLE | |
| extern void mconsole_register_dev(struct mc_device *new); | |
| #else | |
| static inline void mconsole_register_dev(struct mc_device *new) | |
| { | |
| } | |
| #endif | |
| #endif |