1 2#include <linux/types.h> 3#include <linux/netdevice.h> 4#include <linux/interrupt.h> 5 6#include "lmc_debug.h" 7 8/* 9 * Prints out len, max to 80 octets using printk, 20 per line 10 */ 11#ifdef DEBUG 12#ifdef LMC_PACKET_LOG 13void lmcConsoleLog(char *type, unsigned char *ucData, int iLen) 14{ 15 int iNewLine = 1; 16 char str[80], *pstr; 17 18 sprintf(str, KERN_DEBUG "lmc: %s: ", type); 19 pstr = str+strlen(str); 20 21 if(iLen > 240){ 22 printk(KERN_DEBUG "lmc: Printing 240 chars... out of: %d\n", iLen); 23 iLen = 240; 24 } 25 else{ 26 printk(KERN_DEBUG "lmc: Printing %d chars\n", iLen); 27 } 28 29 while(iLen > 0) 30 { 31 sprintf(pstr, "%02x ", *ucData); 32 pstr+=3; 33 ucData++; 34 if( !(iNewLine % 20)) 35 { 36 sprintf(pstr, "\n"); 37 printk(str); 38 sprintf(str, KERN_DEBUG "lmc: %s: ", type); 39 pstr=str+strlen(str); 40 } 41 iNewLine++; 42 iLen--; 43 } 44 sprintf(pstr, "\n"); 45 printk(str); 46} 47#endif 48#endif 49 50#ifdef DEBUG 51u_int32_t lmcEventLogIndex = 0; 52u_int32_t lmcEventLogBuf[LMC_EVENTLOGSIZE * LMC_EVENTLOGARGS]; 53 54void lmcEventLog (u_int32_t EventNum, u_int32_t arg2, u_int32_t arg3) 55{ 56 lmcEventLogBuf[lmcEventLogIndex++] = EventNum; 57 lmcEventLogBuf[lmcEventLogIndex++] = arg2; 58 lmcEventLogBuf[lmcEventLogIndex++] = arg3; 59 lmcEventLogBuf[lmcEventLogIndex++] = jiffies; 60 61 lmcEventLogIndex &= (LMC_EVENTLOGSIZE * LMC_EVENTLOGARGS) - 1; 62} 63#endif /* DEBUG */ 64 65void lmc_trace(struct net_device *dev, char *msg){ 66#ifdef LMC_TRACE 67 unsigned long j = jiffies + 3; /* Wait for 50 ms */ 68 69 if(in_interrupt()){ 70 printk("%s: * %s\n", dev->name, msg); 71// while(time_before(jiffies, j+10)) 72// ; 73 } 74 else { 75 printk("%s: %s\n", dev->name, msg); 76 while(time_before(jiffies, j)) 77 schedule(); 78 } 79#endif 80} 81 82 83/* --------------------------- end if_lmc_linux.c ------------------------ */ 84