mirror of https://gitee.com/openkylin/linux.git
83 lines
1.8 KiB
C
83 lines
1.8 KiB
C
#include <linux/types.h>
|
|
#include <linux/netdevice.h>
|
|
#include <linux/interrupt.h>
|
|
|
|
#include "lmc_debug.h"
|
|
|
|
/*
|
|
* Prints out len, max to 80 octets using printk, 20 per line
|
|
*/
|
|
#ifdef DEBUG
|
|
#ifdef LMC_PACKET_LOG
|
|
void lmcConsoleLog(char *type, unsigned char *ucData, int iLen)
|
|
{
|
|
int iNewLine = 1;
|
|
char str[80], *pstr;
|
|
|
|
sprintf(str, KERN_DEBUG "lmc: %s: ", type);
|
|
pstr = str+strlen(str);
|
|
|
|
if(iLen > 240){
|
|
printk(KERN_DEBUG "lmc: Printing 240 chars... out of: %d\n", iLen);
|
|
iLen = 240;
|
|
}
|
|
else{
|
|
printk(KERN_DEBUG "lmc: Printing %d chars\n", iLen);
|
|
}
|
|
|
|
while(iLen > 0)
|
|
{
|
|
sprintf(pstr, "%02x ", *ucData);
|
|
pstr+=3;
|
|
ucData++;
|
|
if( !(iNewLine % 20))
|
|
{
|
|
sprintf(pstr, "\n");
|
|
printk(str);
|
|
sprintf(str, KERN_DEBUG "lmc: %s: ", type);
|
|
pstr=str+strlen(str);
|
|
}
|
|
iNewLine++;
|
|
iLen--;
|
|
}
|
|
sprintf(pstr, "\n");
|
|
printk(str);
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef DEBUG
|
|
u32 lmcEventLogIndex;
|
|
u32 lmcEventLogBuf[LMC_EVENTLOGSIZE * LMC_EVENTLOGARGS];
|
|
|
|
void lmcEventLog(u32 EventNum, u32 arg2, u32 arg3)
|
|
{
|
|
lmcEventLogBuf[lmcEventLogIndex++] = EventNum;
|
|
lmcEventLogBuf[lmcEventLogIndex++] = arg2;
|
|
lmcEventLogBuf[lmcEventLogIndex++] = arg3;
|
|
lmcEventLogBuf[lmcEventLogIndex++] = jiffies;
|
|
|
|
lmcEventLogIndex &= (LMC_EVENTLOGSIZE * LMC_EVENTLOGARGS) - 1;
|
|
}
|
|
#endif /* DEBUG */
|
|
|
|
void lmc_trace(struct net_device *dev, char *msg){
|
|
#ifdef LMC_TRACE
|
|
unsigned long j = jiffies + 3; /* Wait for 50 ms */
|
|
|
|
if(in_interrupt()){
|
|
printk("%s: * %s\n", dev->name, msg);
|
|
// while(time_before(jiffies, j+10))
|
|
// ;
|
|
}
|
|
else {
|
|
printk("%s: %s\n", dev->name, msg);
|
|
while(time_before(jiffies, j))
|
|
schedule();
|
|
}
|
|
#endif
|
|
}
|
|
|
|
|
|
/* --------------------------- end if_lmc_linux.c ------------------------ */
|