#ifndef _linux_avm_debug_h_ #define _linux_avm_debug_h_ /*--------------------------------------------------------------------------------*\ * die /dev/debug-Schnittstelle \*--------------------------------------------------------------------------------*/ #include #include #include /*--------------------------------------------------------------------------------*\ * alle Daten koennen mit cat /dev/debug abgeholt werden \*--------------------------------------------------------------------------------*/ void avm_DebugPrintf(const char *format, ...); int avm_DebugvPrintf(unsigned *Mode, const char *format, va_list marker); extern __printf(1, 2) __cold int printk_avm(const char *format, ...); extern __printf(1, 0) __cold int vprintk_avm(const char *format, va_list args); #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) static __printf(1, 2) int (*printk_linux)(const char *format, ...) __attribute__((weakref, alias("__printk"))); #endif extern void avm_debug_disable_avm_printk(void); extern void avm_debug_enable_avm_printk(void); /*-------------------------------------------------------------------------------------*\ * Debug-Funktion am Treiber anmelden * prefix: der Inputdaten werden nach diesem Prefix durchsucht, und bei Match * wird die CallbackFkt aufgerufen * um also den string 'blabla=haha' zum Treiber angemeldet mit prefix 'unicate_' zu transportieren * ist einfach ein "echo unicate_blabla=haha >/dev/debug" auf der Konsole auszufuehren * ret: handle (fuer UnRegister) \*-------------------------------------------------------------------------------------*/ void *avm_DebugCallRegister(char *prefix, void (*CallBackDebug)(char *string, void *refdata), void *refdata); /*--------------------------------------------------------------------------------*\ * Debug-Funktion am Treiber abmelden \*--------------------------------------------------------------------------------*/ void avm_DebugCallUnRegister(void *handle); /*--------------------------------------------------------------------------------*\ * signal 0 ...31 * signal: 0 supportdata per pushmail \*--------------------------------------------------------------------------------*/ void avm_DebugSignal(unsigned int signal); void avm_DebugSignalLog(unsigned int signal, char *fmt, ...); /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ struct file; struct inode; typedef ssize_t (*avm_debug_write_t)(struct file *, const char *, size_t , loff_t *); typedef ssize_t (*avm_debug_read_t)(struct file *, char *, size_t , loff_t *); typedef int (*avm_debug_open_t)(struct inode *, struct file *); typedef int (*avm_debug_close_t)(struct inode *, struct file *); typedef long (*avm_debug_ioctl_t)(struct file *, unsigned, unsigned long); int avm_debug_register_minor(int minor, avm_debug_open_t, avm_debug_close_t, avm_debug_write_t, avm_debug_read_t, avm_debug_ioctl_t); int avm_debug_release_minor(int); /*------------------------------------------------------------------------------------------*\ * Genutzte Minor Nummern \*------------------------------------------------------------------------------------------*/ #define NLR_AUDIO_MINOR 1 /*------------------------------------------------------------------------------------------*\ \*------------------------------------------------------------------------------------------*/ #define AVM_DEBUG_MAX_MINOR 1 #define AVM_DEBUG_MINOR_COUNT (AVM_DEBUG_MAX_MINOR+1) #endif /*--- #ifndef _linux_avm_debug_h_ ---*/