--- zzzz-none-000/linux-2.6.13.1/include/linux/kernel.h 2005-09-10 02:42:58.000000000 +0000 +++ ohio-7170-487/linux-2.6.13.1/include/linux/kernel.h 2007-06-13 08:22:30.000000000 +0000 @@ -124,17 +124,29 @@ extern int session_of_pgrp(int pgrp); #ifdef CONFIG_PRINTK -asmlinkage int vprintk(const char *fmt, va_list args) - __attribute__ ((format (printf, 1, 0))); -asmlinkage int printk(const char * fmt, ...) - __attribute__ ((format (printf, 1, 2))); +asmlinkage int vprintk(const char *fmt, va_list args) __attribute__ ((format (printf, 1, 0))); + +/* zeigt immer auf printk */ +extern asmlinkage int (*__printk)(const char * fmt, ...) __attribute__ ((format (printf, 1, 2))); + +/* wird ggf. auf andere Funktion umgebogen */ +#define printk _printk +extern asmlinkage int (*_printk)(const char * fmt, ...) __attribute__ ((format (printf, 1, 2))); + +void set_printk(int (*__print)(const char * fmt, ...) __attribute__ ((format (printf, 1, 2)))); +void restore_printk(void); + #else static inline int vprintk(const char *s, va_list args) __attribute__ ((format (printf, 1, 0))); static inline int vprintk(const char *s, va_list args) { return 0; } -static inline int printk(const char *s, ...) - __attribute__ ((format (printf, 1, 2))); +static inline int printk(const char *s, ...) __attribute__ ((format (printf, 1, 2))); static inline int printk(const char *s, ...) { return 0; } +static inline int __printk(const char * fmt, ...) __attribute__ ((format (printf, 1, 2))); +static inline int __printk(const char *s, ...) { return 0; } +static inline void restore_printk(void) { return; } +static inline void set_printk(int (*__print)(const char * fmt, ...) __attribute__ ((format (printf, 1, 2)))); +static inline void set_printk(int (*__print)(const char * fmt, ...) __attribute__ ((format (printf, 1, 2)))) { return; } #endif unsigned long int_sqrt(unsigned long);