blob: 3b94352b0d03178b31cdf5d364beaffd062c0390 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001
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 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#ifdef DEBUG
12#ifdef LMC_PACKET_LOG
Adrian Bunk7665a082005-09-09 23:17:28 -070013void lmcConsoleLog(char *type, unsigned char *ucData, int iLen)
14{
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 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);
Linus Torvalds1da177e2005-04-16 15:20:36 -070046}
Adrian Bunk7665a082005-09-09 23:17:28 -070047#endif
48#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070049
50#ifdef DEBUG
51u_int32_t lmcEventLogIndex = 0;
52u_int32_t lmcEventLogBuf[LMC_EVENTLOGSIZE * LMC_EVENTLOGARGS];
Linus Torvalds1da177e2005-04-16 15:20:36 -070053
54void lmcEventLog (u_int32_t EventNum, u_int32_t arg2, u_int32_t arg3)
55{
Linus Torvalds1da177e2005-04-16 15:20:36 -070056 lmcEventLogBuf[lmcEventLogIndex++] = EventNum;
57 lmcEventLogBuf[lmcEventLogIndex++] = arg2;
58 lmcEventLogBuf[lmcEventLogIndex++] = arg3;
59 lmcEventLogBuf[lmcEventLogIndex++] = jiffies;
60
61 lmcEventLogIndex &= (LMC_EVENTLOGSIZE * LMC_EVENTLOGARGS) - 1;
Linus Torvalds1da177e2005-04-16 15:20:36 -070062}
Adrian Bunk7665a082005-09-09 23:17:28 -070063#endif /* DEBUG */
Linus Torvalds1da177e2005-04-16 15:20:36 -070064
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 ------------------------ */