mconsole_kern.h revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac
11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com) 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Licensed under the GPL 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __MCONSOLE_KERN_H__ 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __MCONSOLE_KERN_H__ 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include "linux/config.h" 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include "linux/list.h" 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#include "mconsole.h" 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct mconsole_entry { 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct list_head list; 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct mc_request request; 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct mc_device { 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct list_head list; 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds char *name; 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*config)(char *); 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*get_config)(char *, char *, int, char **); 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*remove)(char *); 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define CONFIG_CHUNK(str, size, current, chunk, end) \ 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsdo { \ 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds current += strlen(chunk); \ 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if(current >= size) \ 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds str = NULL; \ 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if(str != NULL){ \ 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds strcpy(str, chunk); \ 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds str += strlen(chunk); \ 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } \ 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds if(end) \ 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds current++; \ 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} while(0) 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifdef CONFIG_MCONSOLE 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern void mconsole_register_dev(struct mc_device *new); 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 431da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#else 441da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 451da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstatic inline void mconsole_register_dev(struct mc_device *new) 461da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds{ 471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} 481da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 491da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 501da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif 521da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 531da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 541da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Overrides for Emacs so that we follow Linus's tabbing style. 551da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Emacs will notice this stuff at the end of the file and automatically 561da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * adjust the settings for this buffer only. This must remain at the end 571da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * of the file. 581da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * --------------------------------------------------------------------------- 591da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Local variables: 601da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * c-file-style: "linux" 611da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * End: 621da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 63