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