53 lines
		
	
	
		
			955 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			955 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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
 |