spbx/roms/srcs/images/ethernet/common/tst_case/dump.txt

2976 lines
90 KiB
Plaintext
Raw Permalink Blame History

gfar_tst-mrs.ko: file format elf32-powerpc
Disassembly of section .text:
00000000 <GetValueBase>:
int i = 0;
int strLen = strlen(pBuf);
if(pBuf)
{
if(pBuf[0] == '0' && pBuf[1] == 'x')
0: 94 21 ff f0 stwu r1,-16(r1)
4: 7c 08 02 a6 mflr r0
8: 93 e1 00 0c stw r31,12(r1)
{
return 16;
}
for(i = 0; i < strLen; i++)
c: 7c 7f 1b 78 mr r31,r3
return 16;
}
}
}
return 10;
10: 90 01 00 14 stw r0,20(r1)
if(pBuf[0] == '0' && pBuf[1] == 'x')
{
return 16;
}
for(i = 0; i < strLen; i++)
14: 48 00 00 01 bl 14 <GetValueBase+0x14>
{
if(TOLOWER(pBuf[i]) >= 'a' && TOLOWER(pBuf[i]) <= 'f')
18: 2f 9f 00 00 cmpwi cr7,r31,0
{
return 16;
1c: 38 00 00 0a li r0,10
return 16;
}
for(i = 0; i < strLen; i++)
{
if(TOLOWER(pBuf[i]) >= 'a' && TOLOWER(pBuf[i]) <= 'f')
20: 41 9e 00 64 beq- cr7,84 <GetValueBase+0x84>
24: 89 3f 00 00 lbz r9,0(r31)
28: 2f 89 00 30 cmpwi cr7,r9,48
2c: 41 9e 00 8c beq- cr7,b8 <GetValueBase+0xb8>
30: 2f 83 00 00 cmpwi cr7,r3,0
34: 38 00 00 0a li r0,10
38: 40 9d 00 4c ble- cr7,84 <GetValueBase+0x84>
3c: 61 29 00 20 ori r9,r9,32
40: 38 00 00 10 li r0,16
44: 39 29 ff 9f addi r9,r9,-97
48: 55 29 06 3e clrlwi r9,r9,24
4c: 2b 89 00 05 cmplwi cr7,r9,5
50: 40 9d 00 34 ble- cr7,84 <GetValueBase+0x84>
if(pBuf[0] == '0' && pBuf[1] == 'x')
{
return 16;
}
for(i = 0; i < strLen; i++)
54: 39 20 00 00 li r9,0
58: 7c 69 03 a6 mtctr r3
return 16;
}
}
}
return 10;
5c: 48 00 00 1c b 78 <GetValueBase+0x78>
}
60: 7d 7f 48 ae lbzx r11,r31,r9
64: 61 6b 00 20 ori r11,r11,32
68: 38 0b ff 9f addi r0,r11,-97
6c: 54 00 06 3e clrlwi r0,r0,24
70: 2b 80 00 05 cmplwi cr7,r0,5
74: 40 9d 00 28 ble- cr7,9c <GetValueBase+0x9c>
for(i = 0; i < strLen; i++)
{
if(TOLOWER(pBuf[i]) >= 'a' && TOLOWER(pBuf[i]) <= 'f')
{
return 16;
78: 39 29 00 01 addi r9,r9,1
}
}
}
return 10;
}
7c: 42 00 ff e4 bdnz+ 60 <GetValueBase+0x60>
80: 38 00 00 0a li r0,10
84: 7c 03 03 78 mr r3,r0
88: 80 01 00 14 lwz r0,20(r1)
8c: 83 e1 00 0c lwz r31,12(r1)
90: 38 21 00 10 addi r1,r1,16
int i = 0;
int strLen = strlen(pBuf);
if(pBuf)
{
if(pBuf[0] == '0' && pBuf[1] == 'x')
94: 7c 08 03 a6 mtlr r0
{
return 16;
98: 4e 80 00 20 blr
int i = 0;
int strLen = strlen(pBuf);
if(pBuf)
{
if(pBuf[0] == '0' && pBuf[1] == 'x')
9c: 38 00 00 10 li r0,16
a0: 83 e1 00 0c lwz r31,12(r1)
a4: 7c 03 03 78 mr r3,r0
PDBGFS_PRIV priv = (PDBGFS_PRIV)(PDE(inode)->data);
return single_open(file, priv->show, priv);
}
static int DbgSeqRelease(struct inode* inode, struct file* file)
{
a8: 80 01 00 14 lwz r0,20(r1)
ac: 38 21 00 10 addi r1,r1,16
b0: 7c 08 03 a6 mtlr r0
return single_release(inode, file);
b4: 4e 80 00 20 blr
}
b8: 89 7f 00 01 lbz r11,1(r31)
bc: 38 00 00 10 li r0,16
c0: 2f 8b 00 78 cmpwi cr7,r11,120
c4: 40 9e ff 6c bne+ cr7,30 <GetValueBase+0x30>
return ERR_DBGFS_UNREGISTER;
}
static int DbgSeqOpen(struct inode* inode, struct file* file)
{
c8: 4b ff ff bc b 84 <GetValueBase+0x84>
000000cc <DbgSeqRelease>:
cc: 94 21 ff f0 stwu r1,-16(r1)
d0: 7c 08 02 a6 mflr r0
PDBGFS_PRIV priv = (PDBGFS_PRIV)(PDE(inode)->data);
d4: 90 01 00 14 stw r0,20(r1)
return single_open(file, priv->show, priv);
d8: 48 00 00 01 bl d8 <DbgSeqRelease+0xc>
return ERR_DBGFS_UNREGISTER;
}
static int DbgSeqOpen(struct inode* inode, struct file* file)
{
PDBGFS_PRIV priv = (PDBGFS_PRIV)(PDE(inode)->data);
dc: 80 01 00 14 lwz r0,20(r1)
return single_open(file, priv->show, priv);
e0: 38 21 00 10 addi r1,r1,16
e4: 7c 08 03 a6 mtlr r0
}
e8: 4e 80 00 20 blr
000000ec <DbgSeqOpen>:
ec: 94 21 ff f0 stwu r1,-16(r1)
f0: 7c 08 02 a6 mflr r0
f4: 90 01 00 14 stw r0,20(r1)
return -1;
}
static int ProcessInputContent(struct seq_file* seq, PCHAR pBuf, PDBGFS_PRIV pv)
{
f8: 81 23 ff f4 lwz r9,-12(r3)
fc: 7c 83 23 78 mr r3,r4
100: 80 a9 00 3c lwz r5,60(r9)
104: 80 85 00 2c lwz r4,44(r5)
int strLen = strlen(pBuf) - 1;
108: 48 00 00 01 bl 108 <DbgSeqOpen+0x1c>
return -1;
}
static int ProcessInputContent(struct seq_file* seq, PCHAR pBuf, PDBGFS_PRIV pv)
{
10c: 80 01 00 14 lwz r0,20(r1)
110: 38 21 00 10 addi r1,r1,16
int strLen = strlen(pBuf) - 1;
CHAR tmpBuf[MAX_CMD_LEN], cmdBuf[32], paramBuf[64];
int i = 0;
BOOL bIsCmd = FALSE;
memset(tmpBuf, 0, MAX_CMD_LEN);
114: 7c 08 03 a6 mtlr r0
return -1;
}
static int ProcessInputContent(struct seq_file* seq, PCHAR pBuf, PDBGFS_PRIV pv)
{
118: 4e 80 00 20 blr
0000011c <ProcessInputContent>:
int strLen = strlen(pBuf) - 1;
11c: 94 21 ff 00 stwu r1,-256(r1)
120: 7c 08 02 a6 mflr r0
CHAR tmpBuf[MAX_CMD_LEN], cmdBuf[32], paramBuf[64];
int i = 0;
BOOL bIsCmd = FALSE;
memset(tmpBuf, 0, MAX_CMD_LEN);
124: bf 41 00 e8 stmw r26,232(r1)
128: 7c 7a 1b 78 mr r26,r3
12c: 7c 83 23 78 mr r3,r4
130: 7c 9f 23 78 mr r31,r4
memset(cmdBuf, 0, 32);
134: 90 01 01 04 stw r0,260(r1)
memset(paramBuf, 0, 64);
138: 3b a1 00 68 addi r29,r1,104
CHAR tmpBuf[MAX_CMD_LEN], cmdBuf[32], paramBuf[64];
int i = 0;
BOOL bIsCmd = FALSE;
memset(tmpBuf, 0, MAX_CMD_LEN);
memset(cmdBuf, 0, 32);
13c: 7c bb 2b 78 mr r27,r5
memset(paramBuf, 0, 64);
140: 48 00 00 01 bl 140 <ProcessInputContent+0x24>
144: 7c 7e 1b 78 mr r30,r3
CHAR tmpBuf[MAX_CMD_LEN], cmdBuf[32], paramBuf[64];
int i = 0;
BOOL bIsCmd = FALSE;
memset(tmpBuf, 0, MAX_CMD_LEN);
memset(cmdBuf, 0, 32);
148: 38 80 00 00 li r4,0
14c: 38 a0 00 80 li r5,128
150: 7f a3 eb 78 mr r3,r29
154: 48 00 00 01 bl 154 <ProcessInputContent+0x38>
158: 38 00 00 00 li r0,0
15c: 38 a0 00 40 li r5,64
160: 90 01 00 08 stw r0,8(r1)
memset(paramBuf, 0, 64);
164: 38 80 00 00 li r4,0
strcpy(tmpBuf, pBuf);
168: 38 61 00 28 addi r3,r1,40
16c: 90 01 00 0c stw r0,12(r1)
170: 90 01 00 10 stw r0,16(r1)
if(pBuf == NULL && pv == NULL)
174: 90 01 00 14 stw r0,20(r1)
178: 90 01 00 18 stw r0,24(r1)
{
return ERR_PARA_OUTOFRANGE;
}
for(i = 0; i < strLen; i++)
17c: 90 01 00 1c stw r0,28(r1)
180: 90 01 00 20 stw r0,32(r1)
{
if(tmpBuf[i] == ' ')
184: 90 01 00 24 stw r0,36(r1)
188: 48 00 00 01 bl 188 <ProcessInputContent+0x6c>
18c: 7f a3 eb 78 mr r3,r29
190: 7f e4 fb 78 mr r4,r31
194: 48 00 00 01 bl 194 <ProcessInputContent+0x78>
198: 2f 9f 00 00 cmpwi cr7,r31,0
19c: 41 9e 00 c0 beq- cr7,25c <ProcessInputContent+0x140>
1a0: 37 9e ff ff addic. r28,r30,-1
1a4: 40 81 00 30 ble- 1d4 <ProcessInputContent+0xb8>
if(pBuf == NULL && pv == NULL)
{
return ERR_PARA_OUTOFRANGE;
}
for(i = 0; i < strLen; i++)
1a8: 88 01 00 68 lbz r0,104(r1)
1ac: 3b c0 00 00 li r30,0
}
}
if(!bIsCmd)
{
if(strict_strtoul(pBuf, GetValueBase(pBuf), (long unsigned int*)&pv->params))
1b0: 7f 89 03 a6 mtctr r28
1b4: 2f 80 00 20 cmpwi cr7,r0,32
1b8: 40 be 00 14 bne+ cr7,1cc <ProcessInputContent+0xb0>
1bc: 48 00 00 f0 b 2ac <ProcessInputContent+0x190>
1c0: 7c 1d f0 ae lbzx r0,r29,r30
1c4: 2f 80 00 20 cmpwi cr7,r0,32
1c8: 41 9e 00 44 beq- cr7,20c <ProcessInputContent+0xf0>
1cc: 3b de 00 01 addi r30,r30,1
{
pv->ioctl(seq, cmdBuf, paramBuf);
}
}
return ERR_PARA_OUTOFRANGE;
1d0: 42 00 ff f0 bdnz+ 1c0 <ProcessInputContent+0xa4>
}
1d4: 7f e3 fb 78 mr r3,r31
1d8: 4b ff fe 29 bl 0 <GetValueBase>
1dc: 38 bb 00 20 addi r5,r27,32
1e0: 7c 64 1b 78 mr r4,r3
1e4: 7f e3 fb 78 mr r3,r31
return ERR_PARA_OUTOFRANGE;
}
for(i = 0; i < strLen; i++)
{
if(tmpBuf[i] == ' ')
1e8: 48 00 00 01 bl 1e8 <ProcessInputContent+0xcc>
1ec: 2f 83 00 00 cmpwi cr7,r3,0
{
strncpy(cmdBuf, tmpBuf, i);
1f0: 40 9e 00 7c bne- cr7,26c <ProcessInputContent+0x150>
1f4: 38 60 00 01 li r3,1
1f8: 80 01 01 04 lwz r0,260(r1)
strncpy(paramBuf, &tmpBuf[i + 1], MAX(strLen - i - 1, 0));
1fc: bb 41 00 e8 lmw r26,232(r1)
200: 38 21 01 00 addi r1,r1,256
204: 7c 08 03 a6 mtlr r0
208: 4e 80 00 20 blr
20c: 7f c5 f3 78 mr r5,r30
210: 3b fe 00 01 addi r31,r30,1
return -ERR_DBGFS_WRITEOPTS;
}
}
else
{
if(pv->ioctl != NULL)
214: 7f a4 eb 78 mr r4,r29
218: 38 61 00 08 addi r3,r1,8
21c: 48 00 00 01 bl 21c <ProcessInputContent+0x100>
{
pv->ioctl(seq, cmdBuf, paramBuf);
220: 38 bc ff ff addi r5,r28,-1
224: 7c be 28 51 subf. r5,r30,r5
228: 7c a0 28 1e .long 0x7ca0281e
22c: 38 61 00 28 addi r3,r1,40
230: 7c 9d fa 14 add r4,r29,r31
234: 48 00 00 01 bl 234 <ProcessInputContent+0x118>
memset(cmdBuf, 0, 32);
memset(paramBuf, 0, 64);
strcpy(tmpBuf, pBuf);
if(pBuf == NULL && pv == NULL)
238: 80 1b 00 30 lwz r0,48(r27)
{
return ERR_PARA_OUTOFRANGE;
23c: 2f 80 00 00 cmpwi cr7,r0,0
memset(cmdBuf, 0, 32);
memset(paramBuf, 0, 64);
strcpy(tmpBuf, pBuf);
if(pBuf == NULL && pv == NULL)
240: 41 be ff b4 beq- cr7,1f4 <ProcessInputContent+0xd8>
244: 7f 43 d3 78 mr r3,r26
if(!bIsCmd)
{
if(strict_strtoul(pBuf, GetValueBase(pBuf), (long unsigned int*)&pv->params))
{
LOG_EX(LOG_Error, "strict_strtoul [%s] base %d Error\n", pBuf, GetValueBase(pBuf));
248: 38 81 00 08 addi r4,r1,8
24c: 38 a1 00 28 addi r5,r1,40
250: 7c 09 03 a6 mtctr r0
254: 4e 80 04 21 bctrl
258: 4b ff ff 9c b 1f4 <ProcessInputContent+0xd8>
25c: 2f 9b 00 00 cmpwi cr7,r27,0
260: 38 60 00 01 li r3,1
264: 40 9e ff 3c bne+ cr7,1a0 <ProcessInputContent+0x84>
268: 4b ff ff 90 b 1f8 <ProcessInputContent+0xdc>
26c: 7f e3 fb 78 mr r3,r31
270: 4b ff fd 91 bl 0 <GetValueBase>
274: 3c 80 00 00 lis r4,0
278: 3c a0 00 00 lis r5,0
27c: 3c c0 00 00 lis r6,0
return -ERR_DBGFS_WRITEOPTS;
280: 7c 69 1b 78 mr r9,r3
284: 38 84 00 00 addi r4,r4,0
return ERR_PARA_OUTOFRANGE;
}
for(i = 0; i < strLen; i++)
{
if(tmpBuf[i] == ' ')
288: 38 60 00 02 li r3,2
28c: 38 a5 00 03 addi r5,r5,3
290: 38 c6 00 00 addi r6,r6,0
294: 38 e0 00 d7 li r7,215
}
static ssize_t DgbSeqOptionsWrite(struct file* file, const char __user* userbuf,
size_t count, loff_t* data)
{
298: 7f e8 fb 78 mr r8,r31
29c: 4c c6 31 82 crclr 4*cr1+eq
char buf[64];
struct seq_file* seq = (struct seq_file*)file->private_data;
PDBGFS_PRIV pv = (PDBGFS_PRIV)seq->private;
if(count >= sizeof(buf))
2a0: 48 00 00 01 bl 2a0 <ProcessInputContent+0x184>
}
static ssize_t DgbSeqOptionsWrite(struct file* file, const char __user* userbuf,
size_t count, loff_t* data)
{
2a4: 38 60 ff fb li r3,-5
2a8: 4b ff ff 50 b 1f8 <ProcessInputContent+0xdc>
2ac: 3b e0 00 01 li r31,1
2b0: 38 a0 00 00 li r5,0
char buf[64];
struct seq_file* seq = (struct seq_file*)file->private_data;
2b4: 3b c0 00 00 li r30,0
PDBGFS_PRIV pv = (PDBGFS_PRIV)seq->private;
2b8: 4b ff ff 5c b 214 <ProcessInputContent+0xf8>
000002bc <DgbSeqOptionsWrite>:
if(count >= sizeof(buf))
2bc: 94 21 ff a0 stwu r1,-96(r1)
static inline unsigned long copy_from_user(void *to,
const void __user *from, unsigned long n)
{
unsigned long over;
if (access_ok(VERIFY_READ, from, n))
2c0: 7c 08 02 a6 mflr r0
2c4: 2b 85 00 3f cmplwi cr7,r5,63
2c8: bf 61 00 4c stmw r27,76(r1)
2cc: 7c 7d 1b 78 mr r29,r3
2d0: 90 01 00 64 stw r0,100(r1)
2d4: 7c bf 2b 78 mr r31,r5
2d8: 83 c3 00 68 lwz r30,104(r3)
2dc: 83 9e 00 38 lwz r28,56(r30)
2e0: 41 9d 01 28 bgt- cr7,408 <DgbSeqOptionsWrite+0x14c>
return __copy_tofrom_user((__force void __user *)to, from, n);
2e4: 80 02 01 ec lwz r0,492(r2)
2e8: 7f 84 00 40 cmplw cr7,r4,r0
2ec: 41 9d 00 a8 bgt- cr7,394 <DgbSeqOptionsWrite+0xd8>
LOG_EX(LOG_Error, "Input Params Error:count = %d, max size = %d\n", count,
sizeof(buf));
return -ERR_PARA_OUTOFRANGE;
}
if(copy_from_user(buf, userbuf, count))
2f0: 2f 85 00 00 cmpwi cr7,r5,0
2f4: 41 9e 00 14 beq- cr7,308 <DgbSeqOptionsWrite+0x4c>
{
LOG_EX(LOG_Error, "Copy Data To Kernel Error\n");
return -ERR_DBGFS_WRITEOPTS;
}
if(buf[0] == 'h' &&
2f8: 39 25 ff ff addi r9,r5,-1
2fc: 7c 04 00 50 subf r0,r4,r0
300: 7f 89 00 40 cmplw cr7,r9,r0
}
return count;
}
buf[count] = 0x00;
304: 41 9d 00 90 bgt- cr7,394 <DgbSeqOptionsWrite+0xd8>
308: 38 61 00 08 addi r3,r1,8
30c: 7f e5 fb 78 mr r5,r31
if(ProcessInputContent(seq, buf, pv) == ERR_PARA_OUTOFRANGE)
310: 48 00 00 01 bl 310 <DgbSeqOptionsWrite+0x54>
314: 2f 83 00 00 cmpwi cr7,r3,0
318: 40 9e 01 2c bne- cr7,444 <DgbSeqOptionsWrite+0x188>
31c: 88 01 00 08 lbz r0,8(r1)
320: 2f 80 00 68 cmpwi cr7,r0,104
324: 41 9e 00 a0 beq- cr7,3c4 <DgbSeqOptionsWrite+0x108>
// (strlen(pv->cmd) <= 0) ? "NA" : pv->cmd,
// pv->params, pv->params);
}
else
{
LOG_EX(LOG_Error, "Input [%s] Process Error\n", buf);
328: 7d 21 fa 14 add r9,r1,r31
32c: 38 00 00 00 li r0,0
330: 98 09 00 08 stb r0,8(r9)
334: 7f c3 f3 78 mr r3,r30
338: 38 81 00 08 addi r4,r1,8
33c: 7f 85 e3 78 mr r5,r28
340: 4b ff fd dd bl 11c <ProcessInputContent>
344: 2f 83 00 01 cmpwi cr7,r3,1
348: 41 9e 00 34 beq- cr7,37c <DgbSeqOptionsWrite+0xc0>
34c: 3c c0 00 00 lis r6,0
350: 3c 80 00 00 lis r4,0
354: 3c a0 00 00 lis r5,0
}
return count;
358: 38 c6 00 00 addi r6,r6,0
}
35c: 38 60 00 02 li r3,2
360: 38 84 00 ac addi r4,r4,172
364: 38 a5 00 03 addi r5,r5,3
368: 38 c6 00 14 addi r6,r6,20
36c: 38 e0 01 13 li r7,275
if ((unsigned long)from < TASK_SIZE) {
370: 39 01 00 08 addi r8,r1,8
374: 4c c6 31 82 crclr 4*cr1+eq
378: 48 00 00 01 bl 378 <DgbSeqOptionsWrite+0xbc>
37c: 7f e3 fb 78 mr r3,r31
380: 80 01 00 64 lwz r0,100(r1)
over = (unsigned long)from + n - TASK_SIZE;
384: bb 61 00 4c lmw r27,76(r1)
return __copy_tofrom_user((__force void __user *)to, from,
388: 38 21 00 60 addi r1,r1,96
unsigned long over;
if (access_ok(VERIFY_READ, from, n))
return __copy_tofrom_user((__force void __user *)to, from, n);
if ((unsigned long)from < TASK_SIZE) {
over = (unsigned long)from + n - TASK_SIZE;
38c: 7c 08 03 a6 mtlr r0
return __copy_tofrom_user((__force void __user *)to, from,
390: 4e 80 00 20 blr
394: 3c 00 bf ff lis r0,-16385
398: 7f e3 fb 78 mr r3,r31
39c: 60 00 ff ff ori r0,r0,65535
{
LOG_EX(LOG_Error, "Copy Data To Kernel Error\n");
return -ERR_DBGFS_WRITEOPTS;
}
if(buf[0] == 'h' &&
3a0: 7f 84 00 40 cmplw cr7,r4,r0
3a4: 41 9d ff 70 bgt+ cr7,314 <DgbSeqOptionsWrite+0x58>
3a8: 7f 64 fa 14 add r27,r4,r31
buf[1] == 'e' &&
3ac: 38 61 00 08 addi r3,r1,8
3b0: 3f 7b 40 00 addis r27,r27,16384
3b4: 7c bb f8 50 subf r5,r27,r31
buf[2] == 'l' &&
3b8: 48 00 00 01 bl 3b8 <DgbSeqOptionsWrite+0xfc>
3bc: 7c 63 da 14 add r3,r3,r27
3c0: 4b ff ff 54 b 314 <DgbSeqOptionsWrite+0x58>
buf[3] == 'p')
{
if(pv->help != NULL)
3c4: 88 01 00 09 lbz r0,9(r1)
3c8: 2f 80 00 65 cmpwi cr7,r0,101
3cc: 40 9e ff 5c bne+ cr7,328 <DgbSeqOptionsWrite+0x6c>
{
pv->help((struct seq_file*)file->private_data, pv);
3d0: 88 01 00 0a lbz r0,10(r1)
3d4: 2f 80 00 6c cmpwi cr7,r0,108
3d8: 40 9e ff 50 bne+ cr7,328 <DgbSeqOptionsWrite+0x6c>
3dc: 88 01 00 0b lbz r0,11(r1)
3e0: 2f 80 00 70 cmpwi cr7,r0,112
struct seq_file* seq = (struct seq_file*)file->private_data;
PDBGFS_PRIV pv = (PDBGFS_PRIV)seq->private;
if(count >= sizeof(buf))
{
LOG_EX(LOG_Error, "Input Params Error:count = %d, max size = %d\n", count,
3e4: 40 9e ff 44 bne+ cr7,328 <DgbSeqOptionsWrite+0x6c>
3e8: 80 1c 00 34 lwz r0,52(r28)
3ec: 2f 80 00 00 cmpwi cr7,r0,0
3f0: 41 be ff 8c beq- cr7,37c <DgbSeqOptionsWrite+0xc0>
3f4: 80 7d 00 68 lwz r3,104(r29)
3f8: 7f 84 e3 78 mr r4,r28
3fc: 7c 09 03 a6 mtctr r0
400: 4e 80 04 21 bctrl
404: 4b ff ff 78 b 37c <DgbSeqOptionsWrite+0xc0>
408: 3c c0 00 00 lis r6,0
40c: 3c 80 00 00 lis r4,0
410: 3c a0 00 00 lis r5,0
414: 38 c6 00 00 addi r6,r6,0
sizeof(buf));
return -ERR_PARA_OUTOFRANGE;
418: 38 60 00 02 li r3,2
41c: 38 84 00 44 addi r4,r4,68
}
if(copy_from_user(buf, userbuf, count))
{
LOG_EX(LOG_Error, "Copy Data To Kernel Error\n");
420: 38 a5 00 03 addi r5,r5,3
424: 38 c6 00 14 addi r6,r6,20
428: 38 e0 00 f1 li r7,241
42c: 7f e8 fb 78 mr r8,r31
430: 39 20 00 40 li r9,64
434: 4c c6 31 82 crclr 4*cr1+eq
438: 48 00 00 01 bl 438 <DgbSeqOptionsWrite+0x17c>
43c: 38 60 ff ff li r3,-1
440: 4b ff ff 40 b 380 <DgbSeqOptionsWrite+0xc4>
444: 3c c0 00 00 lis r6,0
448: 3c 80 00 00 lis r4,0
return -ERR_DBGFS_WRITEOPTS;
44c: 3c a0 00 00 lis r5,0
450: 38 c6 00 00 addi r6,r6,0
static const struct file_operations g_DbgSeq_fops;
static struct proc_dir_entry* g_DebugProcFS;
INT32 InitDebugInfoProc(const char* proc_dir_name)
{
454: 38 60 00 02 li r3,2
458: 38 84 00 80 addi r4,r4,128
if(proc_dir_name)
45c: 38 a5 00 03 addi r5,r5,3
static const struct file_operations g_DbgSeq_fops;
static struct proc_dir_entry* g_DebugProcFS;
INT32 InitDebugInfoProc(const char* proc_dir_name)
{
460: 38 c6 00 14 addi r6,r6,20
{
return ERR_DBGFS_NO_ERROR;
}
}
return ERR_DBGFS_INIT;
464: 38 e0 00 f7 li r7,247
static struct proc_dir_entry* g_DebugProcFS;
INT32 InitDebugInfoProc(const char* proc_dir_name)
{
if(proc_dir_name)
468: 4c c6 31 82 crclr 4*cr1+eq
{
g_DebugProcFS = proc_mkdir(proc_dir_name, NULL);
46c: 48 00 00 01 bl 46c <DgbSeqOptionsWrite+0x1b0>
470: 38 60 ff fb li r3,-5
474: 4b ff ff 0c b 380 <DgbSeqOptionsWrite+0xc4>
00000478 <InitDebugInfoProc>:
478: 94 21 ff f0 stwu r1,-16(r1)
if(g_DebugProcFS != NULL)
47c: 7c 08 02 a6 mflr r0
{
return ERR_DBGFS_NO_ERROR;
}
}
return ERR_DBGFS_INIT;
480: 2f 83 00 00 cmpwi cr7,r3,0
484: 90 01 00 14 stw r0,20(r1)
488: 38 00 00 02 li r0,2
}
48c: 41 9e 00 24 beq- cr7,4b0 <InitDebugInfoProc+0x38>
490: 38 80 00 00 li r4,0
494: 48 00 00 01 bl 494 <InitDebugInfoProc+0x1c>
498: 3d 20 00 00 lis r9,0
49c: 90 69 00 00 stw r3,0(r9)
void DeInitDebugInfoProc(void)
{
4a0: 2f 83 00 00 cmpwi cr7,r3,0
4a4: 38 00 00 00 li r0,0
remove_proc_entry(g_DebugProcFS->name, NULL);
4a8: 39 20 00 02 li r9,2
4ac: 7c 09 07 9e .long 0x7c09079e
4b0: 7c 03 03 78 mr r3,r0
return ERR_DBGFS_INIT;
}
void DeInitDebugInfoProc(void)
{
4b4: 80 01 00 14 lwz r0,20(r1)
remove_proc_entry(g_DebugProcFS->name, NULL);
4b8: 38 21 00 10 addi r1,r1,16
4bc: 7c 08 03 a6 mtlr r0
}
4c0: 4e 80 00 20 blr
000004c4 <DeInitDebugInfoProc>:
4c4: 94 21 ff f0 stwu r1,-16(r1)
4c8: 7c 08 02 a6 mflr r0
4cc: 3d 20 00 00 lis r9,0
INT32 DebugFsRegister(PDBGFS_PRIV pv)
{
4d0: 38 80 00 00 li r4,0
4d4: 81 29 00 00 lwz r9,0(r9)
4d8: 90 01 00 14 stw r0,20(r1)
struct proc_dir_entry* file;
if(pv == NULL)
4dc: 80 69 00 08 lwz r3,8(r9)
{
remove_proc_entry(g_DebugProcFS->name, NULL);
}
INT32 DebugFsRegister(PDBGFS_PRIV pv)
{
4e0: 48 00 00 01 bl 4e0 <DeInitDebugInfoProc+0x1c>
struct proc_dir_entry* file;
if(pv == NULL)
{
return ERR_PARA_OUTOFRANGE;
4e4: 80 01 00 14 lwz r0,20(r1)
INT32 DebugFsRegister(PDBGFS_PRIV pv)
{
struct proc_dir_entry* file;
if(pv == NULL)
4e8: 38 21 00 10 addi r1,r1,16
{
return ERR_PARA_OUTOFRANGE;
}
file = create_proc_entry(pv->name, 0, g_DebugProcFS);
4ec: 7c 08 03 a6 mtlr r0
4f0: 4e 80 00 20 blr
000004f4 <DebugFsRegister>:
4f4: 94 21 ff f0 stwu r1,-16(r1)
4f8: 7c 08 02 a6 mflr r0
if(!file)
{
return ERR_DBGFS_REGISTER;
4fc: 93 e1 00 0c stw r31,12(r1)
return ERR_PARA_OUTOFRANGE;
}
file = create_proc_entry(pv->name, 0, g_DebugProcFS);
if(!file)
500: 7c 7f 1b 79 mr. r31,r3
504: 90 01 00 14 stw r0,20(r1)
{
return ERR_DBGFS_REGISTER;
}
else
{
file->proc_fops = &g_DbgSeq_fops;
508: 38 00 00 01 li r0,1
file->data = pv;
50c: 41 82 00 38 beq- 544 <DebugFsRegister+0x50>
{
return ERR_DBGFS_REGISTER;
}
else
{
file->proc_fops = &g_DbgSeq_fops;
510: 3d 20 00 00 lis r9,0
514: 38 80 00 00 li r4,0
518: 80 a9 00 00 lwz r5,0(r9)
file->data = pv;
}
return ERR_DBGFS_NO_ERROR;
51c: 48 00 00 01 bl 51c <DebugFsRegister+0x28>
}
520: 38 00 00 03 li r0,3
524: 2c 03 00 00 cmpwi r3,0
528: 41 82 00 1c beq- 544 <DebugFsRegister+0x50>
52c: 3d 20 00 00 lis r9,0
530: 93 e3 00 3c stw r31,60(r3)
534: 39 29 00 00 addi r9,r9,0
INT32 DebugFsUnRegister(PDBGFS_PRIV pv)
{
538: 38 09 00 28 addi r0,r9,40
53c: 90 03 00 2c stw r0,44(r3)
540: 38 00 00 00 li r0,0
{
remove_proc_entry(pv->name, g_DebugProcFS);
return ERR_DBGFS_NO_ERROR;
}
return ERR_DBGFS_UNREGISTER;
544: 7c 03 03 78 mr r3,r0
}
INT32 DebugFsUnRegister(PDBGFS_PRIV pv)
{
if(strlen(pv->name) > 0)
548: 80 01 00 14 lwz r0,20(r1)
54c: 83 e1 00 0c lwz r31,12(r1)
550: 38 21 00 10 addi r1,r1,16
{
remove_proc_entry(pv->name, g_DebugProcFS);
554: 7c 08 03 a6 mtlr r0
558: 4e 80 00 20 blr
0000055c <DebugFsUnRegister>:
55c: 94 21 ff f0 stwu r1,-16(r1)
return ERR_DBGFS_NO_ERROR;
560: 7c 08 02 a6 mflr r0
}
return ERR_DBGFS_UNREGISTER;
}
564: 90 01 00 14 stw r0,20(r1)
568: 38 00 00 04 li r0,4
56c: 89 23 00 00 lbz r9,0(r3)
570: 2f 89 00 00 cmpwi cr7,r9,0
574: 41 be 00 14 beq+ cr7,588 <DebugFsUnRegister+0x2c>
return 10;
}
int GetStringParamValue(PCHAR pBuf, int index, PCHAR pValue, UINT32 maxBytes)
{
578: 3d 20 00 00 lis r9,0
57c: 80 89 00 00 lwz r4,0(r9)
580: 48 00 00 01 bl 580 <DebugFsUnRegister+0x24>
584: 38 00 00 00 li r0,0
CHAR tmpBuf[128];
char* token;
char* s = tmpBuf;
588: 7c 03 03 78 mr r3,r0
int paramIndex = 0;
if(pBuf == NULL || index < 0 || pValue == NULL)
58c: 80 01 00 14 lwz r0,20(r1)
return 10;
}
int GetStringParamValue(PCHAR pBuf, int index, PCHAR pValue, UINT32 maxBytes)
{
590: 38 21 00 10 addi r1,r1,16
594: 7c 08 03 a6 mtlr r0
598: 4e 80 00 20 blr
0000059c <GetStringParamValue>:
59c: 94 21 ff 50 stwu r1,-176(r1)
CHAR tmpBuf[128];
char* token;
char* s = tmpBuf;
5a0: 7d 80 00 26 mfcr r12
int paramIndex = 0;
if(pBuf == NULL || index < 0 || pValue == NULL)
{
return ERR_PARA_OUTOFRANGE;
5a4: 7c 08 02 a6 mflr r0
CHAR tmpBuf[128];
char* token;
char* s = tmpBuf;
int paramIndex = 0;
if(pBuf == NULL || index < 0 || pValue == NULL)
5a8: bf 81 00 a0 stmw r28,160(r1)
5ac: 3b a1 00 0c addi r29,r1,12
5b0: 7c 7c 1b 79 mr. r28,r3
5b4: 90 01 00 b4 stw r0,180(r1)
5b8: 91 81 00 9c stw r12,156(r1)
{
return ERR_PARA_OUTOFRANGE;
}
memset(pValue, 0, maxBytes);
5bc: 7c 9f 23 78 mr r31,r4
5c0: 7c be 2b 78 mr r30,r5
5c4: 93 a1 00 08 stw r29,8(r1)
5c8: 38 60 00 01 li r3,1
strcpy(tmpBuf, pBuf);
5cc: 41 82 00 80 beq- 64c <GetStringParamValue+0xb0>
for(token = strsep(&s, " ");
5d0: 2e 04 00 00 cmpwi cr4,r4,0
return ERR_PARA_OUTOFRANGE;
}
memset(pValue, 0, maxBytes);
strcpy(tmpBuf, pBuf);
5d4: 41 90 00 78 blt- cr4,64c <GetStringParamValue+0xb0>
for(token = strsep(&s, " ");
5d8: 2f 85 00 00 cmpwi cr7,r5,0
return ERR_PARA_OUTOFRANGE;
}
memset(pValue, 0, maxBytes);
strcpy(tmpBuf, pBuf);
5dc: 41 9e 00 70 beq- cr7,64c <GetStringParamValue+0xb0>
for(token = strsep(&s, " ");
5e0: 7c c5 33 78 mr r5,r6
5e4: 38 80 00 00 li r4,0
5e8: 7f c3 f3 78 mr r3,r30
5ec: 48 00 00 01 bl 5ec <GetStringParamValue+0x50>
5f0: 7f 84 e3 78 mr r4,r28
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
5f4: 3f 80 00 00 lis r28,0
5f8: 7f a3 eb 78 mr r3,r29
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
token != NULL;
token = strsep(&s, " "))
5fc: 3b 9c 00 d4 addi r28,r28,212
600: 48 00 00 01 bl 600 <GetStringParamValue+0x64>
604: 7f 84 e3 78 mr r4,r28
{
if(token != NULL)
{
if(index != paramIndex)
{
paramIndex += 1;
608: 38 61 00 08 addi r3,r1,8
memset(pValue, 0, maxBytes);
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
60c: 48 00 00 01 bl 60c <GetStringParamValue+0x70>
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
610: 7c 64 1b 79 mr. r4,r3
memset(pValue, 0, maxBytes);
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
614: 41 82 00 54 beq- 668 <GetStringParamValue+0xcc>
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
618: 41 92 00 28 beq- cr4,640 <GetStringParamValue+0xa4>
{
paramIndex += 1;
continue;
}
strcpy(pValue, token);
61c: 3b a0 00 00 li r29,0
620: 7f 84 e3 78 mr r4,r28
return ERR_DBGFS_NO_ERROR;
624: 38 61 00 08 addi r3,r1,8
}
}
return ERR_DBGFS_WRITEOPTS;
}
628: 48 00 00 01 bl 628 <GetStringParamValue+0x8c>
62c: 3b bd 00 01 addi r29,r29,1
630: 7c 64 1b 79 mr. r4,r3
634: 7f 9f e8 00 cmpw cr7,r31,r29
638: 41 82 00 30 beq- 668 <GetStringParamValue+0xcc>
63c: 40 9e ff e4 bne+ cr7,620 <GetStringParamValue+0x84>
640: 7f c3 f3 78 mr r3,r30
644: 48 00 00 01 bl 644 <GetStringParamValue+0xa8>
return ERR_DBGFS_NO_ERROR;
}
}
return ERR_DBGFS_WRITEOPTS;
648: 38 60 00 00 li r3,0
}
64c: 80 01 00 b4 lwz r0,180(r1)
650: 81 81 00 9c lwz r12,156(r1)
654: bb 81 00 a0 lmw r28,160(r1)
658: 38 21 00 b0 addi r1,r1,176
65c: 7c 08 03 a6 mtlr r0
660: 7d 80 81 20 mtcrf 8,r12
int GetIntParamValue(PCHAR pBuf, int index)
{
664: 4e 80 00 20 blr
668: 80 01 00 b4 lwz r0,180(r1)
66c: 38 60 00 05 li r3,5
CHAR tmpBuf[128];
char* token;
char* s = tmpBuf;
int paramIndex = 0;
int paramValue = -1;
670: 81 81 00 9c lwz r12,156(r1)
if(pBuf == NULL || index < 0)
674: bb 81 00 a0 lmw r28,160(r1)
return ERR_DBGFS_WRITEOPTS;
}
int GetIntParamValue(PCHAR pBuf, int index)
{
678: 38 21 00 b0 addi r1,r1,176
CHAR tmpBuf[128];
char* token;
char* s = tmpBuf;
67c: 7c 08 03 a6 mtlr r0
return ERR_DBGFS_WRITEOPTS;
}
int GetIntParamValue(PCHAR pBuf, int index)
{
680: 7d 80 81 20 mtcrf 8,r12
684: 4e 80 00 20 blr
00000688 <GetIntParamValue>:
688: 94 21 ff 50 stwu r1,-176(r1)
int paramIndex = 0;
int paramValue = -1;
if(pBuf == NULL || index < 0)
{
return -1;
68c: 7c 08 02 a6 mflr r0
int GetIntParamValue(PCHAR pBuf, int index)
{
CHAR tmpBuf[128];
char* token;
char* s = tmpBuf;
690: 7d 80 00 26 mfcr r12
int paramIndex = 0;
int paramValue = -1;
694: 39 20 ff ff li r9,-1
if(pBuf == NULL || index < 0)
698: 2c 03 00 00 cmpwi r3,0
}
}
}
return -1;
}
69c: 90 01 00 b4 stw r0,180(r1)
6a0: 38 01 00 10 addi r0,r1,16
6a4: bf 81 00 a0 stmw r28,160(r1)
6a8: 7c 9d 23 78 mr r29,r4
6ac: 91 81 00 9c stw r12,156(r1)
6b0: 3b c0 ff ff li r30,-1
6b4: 90 01 00 08 stw r0,8(r1)
6b8: 91 21 00 0c stw r9,12(r1)
char* token;
char* s = tmpBuf;
int paramIndex = 0;
int paramValue = -1;
if(pBuf == NULL || index < 0)
6bc: 40 82 00 24 bne- 6e0 <GetIntParamValue+0x58>
6c0: 80 01 00 b4 lwz r0,180(r1)
return -1;
}
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
6c4: 7f c3 f3 78 mr r3,r30
if(pBuf == NULL || index < 0)
{
return -1;
}
strcpy(tmpBuf, pBuf);
6c8: 81 81 00 9c lwz r12,156(r1)
for(token = strsep(&s, " ");
6cc: bb 81 00 a0 lmw r28,160(r1)
if(pBuf == NULL || index < 0)
{
return -1;
}
strcpy(tmpBuf, pBuf);
6d0: 38 21 00 b0 addi r1,r1,176
6d4: 7c 08 03 a6 mtlr r0
for(token = strsep(&s, " ");
6d8: 7d 80 81 20 mtcrf 8,r12
6dc: 4e 80 00 20 blr
6e0: 2e 04 00 00 cmpwi cr4,r4,0
6e4: 41 90 ff dc blt+ cr4,6c0 <GetIntParamValue+0x38>
6e8: 3f 80 00 00 lis r28,0
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
6ec: 7c 64 1b 78 mr r4,r3
{
paramIndex += 1;
continue;
}
if(strict_strtol(token, GetValueBase(token), (long*)&paramValue))
6f0: 3b 9c 00 d4 addi r28,r28,212
6f4: 7c 03 03 78 mr r3,r0
6f8: 48 00 00 01 bl 6f8 <GetIntParamValue+0x70>
6fc: 38 61 00 08 addi r3,r1,8
700: 7f 84 e3 78 mr r4,r28
704: 48 00 00 01 bl 704 <GetIntParamValue+0x7c>
708: 7c 7f 1b 79 mr. r31,r3
70c: 41 a2 ff b4 beq- 6c0 <GetIntParamValue+0x38>
LOG_EX(LOG_Error, "strict_strtol [%s] Error\n", token);
return -1;
}
else
{
return paramValue;
710: 40 92 00 2c bne- cr4,73c <GetIntParamValue+0xb4>
714: 7f e3 fb 78 mr r3,r31
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
718: 4b ff f8 e9 bl 0 <GetValueBase>
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
token != NULL;
token = strsep(&s, " "))
71c: 38 a1 00 0c addi r5,r1,12
720: 7c 64 1b 78 mr r4,r3
724: 7f e3 fb 78 mr r3,r31
{
if(token != NULL)
{
if(index != paramIndex)
{
paramIndex += 1;
728: 48 00 00 01 bl 728 <GetIntParamValue+0xa0>
return -1;
}
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
72c: 2f 83 00 00 cmpwi cr7,r3,0
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
730: 40 9e 00 34 bne- cr7,764 <GetIntParamValue+0xdc>
return -1;
}
strcpy(tmpBuf, pBuf);
for(token = strsep(&s, " ");
734: 83 c1 00 0c lwz r30,12(r1)
token != NULL;
token = strsep(&s, " "))
{
if(token != NULL)
{
if(index != paramIndex)
738: 4b ff ff 88 b 6c0 <GetIntParamValue+0x38>
73c: 3b c0 00 00 li r30,0
continue;
}
if(strict_strtol(token, GetValueBase(token), (long*)&paramValue))
{
LOG_EX(LOG_Error, "strict_strtol [%s] Error\n", token);
740: 38 61 00 08 addi r3,r1,8
744: 7f 84 e3 78 mr r4,r28
748: 48 00 00 01 bl 748 <GetIntParamValue+0xc0>
74c: 3b de 00 01 addi r30,r30,1
750: 7c 7f 1b 79 mr. r31,r3
754: 7f 9d f0 00 cmpw cr7,r29,r30
758: 41 82 00 3c beq- 794 <GetIntParamValue+0x10c>
75c: 41 9e ff b8 beq+ cr7,714 <GetIntParamValue+0x8c>
760: 4b ff ff e0 b 740 <GetIntParamValue+0xb8>
764: 3c c0 00 00 lis r6,0
768: 3c 80 00 00 lis r4,0
76c: 3c a0 00 00 lis r5,0
return -1;
770: 38 c6 00 00 addi r6,r6,0
774: 38 60 00 02 li r3,2
return 0;
}
static int DbgFS_RFC2833TestShow(struct seq_file* seq, void* token)
{
778: 38 84 00 d8 addi r4,r4,216
77c: 38 a5 00 03 addi r5,r5,3
unsigned int ch = g_DbgFSConfig[2].params;
780: 38 c6 00 90 addi r6,r6,144
if(token == SEQ_START_TOKEN)
784: 38 e0 00 a9 li r7,169
return 0;
}
static int DbgFS_RFC2833TestShow(struct seq_file* seq, void* token)
{
unsigned int ch = g_DbgFSConfig[2].params;
788: 7f e8 fb 78 mr r8,r31
return 0;
}
static int DbgFS_RFC2833TestShow(struct seq_file* seq, void* token)
{
78c: 4c c6 31 82 crclr 4*cr1+eq
790: 48 00 00 01 bl 790 <GetIntParamValue+0x108>
794: 3b c0 ff ff li r30,-1
unsigned int ch = g_DbgFSConfig[2].params;
if(token == SEQ_START_TOKEN)
798: 4b ff ff 28 b 6c0 <GetIntParamValue+0x38>
0000079c <DbgFS_RFC2833TestShow>:
seq_printf(seq, "Recv RFC2833 : %d\n", g_RcvDTMF);
seq_printf(seq, "Recv RFC2833 Error : %d\n", g_RcvDTMFError);
}
return 0;
}
79c: 94 21 ff f0 stwu r1,-16(r1)
7a0: 7c 08 02 a6 mflr r0
7a4: 3d 20 00 00 lis r9,0
7a8: 2f 84 00 01 cmpwi cr7,r4,1
7ac: 80 a9 00 90 lwz r5,144(r9)
7b0: bf c1 00 08 stmw r30,8(r1)
{
unsigned int ch = g_DbgFSConfig[2].params;
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "RTP Ch %d RFC2833 Test:\n", ch);
7b4: 7c 7f 1b 78 mr r31,r3
seq_printf(seq, "---------------------------------------------------\n");
seq_printf(seq, "Recv RFC2833 : %d\n", g_RcvDTMF);
7b8: 90 01 00 14 stw r0,20(r1)
{
unsigned int ch = g_DbgFSConfig[2].params;
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "RTP Ch %d RFC2833 Test:\n", ch);
7bc: 41 9e 00 1c beq- cr7,7d8 <DbgFS_RFC2833TestShow+0x3c>
7c0: 80 01 00 14 lwz r0,20(r1)
7c4: 38 60 00 00 li r3,0
seq_printf(seq, "---------------------------------------------------\n");
7c8: bb c1 00 08 lmw r30,8(r1)
7cc: 38 21 00 10 addi r1,r1,16
7d0: 7c 08 03 a6 mtlr r0
7d4: 4e 80 00 20 blr
7d8: 3c 80 00 00 lis r4,0
seq_printf(seq, "Recv RFC2833 : %d\n", g_RcvDTMF);
7dc: 3f c0 00 00 lis r30,0
7e0: 38 84 00 00 addi r4,r4,0
7e4: 4c c6 31 82 crclr 4*cr1+eq
7e8: 48 00 00 01 bl 7e8 <DbgFS_RFC2833TestShow+0x4c>
7ec: 3c 80 00 00 lis r4,0
7f0: 38 84 00 1c addi r4,r4,28
7f4: 7f e3 fb 78 mr r3,r31
seq_printf(seq, "Recv RFC2833 Error : %d\n", g_RcvDTMFError);
7f8: 4c c6 31 82 crclr 4*cr1+eq
7fc: 48 00 00 01 bl 7fc <DbgFS_RFC2833TestShow+0x60>
800: 80 be 00 00 lwz r5,0(r30)
804: 3c 80 00 00 lis r4,0
808: 3b de 00 00 addi r30,r30,0
80c: 38 84 00 54 addi r4,r4,84
}
return 0;
}
810: 7f e3 fb 78 mr r3,r31
814: 4c c6 31 82 crclr 4*cr1+eq
818: 48 00 00 01 bl 818 <DbgFS_RFC2833TestShow+0x7c>
81c: 80 be 00 04 lwz r5,4(r30)
820: 3c 80 00 00 lis r4,0
824: 7f e3 fb 78 mr r3,r31
return 0;
}
static int DbgFS_FPGAInfoShow(struct seq_file* seq, void* token)
{
828: 38 84 00 78 addi r4,r4,120
82c: 4c c6 31 82 crclr 4*cr1+eq
if(token == SEQ_START_TOKEN)
830: 48 00 00 01 bl 830 <DbgFS_RFC2833TestShow+0x94>
return 0;
}
static int DbgFS_FPGAInfoShow(struct seq_file* seq, void* token)
{
834: 80 01 00 14 lwz r0,20(r1)
838: 38 60 00 00 li r3,0
83c: bb c1 00 08 lmw r30,8(r1)
if(token == SEQ_START_TOKEN)
840: 38 21 00 10 addi r1,r1,16
seq_printf(seq, "Slot : 0x%04X\n", fpga_GetSlot());
seq_printf(seq, "Chassis Serial : 0x%08X\n", fpga_GetChassisSn());
}
return 0;
}
844: 7c 08 03 a6 mtlr r0
848: 4e 80 00 20 blr
0000084c <DbgFS_FPGAInfoShow>:
84c: 94 21 ff f0 stwu r1,-16(r1)
850: 7c 08 02 a6 mflr r0
854: 2f 84 00 01 cmpwi cr7,r4,1
858: 93 e1 00 0c stw r31,12(r1)
static int DbgFS_FPGAInfoShow(struct seq_file* seq, void* token)
{
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "CardType : 0x%04X\n", fpga_GetCardType());
85c: 7c 7f 1b 78 mr r31,r3
860: 90 01 00 14 stw r0,20(r1)
864: 41 9e 00 1c beq- cr7,880 <DbgFS_FPGAInfoShow+0x34>
868: 80 01 00 14 lwz r0,20(r1)
86c: 38 60 00 00 li r3,0
870: 83 e1 00 0c lwz r31,12(r1)
874: 38 21 00 10 addi r1,r1,16
seq_printf(seq, "FPGA Version : 0x%04X\n", fpga_GetFPGAVer());
878: 7c 08 03 a6 mtlr r0
87c: 4e 80 00 20 blr
880: 48 00 00 01 bl 880 <DbgFS_FPGAInfoShow+0x34>
884: 3c 80 00 00 lis r4,0
888: 7c 65 1b 78 mr r5,r3
88c: 38 84 00 9c addi r4,r4,156
890: 7f e3 fb 78 mr r3,r31
seq_printf(seq, "User Id : 0x%08X\n", fpga_GetUserId());
894: 4c c6 31 82 crclr 4*cr1+eq
898: 48 00 00 01 bl 898 <DbgFS_FPGAInfoShow+0x4c>
89c: 48 00 00 01 bl 89c <DbgFS_FPGAInfoShow+0x50>
8a0: 3c 80 00 00 lis r4,0
8a4: 7c 65 1b 78 mr r5,r3
8a8: 38 84 00 c0 addi r4,r4,192
8ac: 7f e3 fb 78 mr r3,r31
seq_printf(seq, "Slot : 0x%04X\n", fpga_GetSlot());
8b0: 4c c6 31 82 crclr 4*cr1+eq
8b4: 48 00 00 01 bl 8b4 <DbgFS_FPGAInfoShow+0x68>
8b8: 48 00 00 01 bl 8b8 <DbgFS_FPGAInfoShow+0x6c>
8bc: 3c 80 00 00 lis r4,0
8c0: 7c 65 1b 78 mr r5,r3
8c4: 38 84 00 e4 addi r4,r4,228
8c8: 7f e3 fb 78 mr r3,r31
seq_printf(seq, "Chassis Serial : 0x%08X\n", fpga_GetChassisSn());
8cc: 4c c6 31 82 crclr 4*cr1+eq
8d0: 48 00 00 01 bl 8d0 <DbgFS_FPGAInfoShow+0x84>
8d4: 48 00 00 01 bl 8d4 <DbgFS_FPGAInfoShow+0x88>
8d8: 3c 80 00 00 lis r4,0
8dc: 7c 65 1b 78 mr r5,r3
8e0: 38 84 01 08 addi r4,r4,264
8e4: 7f e3 fb 78 mr r3,r31
}
return 0;
}
8e8: 4c c6 31 82 crclr 4*cr1+eq
8ec: 48 00 00 01 bl 8ec <DbgFS_FPGAInfoShow+0xa0>
8f0: 48 00 00 01 bl 8f0 <DbgFS_FPGAInfoShow+0xa4>
8f4: 3c 80 00 00 lis r4,0
8f8: 7c 65 1b 78 mr r5,r3
8fc: 38 84 01 2c addi r4,r4,300
return 0;
}
static int DbgFS_LedCtrlShow(struct seq_file* seq, void* token)
{
900: 7f e3 fb 78 mr r3,r31
904: 4c c6 31 82 crclr 4*cr1+eq
unsigned int opt = g_DbgFSConfig[5].params;
908: 48 00 00 01 bl 908 <DbgFS_FPGAInfoShow+0xbc>
if(token == SEQ_START_TOKEN)
90c: 80 01 00 14 lwz r0,20(r1)
return 0;
}
static int DbgFS_LedCtrlShow(struct seq_file* seq, void* token)
{
unsigned int opt = g_DbgFSConfig[5].params;
910: 38 60 00 00 li r3,0
return 0;
}
static int DbgFS_LedCtrlShow(struct seq_file* seq, void* token)
{
914: 83 e1 00 0c lwz r31,12(r1)
unsigned int opt = g_DbgFSConfig[5].params;
if(token == SEQ_START_TOKEN)
918: 38 21 00 10 addi r1,r1,16
}
return 0;
}
91c: 7c 08 03 a6 mtlr r0
920: 4e 80 00 20 blr
00000924 <DbgFS_LedCtrlShow>:
924: 94 21 ff f0 stwu r1,-16(r1)
928: 7c 08 02 a6 mflr r0
92c: 3d 20 00 00 lis r9,0
{
unsigned int opt = g_DbgFSConfig[5].params;
if(token == SEQ_START_TOKEN)
{
switch(opt)
930: 2f 84 00 01 cmpwi cr7,r4,1
934: 80 a9 01 38 lwz r5,312(r9)
938: 90 01 00 14 stw r0,20(r1)
93c: 41 9e 00 18 beq- cr7,954 <DbgFS_LedCtrlShow+0x30>
{
case 0:
seq_printf(seq, "RUN Led On......\n");
940: 80 01 00 14 lwz r0,20(r1)
944: 38 60 00 00 li r3,0
948: 38 21 00 10 addi r1,r1,16
94c: 7c 08 03 a6 mtlr r0
fpga_GreenLedCtrl(1);
950: 4e 80 00 20 blr
954: 2f 85 00 01 cmpwi cr7,r5,1
break;
958: 41 9e 00 4c beq- cr7,9a4 <DbgFS_LedCtrlShow+0x80>
{
unsigned int opt = g_DbgFSConfig[5].params;
if(token == SEQ_START_TOKEN)
{
switch(opt)
95c: 2b 85 00 01 cmplwi cr7,r5,1
960: 40 9c 00 20 bge- cr7,980 <DbgFS_LedCtrlShow+0x5c>
964: 3c 80 00 00 lis r4,0
968: 38 84 01 50 addi r4,r4,336
case 3:
seq_printf(seq, "ALM Led On......\n");
fpga_RedLedCtrl(0);
break;
default:
seq_printf(seq, "Unknown Ctrl Code %d\n", opt);
96c: 4c c6 31 82 crclr 4*cr1+eq
970: 48 00 00 01 bl 970 <DbgFS_LedCtrlShow+0x4c>
974: 38 60 00 01 li r3,1
978: 48 00 00 01 bl 978 <DbgFS_LedCtrlShow+0x54>
break;
97c: 4b ff ff c4 b 940 <DbgFS_LedCtrlShow+0x1c>
case 0:
seq_printf(seq, "RUN Led On......\n");
fpga_GreenLedCtrl(1);
break;
case 1:
seq_printf(seq, "RUN Led Off......\n");
980: 2f 85 00 02 cmpwi cr7,r5,2
984: 41 9e 00 58 beq- cr7,9dc <DbgFS_LedCtrlShow+0xb8>
988: 2f 85 00 03 cmpwi cr7,r5,3
98c: 41 9e 00 34 beq- cr7,9c0 <DbgFS_LedCtrlShow+0x9c>
fpga_GreenLedCtrl(0);
990: 3c 80 00 00 lis r4,0
994: 38 84 01 8c addi r4,r4,396
break;
998: 4c c6 31 82 crclr 4*cr1+eq
case 2:
seq_printf(seq, "ALM Led On......\n");
fpga_RedLedCtrl(1);
break;
case 3:
seq_printf(seq, "ALM Led On......\n");
99c: 48 00 00 01 bl 99c <DbgFS_LedCtrlShow+0x78>
9a0: 4b ff ff a0 b 940 <DbgFS_LedCtrlShow+0x1c>
9a4: 3c 80 00 00 lis r4,0
9a8: 38 84 01 64 addi r4,r4,356
fpga_RedLedCtrl(0);
9ac: 4c c6 31 82 crclr 4*cr1+eq
9b0: 48 00 00 01 bl 9b0 <DbgFS_LedCtrlShow+0x8c>
break;
9b4: 38 60 00 00 li r3,0
case 1:
seq_printf(seq, "RUN Led Off......\n");
fpga_GreenLedCtrl(0);
break;
case 2:
seq_printf(seq, "ALM Led On......\n");
9b8: 48 00 00 01 bl 9b8 <DbgFS_LedCtrlShow+0x94>
9bc: 4b ff ff 84 b 940 <DbgFS_LedCtrlShow+0x1c>
9c0: 3c 80 00 00 lis r4,0
9c4: 38 84 01 78 addi r4,r4,376
fpga_RedLedCtrl(1);
9c8: 4c c6 31 82 crclr 4*cr1+eq
9cc: 48 00 00 01 bl 9cc <DbgFS_LedCtrlShow+0xa8>
break;
9d0: 38 60 00 00 li r3,0
return 0;
}
static int DbgFS_IrqInfoShow(struct seq_file* seq, void* token)
{
9d4: 48 00 00 01 bl 9d4 <DbgFS_LedCtrlShow+0xb0>
9d8: 4b ff ff 68 b 940 <DbgFS_LedCtrlShow+0x1c>
if(token == SEQ_START_TOKEN)
9dc: 3c 80 00 00 lis r4,0
return 0;
}
static int DbgFS_IrqInfoShow(struct seq_file* seq, void* token)
{
9e0: 38 84 01 78 addi r4,r4,376
9e4: 4c c6 31 82 crclr 4*cr1+eq
9e8: 48 00 00 01 bl 9e8 <DbgFS_LedCtrlShow+0xc4>
if(token == SEQ_START_TOKEN)
9ec: 38 60 00 01 li r3,1
seq_printf(seq, "1ms IRQ Total Count: %d(0x%08X)\n", irqCnt, irqCnt);
}
return 0;
}
9f0: 48 00 00 01 bl 9f0 <DbgFS_LedCtrlShow+0xcc>
9f4: 4b ff ff 4c b 940 <DbgFS_LedCtrlShow+0x1c>
000009f8 <DbgFS_IrqInfoShow>:
9f8: 94 21 ff f0 stwu r1,-16(r1)
9fc: 7c 08 02 a6 mflr r0
a00: 2f 84 00 01 cmpwi cr7,r4,1
a04: 93 e1 00 0c stw r31,12(r1)
static int DbgFS_IrqInfoShow(struct seq_file* seq, void* token)
{
if(token == SEQ_START_TOKEN)
{
unsigned int irqCnt = FPGA_Get1msIrqCnt();
a08: 7c 7f 1b 78 mr r31,r3
seq_printf(seq, "1ms IRQ Total Count: %d(0x%08X)\n", irqCnt, irqCnt);
a0c: 90 01 00 14 stw r0,20(r1)
static int DbgFS_IrqInfoShow(struct seq_file* seq, void* token)
{
if(token == SEQ_START_TOKEN)
{
unsigned int irqCnt = FPGA_Get1msIrqCnt();
a10: 41 9e 00 1c beq- cr7,a2c <DbgFS_IrqInfoShow+0x34>
seq_printf(seq, "1ms IRQ Total Count: %d(0x%08X)\n", irqCnt, irqCnt);
a14: 80 01 00 14 lwz r0,20(r1)
a18: 38 60 00 00 li r3,0
a1c: 83 e1 00 0c lwz r31,12(r1)
a20: 38 21 00 10 addi r1,r1,16
a24: 7c 08 03 a6 mtlr r0
}
return 0;
}
a28: 4e 80 00 20 blr
a2c: 48 00 00 01 bl a2c <DbgFS_IrqInfoShow+0x34>
a30: 3c 80 00 00 lis r4,0
a34: 7c 65 1b 78 mr r5,r3
a38: 38 84 01 a4 addi r4,r4,420
a3c: 7f e3 fb 78 mr r3,r31
return 0;
}
static int DbgFS_UnLinkShow(struct seq_file* seq, void* token)
{
a40: 7c a6 2b 78 mr r6,r5
a44: 4c c6 31 82 crclr 4*cr1+eq
unsigned int ch = g_DbgFSConfig[1].params;
a48: 48 00 00 01 bl a48 <DbgFS_IrqInfoShow+0x50>
if(token == SEQ_START_TOKEN)
a4c: 80 01 00 14 lwz r0,20(r1)
return 0;
}
static int DbgFS_UnLinkShow(struct seq_file* seq, void* token)
{
a50: 38 60 00 00 li r3,0
a54: 83 e1 00 0c lwz r31,12(r1)
a58: 38 21 00 10 addi r1,r1,16
unsigned int ch = g_DbgFSConfig[1].params;
a5c: 7c 08 03 a6 mtlr r0
if(token == SEQ_START_TOKEN)
a60: 4e 80 00 20 blr
00000a64 <DbgFS_UnLinkShow>:
eth_unlink(ch, PORT_TYPE_B2B);
eth_unlink(ch, PORT_TYPE_SIPRTP);
}
return 0;
}
a64: 94 21 ff f0 stwu r1,-16(r1)
a68: 7c 08 02 a6 mflr r0
a6c: 3d 20 00 00 lis r9,0
a70: 2f 84 00 01 cmpwi cr7,r4,1
a74: bf c1 00 08 stmw r30,8(r1)
a78: 7c 7e 1b 78 mr r30,r3
{
unsigned int ch = g_DbgFSConfig[1].params;
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "UnLink RTP Ch %d:\n", ch);
a7c: 90 01 00 14 stw r0,20(r1)
a80: 83 e9 00 58 lwz r31,88(r9)
a84: 41 9e 00 1c beq- cr7,aa0 <DbgFS_UnLinkShow+0x3c>
a88: 80 01 00 14 lwz r0,20(r1)
a8c: 38 60 00 00 li r3,0
seq_printf(seq, "---------------------------------------------------\n");
a90: bb c1 00 08 lmw r30,8(r1)
a94: 38 21 00 10 addi r1,r1,16
a98: 7c 08 03 a6 mtlr r0
a9c: 4e 80 00 20 blr
aa0: 3c 80 00 00 lis r4,0
eth_unlink(ch, PORT_TYPE_B2B);
aa4: 7f e5 fb 78 mr r5,r31
aa8: 38 84 01 c8 addi r4,r4,456
aac: 4c c6 31 82 crclr 4*cr1+eq
eth_unlink(ch, PORT_TYPE_SIPRTP);
ab0: 48 00 00 01 bl ab0 <DbgFS_UnLinkShow+0x4c>
ab4: 3c 80 00 00 lis r4,0
ab8: 38 84 00 1c addi r4,r4,28
}
return 0;
}
abc: 7f c3 f3 78 mr r3,r30
ac0: 4c c6 31 82 crclr 4*cr1+eq
ac4: 48 00 00 01 bl ac4 <DbgFS_UnLinkShow+0x60>
ac8: 7f e3 fb 78 mr r3,r31
acc: 38 80 00 06 li r4,6
ad0: 48 00 00 01 bl ad0 <DbgFS_UnLinkShow+0x6c>
return 0;
}
static int DbgFS_LinkShow(struct seq_file* seq, void* token)
{
ad4: 7f e3 fb 78 mr r3,r31
ad8: 38 80 00 08 li r4,8
unsigned int ch = g_DbgFSConfig[0].params;
adc: 48 00 00 01 bl adc <DbgFS_UnLinkShow+0x78>
if(token == SEQ_START_TOKEN)
ae0: 80 01 00 14 lwz r0,20(r1)
return 0;
}
static int DbgFS_LinkShow(struct seq_file* seq, void* token)
{
ae4: 38 60 00 00 li r3,0
ae8: bb c1 00 08 lmw r30,8(r1)
aec: 38 21 00 10 addi r1,r1,16
unsigned int ch = g_DbgFSConfig[0].params;
af0: 7c 08 03 a6 mtlr r0
if(token == SEQ_START_TOKEN)
af4: 4e 80 00 20 blr
00000af8 <DbgFS_LinkShow>:
eth_sip_link(ch, sip_ipaddr, sip_port + ch, 0);
eth_link(ch, PORT_TYPE_B2B, spbx_ipaddr, spbx_port + (ch * 3));
}
return 0;
}
af8: 94 21 ff f0 stwu r1,-16(r1)
afc: 7c 08 02 a6 mflr r0
b00: 3d 20 00 00 lis r9,0
b04: 2f 84 00 01 cmpwi cr7,r4,1
b08: bf c1 00 08 stmw r30,8(r1)
b0c: 7c 7e 1b 78 mr r30,r3
{
unsigned int ch = g_DbgFSConfig[0].params;
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "Link RTP Ch %d:\n", ch);
b10: 90 01 00 14 stw r0,20(r1)
b14: 83 e9 00 20 lwz r31,32(r9)
b18: 41 9e 00 1c beq- cr7,b34 <DbgFS_LinkShow+0x3c>
b1c: 80 01 00 14 lwz r0,20(r1)
b20: 38 60 00 00 li r3,0
seq_printf(seq, "---------------------------------------------------\n");
b24: bb c1 00 08 lmw r30,8(r1)
b28: 38 21 00 10 addi r1,r1,16
eth_sip_link(ch, sip_ipaddr, sip_port + ch, 0);
b2c: 7c 08 03 a6 mtlr r0
unsigned int ch = g_DbgFSConfig[0].params;
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "Link RTP Ch %d:\n", ch);
seq_printf(seq, "---------------------------------------------------\n");
b30: 4e 80 00 20 blr
eth_sip_link(ch, sip_ipaddr, sip_port + ch, 0);
b34: 3c 80 00 00 lis r4,0
unsigned int ch = g_DbgFSConfig[0].params;
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "Link RTP Ch %d:\n", ch);
seq_printf(seq, "---------------------------------------------------\n");
b38: 7f e5 fb 78 mr r5,r31
b3c: 38 84 01 dc addi r4,r4,476
eth_sip_link(ch, sip_ipaddr, sip_port + ch, 0);
b40: 4c c6 31 82 crclr 4*cr1+eq
b44: 48 00 00 01 bl b44 <DbgFS_LinkShow+0x4c>
b48: 7f c3 f3 78 mr r3,r30
b4c: 3c 80 00 00 lis r4,0
b50: 3f c0 00 00 lis r30,0
b54: 38 84 00 1c addi r4,r4,28
eth_link(ch, PORT_TYPE_B2B, spbx_ipaddr, spbx_port + (ch * 3));
b58: 3b de 00 00 addi r30,r30,0
b5c: 4c c6 31 82 crclr 4*cr1+eq
b60: 48 00 00 01 bl b60 <DbgFS_LinkShow+0x68>
b64: 80 9e 00 08 lwz r4,8(r30)
b68: 38 bf 27 10 addi r5,r31,10000
b6c: 54 a5 04 3e clrlwi r5,r5,16
b70: 38 c0 00 00 li r6,0
b74: 7f e3 fb 78 mr r3,r31
}
return 0;
}
b78: 48 00 00 01 bl b78 <DbgFS_LinkShow+0x80>
b7c: 57 e6 08 3c rlwinm r6,r31,1,0,30
b80: 7c c6 fa 14 add r6,r6,r31
b84: 80 be 00 0c lwz r5,12(r30)
b88: 38 c6 17 70 addi r6,r6,6000
b8c: 7f e3 fb 78 mr r3,r31
eth_link(i, PORT_TYPE_B2B, spbx_ipaddr, spbx_port + (i * 3));
}
}
int Rfc2833TaskThreadProc(void* data)
{
b90: 38 80 00 06 li r4,6
b94: 54 c6 04 3e clrlwi r6,r6,16
b98: 48 00 00 01 bl b98 <DbgFS_LinkShow+0xa0>
int value = -1;
char dtmf = -1;
char next_dtmf = -1;
while(g_pWorkTask != NULL && g_WorkRcvRFC2833 && !kthread_should_stop())
b9c: 80 01 00 14 lwz r0,20(r1)
ba0: 38 60 00 00 li r3,0
eth_link(i, PORT_TYPE_B2B, spbx_ipaddr, spbx_port + (i * 3));
}
}
int Rfc2833TaskThreadProc(void* data)
{
ba4: bb c1 00 08 lmw r30,8(r1)
int value = -1;
char dtmf = -1;
char next_dtmf = -1;
while(g_pWorkTask != NULL && g_WorkRcvRFC2833 && !kthread_should_stop())
ba8: 38 21 00 10 addi r1,r1,16
bac: 7c 08 03 a6 mtlr r0
bb0: 4e 80 00 20 blr
00000bb4 <Rfc2833TaskThreadProc>:
bb4: 94 21 ff e0 stwu r1,-32(r1)
bb8: 7c 08 02 a6 mflr r0
bbc: bf a1 00 14 stmw r29,20(r1)
bc0: 3f c0 00 00 lis r30,0
bc4: 3b de 00 00 addi r30,r30,0
bc8: 90 01 00 24 stw r0,36(r1)
bcc: 80 1e 00 10 lwz r0,16(r30)
{
udelay(10);
}
}
schedule();
bd0: 2f 80 00 00 cmpwi cr7,r0,0
int Rfc2833TaskThreadProc(void* data)
{
int value = -1;
char dtmf = -1;
char next_dtmf = -1;
while(g_pWorkTask != NULL && g_WorkRcvRFC2833 && !kthread_should_stop())
bd4: 41 9e 00 c8 beq- cr7,c9c <Rfc2833TaskThreadProc+0xe8>
bd8: 3f e0 00 00 lis r31,0
bdc: 3b a0 00 ff li r29,255
be0: 3b ff 00 00 addi r31,r31,0
be4: 80 1f 01 88 lwz r0,392(r31)
be8: 2f 80 00 00 cmpwi cr7,r0,0
bec: 40 be 00 24 bne+ cr7,c10 <Rfc2833TaskThreadProc+0x5c>
bf0: 48 00 00 ac b c9c <Rfc2833TaskThreadProc+0xe8>
bf4: 48 00 00 01 bl bf4 <Rfc2833TaskThreadProc+0x40>
{
if(g_WorkRcvRFC2833)
bf8: 80 1e 00 10 lwz r0,16(r30)
bfc: 2f 80 00 00 cmpwi cr7,r0,0
c00: 41 9e 00 9c beq- cr7,c9c <Rfc2833TaskThreadProc+0xe8>
{
value = sip_recv_dtmf(0);
c04: 80 1f 01 88 lwz r0,392(r31)
dtmf = value & 0xFF;
c08: 2f 80 00 00 cmpwi cr7,r0,0
if(dtmf != 255)
c0c: 41 9e 00 90 beq- cr7,c9c <Rfc2833TaskThreadProc+0xe8>
c10: 48 00 00 01 bl c10 <Rfc2833TaskThreadProc+0x5c>
{
g_RcvDTMF++;
c14: 2f 83 00 00 cmpwi cr7,r3,0
if(dtmf >= '0' && dtmf < '9')
c18: 40 9e 00 84 bne- cr7,c9c <Rfc2833TaskThreadProc+0xe8>
c1c: 80 1f 01 88 lwz r0,392(r31)
c20: 2f 80 00 00 cmpwi cr7,r0,0
dtmf = value & 0xFF;
if(dtmf != 255)
{
g_RcvDTMF++;
c24: 41 9e ff d0 beq+ cr7,bf4 <Rfc2833TaskThreadProc+0x40>
c28: 48 00 00 01 bl c28 <Rfc2833TaskThreadProc+0x74>
if(dtmf >= '0' && dtmf < '9')
c2c: 54 63 06 3e clrlwi r3,r3,24
{
next_dtmf = dtmf + 1;
c30: 2f 83 00 ff cmpwi cr7,r3,255
c34: 41 9e 00 50 beq- cr7,c84 <Rfc2833TaskThreadProc+0xd0>
c38: 81 7e 00 00 lwz r11,0(r30)
else if(dtmf == '#')
{
next_dtmf = '0';
}
if(g_ChkDTMF == -1)
c3c: 39 23 ff d0 addi r9,r3,-48
c40: 55 29 06 3e clrlwi r9,r9,24
c44: 2b 89 00 08 cmplwi cr7,r9,8
{
g_ChkDTMF = next_dtmf;
}
else
{
if(dtmf != g_ChkDTMF)
c48: 38 0b 00 01 addi r0,r11,1
c4c: 90 1e 00 00 stw r0,0(r30)
{
g_RcvDTMFError++;
c50: 41 9d 00 54 bgt- cr7,ca4 <Rfc2833TaskThreadProc+0xf0>
c54: 3b a3 00 01 addi r29,r3,1
c58: 57 bd 06 3e clrlwi r29,r29,24
}
g_ChkDTMF = next_dtmf;
c5c: 7f a9 eb 78 mr r9,r29
udelay(10);
}
else
{
udelay(10);
c60: 80 1f 01 8c lwz r0,396(r31)
c64: 2f 80 ff ff cmpwi cr7,r0,-1
}
}
schedule();
c68: 41 9e 00 18 beq- cr7,c80 <Rfc2833TaskThreadProc+0xcc>
int Rfc2833TaskThreadProc(void* data)
{
int value = -1;
char dtmf = -1;
char next_dtmf = -1;
while(g_pWorkTask != NULL && g_WorkRcvRFC2833 && !kthread_should_stop())
c6c: 7f 80 18 00 cmpw cr7,r0,r3
c70: 41 9e 00 10 beq- cr7,c80 <Rfc2833TaskThreadProc+0xcc>
c74: 81 7e 00 04 lwz r11,4(r30)
}
schedule();
}
do_exit(0);
c78: 38 0b 00 01 addi r0,r11,1
c7c: 90 1e 00 04 stw r0,4(r30)
if(dtmf >= '0' && dtmf < '9')
{
next_dtmf = dtmf + 1;
}
else if(dtmf == '9')
c80: 91 3f 01 8c stw r9,396(r31)
c84: 38 60 00 0a li r3,10
{
next_dtmf = '*';
}
else if(dtmf == '*')
c88: 48 00 00 01 bl c88 <Rfc2833TaskThreadProc+0xd4>
c8c: 48 00 00 01 bl c8c <Rfc2833TaskThreadProc+0xd8>
{
next_dtmf = '#';
}
else if(dtmf == '#')
c90: 80 1e 00 10 lwz r0,16(r30)
c94: 2f 80 00 00 cmpwi cr7,r0,0
c98: 40 9e ff 6c bne+ cr7,c04 <Rfc2833TaskThreadProc+0x50>
c9c: 38 60 00 00 li r3,0
ca0: 48 00 00 01 bl ca0 <Rfc2833TaskThreadProc+0xec>
if(dtmf >= '0' && dtmf < '9')
{
next_dtmf = dtmf + 1;
}
else if(dtmf == '9')
ca4: 2f 83 00 39 cmpwi cr7,r3,57
{
next_dtmf = '*';
ca8: 41 9e 00 20 beq- cr7,cc8 <Rfc2833TaskThreadProc+0x114>
cac: 2f 83 00 2a cmpwi cr7,r3,42
}
else if(dtmf == '*')
cb0: 41 9e 00 24 beq- cr7,cd4 <Rfc2833TaskThreadProc+0x120>
{
next_dtmf = '#';
cb4: 39 20 00 30 li r9,48
cb8: 2f 83 00 23 cmpwi cr7,r3,35
#if 1
static char* g_IpString[64];
char* get_ip_string(int ipaddr)
{
cbc: 7f a9 ef 9e .long 0x7fa9ef9e
cc0: 7f a9 eb 78 mr r9,r29
sprintf(g_IpString, "%d.%d.%d.%d",
cc4: 4b ff ff 9c b c60 <Rfc2833TaskThreadProc+0xac>
#if 1
static char* g_IpString[64];
char* get_ip_string(int ipaddr)
{
cc8: 39 20 00 2a li r9,42
sprintf(g_IpString, "%d.%d.%d.%d",
ccc: 3b a0 00 2a li r29,42
#if 1
static char* g_IpString[64];
char* get_ip_string(int ipaddr)
{
cd0: 4b ff ff 90 b c60 <Rfc2833TaskThreadProc+0xac>
sprintf(g_IpString, "%d.%d.%d.%d",
cd4: 39 20 00 23 li r9,35
cd8: 3b a0 00 23 li r29,35
cdc: 4b ff ff 84 b c60 <Rfc2833TaskThreadProc+0xac>
00000ce0 <get_ip_string>:
ce0: 94 21 ff f0 stwu r1,-16(r1)
#if 1
static char* g_IpString[64];
char* get_ip_string(int ipaddr)
{
ce4: 7c 68 1b 78 mr r8,r3
sprintf(g_IpString, "%d.%d.%d.%d",
ce8: 3c 80 00 00 lis r4,0
cec: 7c 08 02 a6 mflr r0
cf0: 55 05 46 3e rlwinm r5,r8,8,24,31
cf4: 93 e1 00 0c stw r31,12(r1)
cf8: 3f e0 00 00 lis r31,0
cfc: 3b ff 00 00 addi r31,r31,0
(ipaddr >> 16) & 0xFF,
(ipaddr >> 8) & 0xFF,
ipaddr & 0xFF);
return g_IpString;
}
d00: 55 06 86 3e rlwinm r6,r8,16,24,31
d04: 3b ff 00 14 addi r31,r31,20
d08: 90 01 00 14 stw r0,20(r1)
d0c: 7f e3 fb 78 mr r3,r31
d10: 55 07 c6 3e rlwinm r7,r8,24,24,31
d14: 38 84 01 f0 addi r4,r4,496
}
#endif
static int DbgFS_ArpTestShow(struct seq_file* seq, void* token)
{
d18: 55 08 06 3e clrlwi r8,r8,24
d1c: 4c c6 31 82 crclr 4*cr1+eq
d20: 48 00 00 01 bl d20 <get_ip_string+0x40>
d24: 80 01 00 14 lwz r0,20(r1)
// unsigned int ch = g_DbgFSConfig[3].params;
unsigned char haddr[24];
__be32 ipaddr = in_aton("192.168.0.60");
d28: 7f e3 fb 78 mr r3,r31
}
#endif
static int DbgFS_ArpTestShow(struct seq_file* seq, void* token)
{
d2c: 83 e1 00 0c lwz r31,12(r1)
// unsigned int ch = g_DbgFSConfig[3].params;
unsigned char haddr[24];
__be32 ipaddr = in_aton("192.168.0.60");
d30: 38 21 00 10 addi r1,r1,16
}
#endif
static int DbgFS_ArpTestShow(struct seq_file* seq, void* token)
{
d34: 7c 08 03 a6 mtlr r0
// unsigned int ch = g_DbgFSConfig[3].params;
unsigned char haddr[24];
__be32 ipaddr = in_aton("192.168.0.60");
d38: 4e 80 00 20 blr
00000d3c <DbgFS_ArpTestShow>:
memset(haddr, 0, 24);
d3c: 94 21 ff c0 stwu r1,-64(r1)
d40: 7c 08 02 a6 mflr r0
if(token == SEQ_START_TOKEN)
d44: bf 41 00 28 stmw r26,40(r1)
static int DbgFS_ArpTestShow(struct seq_file* seq, void* token)
{
// unsigned int ch = g_DbgFSConfig[3].params;
unsigned char haddr[24];
__be32 ipaddr = in_aton("192.168.0.60");
d48: 7c 7e 1b 78 mr r30,r3
memset(haddr, 0, 24);
d4c: 3c 60 00 00 lis r3,0
d50: 7c 9d 23 78 mr r29,r4
d54: 38 63 01 fc addi r3,r3,508
d58: 90 01 00 44 stw r0,68(r1)
d5c: 48 00 00 01 bl d5c <DbgFS_ArpTestShow+0x20>
if(token == SEQ_START_TOKEN)
d60: 38 00 00 00 li r0,0
6, false);
#endif
}
return 0;
}
d64: 90 01 00 0c stw r0,12(r1)
d68: 2f 9d 00 01 cmpwi cr7,r29,1
d6c: 7c 7f 1b 78 mr r31,r3
d70: 90 01 00 10 stw r0,16(r1)
d74: 90 01 00 14 stw r0,20(r1)
d78: 90 01 00 18 stw r0,24(r1)
memset(haddr, 0, 24);
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "Get Mac From Arp Table Test\n");
d7c: 90 01 00 1c stw r0,28(r1)
d80: 90 01 00 20 stw r0,32(r1)
d84: 41 9e 00 1c beq- cr7,da0 <DbgFS_ArpTestShow+0x64>
}
static inline struct neighbour *
__neigh_lookup(struct neigh_table *tbl, const void *pkey, struct net_device *dev, int creat)
{
struct neighbour *n = neigh_lookup(tbl, pkey, dev);
d88: 80 01 00 44 lwz r0,68(r1)
d8c: 38 60 00 00 li r3,0
d90: bb 41 00 28 lmw r26,40(r1)
seq_printf(seq, "---------------------------------------------------\n");
d94: 38 21 00 40 addi r1,r1,64
d98: 7c 08 03 a6 mtlr r0
d9c: 4e 80 00 20 blr
}
//memset(haddr, 0xFF, ETH_ALEN);
if(id == 4 || id == 3)
{
printk("eth %d ipaddr %s arp call by %d\n",
da0: 3c 80 00 00 lis r4,0
memset(haddr, 0, 24);
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "Get Mac From Arp Table Test\n");
seq_printf(seq, "---------------------------------------------------\n");
da4: 7f c3 f3 78 mr r3,r30
da8: 38 84 02 0c addi r4,r4,524
printk("++++++++ get ip 0x%08X MacAddress\n", ipaddr);
dac: 3f a0 00 00 lis r29,0
db0: 4c c6 31 82 crclr 4*cr1+eq
db4: 48 00 00 01 bl db4 <DbgFS_ArpTestShow+0x78>
db8: 3c 80 00 00 lis r4,0
dbc: 38 84 00 1c addi r4,r4,28
dc0: 7f c3 f3 78 mr r3,r30
{
dev = dev_get_by_name(&init_net, "eth0");
}
else if(ethId == 2)
{
dev = dev_get_by_name(&init_net, "eth2");
dc4: 7c 3e 0b 78 mr r30,r1
dc8: 4c c6 31 82 crclr 4*cr1+eq
if(token == SEQ_START_TOKEN)
{
seq_printf(seq, "Get Mac From Arp Table Test\n");
seq_printf(seq, "---------------------------------------------------\n");
printk("++++++++ get ip 0x%08X MacAddress\n", ipaddr);
dcc: 48 00 00 01 bl dcc <DbgFS_ArpTestShow+0x90>
{
dev = dev_get_by_name(&init_net, "eth0");
}
else if(ethId == 2)
{
dev = dev_get_by_name(&init_net, "eth2");
dd0: 3c 60 00 00 lis r3,0
dd4: 7f e4 fb 78 mr r4,r31
dd8: 38 63 02 2c addi r3,r3,556
}
// ipaddr = htonl(ipaddr);
if(id == 4 || id == 3)
{
printk("ethId = %d, ipaddr = 0x%08X\n", ethId, ipaddr);
ddc: 3b bd 00 00 addi r29,r29,0
{
dev = dev_get_by_name(&init_net, "eth0");
}
else if(ethId == 2)
{
dev = dev_get_by_name(&init_net, "eth2");
de0: 4c c6 31 82 crclr 4*cr1+eq
}
// ipaddr = htonl(ipaddr);
if(id == 4 || id == 3)
{
printk("ethId = %d, ipaddr = 0x%08X\n", ethId, ipaddr);
de4: 48 00 00 01 bl de4 <DbgFS_ArpTestShow+0xa8>
de8: 3c 80 00 00 lis r4,0
dec: 3c 60 00 00 lis r3,0
df0: 93 e1 00 08 stw r31,8(r1)
df4: 38 84 02 50 addi r4,r4,592
}
//memset(haddr, 0xFF, ETH_ALEN);
if(id == 4 || id == 3)
{
printk("eth %d ipaddr %s arp call by %d\n",
df8: 38 63 00 00 addi r3,r3,0
dfc: 48 00 00 01 bl dfc <DbgFS_ArpTestShow+0xc0>
e00: 80 a1 00 08 lwz r5,8(r1)
e04: 7c 7a 1b 78 mr r26,r3
e08: 3c 60 00 00 lis r3,0
e0c: 38 80 00 02 li r4,2
e10: 38 63 02 58 addi r3,r3,600
e14: 4c c6 31 82 crclr 4*cr1+eq
e18: 48 00 00 01 bl e18 <DbgFS_ArpTestShow+0xdc>
e1c: 84 7e 00 08 lwzu r3,8(r30)
e20: 48 00 00 01 bl e20 <DbgFS_ArpTestShow+0xe4>
e24: 38 80 00 02 li r4,2
e28: 7c 65 1b 78 mr r5,r3
if (n || !creat)
e2c: 3c 60 00 00 lis r3,0
e30: 38 c0 00 03 li r6,3
{
n = __neigh_lookup(&arp_tbl, &ipaddr, dev, 1);
if(n != NULL)
{
n->used = jiffies;
e34: 38 63 02 78 addi r3,r3,632
DEBUG_CODE_LINE();
e38: 4c c6 31 82 crclr 4*cr1+eq
{
n = __neigh_lookup(&arp_tbl, &ipaddr, dev, 1);
if(n != NULL)
{
n->used = jiffies;
e3c: 48 00 00 01 bl e3c <DbgFS_ArpTestShow+0x100>
DEBUG_CODE_LINE();
e40: 7f a3 eb 78 mr r3,r29
e44: 7f c4 f3 78 mr r4,r30
e48: 7f 45 d3 78 mr r5,r26
e4c: 48 00 00 01 bl e4c <DbgFS_ArpTestShow+0x110>
{
n = __neigh_lookup(&arp_tbl, &ipaddr, dev, 1);
if(n != NULL)
{
n->used = jiffies;
e50: 7c 7f 1b 79 mr. r31,r3
DEBUG_CODE_LINE();
e54: 41 82 01 58 beq- fac <DbgFS_ArpTestShow+0x270>
e58: 3d 20 00 00 lis r9,0
e5c: 3f 60 00 00 lis r27,0
e60: 80 09 00 00 lwz r0,0(r9)
e64: 3f 80 00 00 lis r28,0
e68: 3f a0 00 00 lis r29,0
e6c: 3f c0 00 00 lis r30,0
e70: 3b 7b 02 9c addi r27,r27,668
e74: 90 1f 00 10 stw r0,16(r31)
e78: 3b 9c 02 b0 addi r28,r28,688
e7c: 3b bd 02 b4 addi r29,r29,692
if(n->nud_state & NUD_VALID)
e80: 3b de 00 00 addi r30,r30,0
e84: 38 60 00 08 li r3,8
e88: 7f 64 db 78 mr r4,r27
{
DEBUG_CODE_LINE();
e8c: 7f 85 e3 78 mr r5,r28
e90: 7f a6 eb 78 mr r6,r29
e94: 7f c7 f3 78 mr r7,r30
e98: 39 00 00 a4 li r8,164
e9c: 4c c6 31 82 crclr 4*cr1+eq
ea0: 48 00 00 01 bl ea0 <DbgFS_ArpTestShow+0x164>
ea4: 88 1f 00 1d lbz r0,29(r31)
ea8: 70 09 00 de andi. r9,r0,222
read_lock_bh(&n->lock);
eac: 41 82 00 94 beq- f40 <DbgFS_ArpTestShow+0x204>
memcpy(haddr, n->ha, dev->addr_len);
eb0: 7f a6 eb 78 mr r6,r29
eb4: 7f c7 f3 78 mr r7,r30
eb8: 39 00 00 a7 li r8,167
ebc: 7f 64 db 78 mr r4,r27
read_unlock_bh(&n->lock);
ec0: 7f 85 e3 78 mr r5,r28
PPC405_ERR77(0,%1)
" stwcx. %0,0,%1\n\
bne- 1b"
PPC_ACQUIRE_BARRIER
: "=&r" (t)
: "r" (&v->counter)
ec4: 38 60 00 08 li r3,8
static __inline__ int atomic_dec_return(atomic_t *v)
{
int t;
__asm__ __volatile__(
ec8: 4c c6 31 82 crclr 4*cr1+eq
ecc: 48 00 00 01 bl ecc <DbgFS_ArpTestShow+0x190>
ed0: 48 00 00 01 bl ed0 <DbgFS_ArpTestShow+0x194>
ed4: 88 ba 01 00 lbz r5,256(r26)
* Neighbour references
*/
static inline void neigh_release(struct neighbour *neigh)
{
if (atomic_dec_and_test(&neigh->refcnt))
ed8: 38 9f 00 24 addi r4,r31,36
edc: 38 61 00 0c addi r3,r1,12
seq_printf(seq, "---------------------------------------------------\n");
printk("++++++++ get ip 0x%08X MacAddress\n", ipaddr);
get_mac_form_ipv2(haddr, 2, (ipaddr), 3);
print_hex_dump(KERN_ERR, "haddrV1_", DUMP_PREFIX_ADDRESS, 16, 1,
ee0: 48 00 00 01 bl ee0 <DbgFS_ArpTestShow+0x1a4>
ee4: 48 00 00 01 bl ee4 <DbgFS_ArpTestShow+0x1a8>
ee8: 39 3f 00 48 addi r9,r31,72
eec: 7c 00 48 28 lwarx r0,0,r9
ef0: 30 00 ff ff addic r0,r0,-1
ef4: 7c 00 49 2d stwcx. r0,0,r9
ef8: 40 a2 ff f4 bne- eec <DbgFS_ArpTestShow+0x1b0>
efc: 2f 80 00 00 cmpwi cr7,r0,0
f00: 41 9e 00 34 beq- cr7,f34 <DbgFS_ArpTestShow+0x1f8>
f04: 3c 60 00 00 lis r3,0
f08: 3c 80 00 00 lis r4,0
f0c: 38 63 03 00 addi r3,r3,768
neigh_destroy(neigh);
f10: 38 84 03 04 addi r4,r4,772
f14: 38 a0 00 01 li r5,1
f18: 38 c0 00 10 li r6,16
neigh_release(n);
return 0;
}
else
{
DEBUG_CODE_LINE();
f1c: 38 e0 00 01 li r7,1
f20: 39 01 00 0c addi r8,r1,12
f24: 39 20 00 06 li r9,6
f28: 39 40 00 00 li r10,0
f2c: 48 00 00 01 bl f2c <DbgFS_ArpTestShow+0x1f0>
f30: 4b ff fe 58 b d88 <DbgFS_ArpTestShow+0x4c>
f34: 7f e3 fb 78 mr r3,r31
f38: 48 00 00 01 bl f38 <DbgFS_ArpTestShow+0x1fc>
PPC405_ERR77(0,%1)
" stwcx. %0,0,%1\n\
bne- 1b"
PPC_ACQUIRE_BARRIER
: "=&r" (t)
: "r" (&v->counter)
f3c: 4b ff ff c8 b f04 <DbgFS_ArpTestShow+0x1c8>
static __inline__ int atomic_dec_return(atomic_t *v)
{
int t;
__asm__ __volatile__(
f40: 38 60 00 08 li r3,8
f44: 7f 64 db 78 mr r4,r27
f48: 7f 85 e3 78 mr r5,r28
f4c: 7f a6 eb 78 mr r6,r29
* Neighbour references
*/
static inline void neigh_release(struct neighbour *neigh)
{
if (atomic_dec_and_test(&neigh->refcnt))
f50: 7f c7 f3 78 mr r7,r30
f54: 39 00 00 b0 li r8,176
neigh_destroy(neigh);
f58: 4c c6 31 82 crclr 4*cr1+eq
f5c: 48 00 00 01 bl f5c <DbgFS_ArpTestShow+0x220>
}
}
if(id == 4 || id == 3)
{
printk("eth %d ipaddr %s arp call by %d Error\n",
f60: 39 3f 00 48 addi r9,r31,72
f64: 7c 00 48 28 lwarx r0,0,r9
f68: 30 00 ff ff addic r0,r0,-1
f6c: 7c 00 49 2d stwcx. r0,0,r9
f70: 40 a2 ff f4 bne- f64 <DbgFS_ArpTestShow+0x228>
f74: 2f 80 00 00 cmpwi cr7,r0,0
f78: 40 be 00 0c bne+ cr7,f84 <DbgFS_ArpTestShow+0x248>
f7c: 7f e3 fb 78 mr r3,r31
f80: 48 00 00 01 bl f80 <DbgFS_ArpTestShow+0x244>
f84: 80 61 00 08 lwz r3,8(r1)
struct neighbour *n = neigh_lookup(tbl, pkey, dev);
if (n || !creat)
return n;
n = neigh_create(tbl, pkey, dev);
f88: 48 00 00 01 bl f88 <DbgFS_ArpTestShow+0x24c>
f8c: 38 80 00 02 li r4,2
f90: 7c 65 1b 78 mr r5,r3
f94: 3c 60 00 00 lis r3,0
return IS_ERR(n) ? NULL : n;
f98: 38 c0 00 03 li r6,3
f9c: 38 63 02 d8 addi r3,r3,728
struct neighbour *n = neigh_lookup(tbl, pkey, dev);
if (n || !creat)
return n;
n = neigh_create(tbl, pkey, dev);
fa0: 4c c6 31 82 crclr 4*cr1+eq
return IS_ERR(n) ? NULL : n;
fa4: 48 00 00 01 bl fa4 <DbgFS_ArpTestShow+0x268>
if(haddr != NULL)
{
n = __neigh_lookup(&arp_tbl, &ipaddr, dev, 1);
if(n != NULL)
fa8: 4b ff ff 5c b f04 <DbgFS_ArpTestShow+0x1c8>
fac: 7f a3 eb 78 mr r3,r29
neigh_release(n);
}
}
else if(id == 4 || id == 3)
{
printk("__neigh_lookup is null\n");
fb0: 7f c4 f3 78 mr r4,r30
fb4: 7f 45 d3 78 mr r5,r26
fb8: 48 00 00 01 bl fb8 <DbgFS_ArpTestShow+0x27c>
fbc: 38 00 f0 00 li r0,-4096
fc0: 7f 83 00 40 cmplw cr7,r3,r0
* @details <20><><EFBFBD><EFBFBD> \a cFlag <20>ĵȼ<C4B5><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ \a pMsg
* @param cFlag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
*/
static void HD_PRINTF(LOG_LEVEL level, const char* pMsg)
{
fc4: 7c 7f 1b 78 mr r31,r3
fc8: 41 9d 00 0c bgt- cr7,fd4 <DbgFS_ArpTestShow+0x298>
fcc: 2f 83 00 00 cmpwi cr7,r3,0
fd0: 40 be fe 88 bne- cr7,e58 <DbgFS_ArpTestShow+0x11c>
struct timeval tv;
struct tm wtm;
do_gettimeofday(&tv);
fd4: 3c 60 00 00 lis r3,0
* @details <20><><EFBFBD><EFBFBD> \a cFlag <20>ĵȼ<C4B5><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ \a pMsg
* @param cFlag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
*/
static void HD_PRINTF(LOG_LEVEL level, const char* pMsg)
{
fd8: 38 63 02 c0 addi r3,r3,704
fdc: 4c c6 31 82 crclr 4*cr1+eq
struct timeval tv;
struct tm wtm;
do_gettimeofday(&tv);
fe0: 48 00 00 01 bl fe0 <DbgFS_ArpTestShow+0x2a4>
time_to_tm(tv.tv_sec, 0, &wtm);
fe4: 4b ff ff a0 b f84 <DbgFS_ArpTestShow+0x248>
00000fe8 <HD_PRINTF>:
fe8: 94 21 ff b0 stwu r1,-80(r1)
fec: 7c 08 02 a6 mflr r0
ff0: bf a1 00 44 stmw r29,68(r1)
wtm.tm_yday = tv.tv_usec / 1000;
ff4: 7c 7d 1b 78 mr r29,r3
ff8: 38 61 00 08 addi r3,r1,8
ffc: 90 01 00 54 stw r0,84(r1)
1000: 7c 9e 23 78 mr r30,r4
1004: 48 00 00 01 bl 1004 <HD_PRINTF+0x1c>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param dt Log <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
*/
static void HD_LinuxPrintf(LOG_LEVEL level, struct tm* dt, const char* pMsg)
{
char* pDebugMsg = (char*)kmalloc(strlen(pMsg) + 64, GFP_KERNEL);
1008: 80 61 00 08 lwz r3,8(r1)
struct tm wtm;
do_gettimeofday(&tv);
time_to_tm(tv.tv_sec, 0, &wtm);
wtm.tm_yday = tv.tv_usec / 1000;
100c: 38 80 00 00 li r4,0
1010: 38 a1 00 10 addi r5,r1,16
1014: 48 00 00 01 bl 1014 <HD_PRINTF+0x2c>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param dt Log <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
*/
static void HD_LinuxPrintf(LOG_LEVEL level, struct tm* dt, const char* pMsg)
{
char* pDebugMsg = (char*)kmalloc(strlen(pMsg) + 64, GFP_KERNEL);
1018: 81 21 00 0c lwz r9,12(r1)
trace_kmalloc(_THIS_IP_, ret, size, s->size, flags);
return ret;
}
}
return __kmalloc(size, flags);
101c: 3c 00 10 62 lis r0,4194
1020: 60 00 4d d3 ori r0,r0,19923
1024: 7c 09 00 96 mulhw r0,r9,r0
if(pDebugMsg == NULL)
1028: 7d 29 fe 70 srawi r9,r9,31
102c: 7f c3 f3 78 mr r3,r30
printk("Log Malloc Memory Error\n");
printk("%s", pMsg);
return;
}
sprintf(pDebugMsg, "[%02d:%02d:%02d:%03d] [%s] %s",
1030: 7c 00 36 70 srawi r0,r0,6
1034: 7c 09 00 50 subf r0,r9,r0
1038: 90 01 00 2c stw r0,44(r1)
103c: 48 00 00 01 bl 103c <HD_PRINTF+0x54>
1040: 38 63 00 40 addi r3,r3,64
1044: 38 80 00 d0 li r4,208
1048: 48 00 00 01 bl 1048 <HD_PRINTF+0x60>
104c: 7c 7f 1b 79 mr. r31,r3
1050: 41 82 00 7c beq- 10cc <HD_PRINTF+0xe4>
1054: 3b bd ff ff addi r29,r29,-1
1058: 80 a1 00 18 lwz r5,24(r1)
105c: 2b 9d 00 3f cmplwi cr7,r29,63
1060: 80 c1 00 14 lwz r6,20(r1)
1064: 80 e1 00 10 lwz r7,16(r1)
1068: 81 01 00 2c lwz r8,44(r1)
106c: 41 9d 00 54 bgt- cr7,10c0 <HD_PRINTF+0xd8>
1070: 3d 20 00 00 lis r9,0
dt->tm_hour, dt->tm_min, dt->tm_sec, dt->tm_yday,
LogLevelToStr(level), pMsg);
printk(pDebugMsg);
1074: 57 bd 10 3a rlwinm r29,r29,2,0,29
1078: 39 29 00 00 addi r9,r9,0
107c: 7d 29 e8 2e lwzx r9,r9,r29
kfree(pDebugMsg);
1080: 3c 80 00 00 lis r4,0
1084: 7f ca f3 78 mr r10,r30
time_to_tm(tv.tv_sec, 0, &wtm);
wtm.tm_yday = tv.tv_usec / 1000;
HD_LinuxPrintf(level, &wtm, pMsg);
}
1088: 38 84 00 24 addi r4,r4,36
108c: 7f e3 fb 78 mr r3,r31
1090: 4c c6 31 82 crclr 4*cr1+eq
1094: 48 00 00 01 bl 1094 <HD_PRINTF+0xac>
1098: 7f e3 fb 78 mr r3,r31
109c: 4c c6 31 82 crclr 4*cr1+eq
10a0: 48 00 00 01 bl 10a0 <HD_PRINTF+0xb8>
10a4: 7f e3 fb 78 mr r3,r31
{
char* pDebugMsg = (char*)kmalloc(strlen(pMsg) + 64, GFP_KERNEL);
if(pDebugMsg == NULL)
{
printk("Log Malloc Memory Error\n");
10a8: 48 00 00 01 bl 10a8 <HD_PRINTF+0xc0>
10ac: 80 01 00 54 lwz r0,84(r1)
10b0: bb a1 00 44 lmw r29,68(r1)
10b4: 38 21 00 50 addi r1,r1,80
printk("%s", pMsg);
10b8: 7c 08 03 a6 mtlr r0
10bc: 4e 80 00 20 blr
10c0: 3d 20 00 00 lis r9,0
10c4: 39 29 00 00 addi r9,r9,0
10c8: 4b ff ff b8 b 1080 <HD_PRINTF+0x98>
10cc: 3c 60 00 00 lis r3,0
* @param level <20><><EFBFBD>Եȼ<D4B5>
* @param iEnable 1 <20>򿪵<EFBFBD><F2BFAAB5>Եȼ<D4B5><C8BC><EFBFBD> 0 <20>رյ<D8B1><D5B5>Եȼ<D4B5>
*/
void HD_EnableLogLevel(LOG_LEVEL level, int iEnable)
{
if(iEnable > 0)
10d0: 38 63 00 04 addi r3,r3,4
10d4: 4c c6 31 82 crclr 4*cr1+eq
{
g_iMinLevel |= level;
10d8: 48 00 00 01 bl 10d8 <HD_PRINTF+0xf0>
10dc: 3c 60 00 00 lis r3,0
10e0: 7f c4 f3 78 mr r4,r30
10e4: 38 63 00 20 addi r3,r3,32
10e8: 4c c6 31 82 crclr 4*cr1+eq
}
else
{
g_iMinLevel &= ~(level);
10ec: 48 00 00 01 bl 10ec <HD_PRINTF+0x104>
10f0: 4b ff ff bc b 10ac <HD_PRINTF+0xc4>
000010f4 <HD_EnableLogLevel>:
10f4: 2f 84 00 00 cmpwi cr7,r4,0
10f8: 40 9d 00 18 ble- cr7,1110 <HD_EnableLogLevel+0x1c>
10fc: 3d 20 00 00 lis r9,0
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param cFlag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
*/
void HD_LOG(LOG_LEVEL level, const char* pMsg, ...)
{
1100: 80 09 00 00 lwz r0,0(r9)
1104: 7c 63 03 78 or r3,r3,r0
int iMsgLen = 0;
char buf[512];
char* pMsgBuf = NULL;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Եȼ<D4B5>
if(!(g_iMinLevel & level))
1108: 90 69 00 00 stw r3,0(r9)
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param cFlag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
*/
void HD_LOG(LOG_LEVEL level, const char* pMsg, ...)
{
110c: 4e 80 00 20 blr
int iMsgLen = 0;
char buf[512];
char* pMsgBuf = NULL;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Եȼ<D4B5>
if(!(g_iMinLevel & level))
1110: 3d 20 00 00 lis r9,0
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param cFlag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
*/
void HD_LOG(LOG_LEVEL level, const char* pMsg, ...)
{
1114: 80 09 00 00 lwz r0,0(r9)
1118: 7c 03 18 78 andc r3,r0,r3
111c: 90 69 00 00 stw r3,0(r9)
1120: 4e 80 00 20 blr
00001124 <HD_LOG>:
int iMsgLen = 0;
char buf[512];
char* pMsgBuf = NULL;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Եȼ<D4B5>
if(!(g_iMinLevel & level))
1124: 94 21 fd b0 stwu r1,-592(r1)
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @param cFlag <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
* @param pMsg <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
*/
void HD_LOG(LOG_LEVEL level, const char* pMsg, ...)
{
1128: 7c 08 02 a6 mflr r0
112c: 3d 60 00 00 lis r11,0
1130: 90 01 02 54 stw r0,596(r1)
1134: 80 0b 00 00 lwz r0,0(r11)
1138: bf 01 02 30 stmw r24,560(r1)
int iMsgLen = 0;
char buf[512];
char* pMsgBuf = NULL;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Եȼ<D4B5>
if(!(g_iMinLevel & level))
113c: 7c 7f 1b 78 mr r31,r3
}
else
{
HD_PRINTF(level, buf);
}
}
1140: 90 a1 02 18 stw r5,536(r1)
1144: 7c 9e 23 78 mr r30,r4
1148: 7c 6b 00 39 and. r11,r3,r0
114c: 90 c1 02 1c stw r6,540(r1)
1150: 90 e1 02 20 stw r7,544(r1)
if(!(g_iMinLevel & level))
{
return;
}
memset(buf, 0, sizeof(buf));
1154: 91 01 02 24 stw r8,548(r1)
1158: 91 21 02 28 stw r9,552(r1)
115c: 91 41 02 2c stw r10,556(r1)
va_start(arg_ptr, pMsg);
1160: 40 82 00 18 bne- 1178 <HD_LOG+0x54>
if(!(g_iMinLevel & level))
{
return;
}
memset(buf, 0, sizeof(buf));
1164: 80 01 02 54 lwz r0,596(r1)
va_start(arg_ptr, pMsg);
1168: bb 01 02 30 lmw r24,560(r1)
116c: 38 21 02 50 addi r1,r1,592
1170: 7c 08 03 a6 mtlr r0
1174: 4e 80 00 20 blr
iMsgLen = __builtin_vsnprintf(buf, sizeof(buf), pMsg, arg_ptr);
1178: 38 80 00 00 li r4,0
117c: 38 a0 02 00 li r5,512
return;
}
memset(buf, 0, sizeof(buf));
va_start(arg_ptr, pMsg);
1180: 38 61 00 14 addi r3,r1,20
iMsgLen = __builtin_vsnprintf(buf, sizeof(buf), pMsg, arg_ptr);
1184: 3b 81 02 58 addi r28,r1,600
1188: 48 00 00 01 bl 1188 <HD_LOG+0x64>
return;
}
memset(buf, 0, sizeof(buf));
va_start(arg_ptr, pMsg);
118c: 3b 40 00 02 li r26,2
1190: 3b 60 00 00 li r27,0
iMsgLen = __builtin_vsnprintf(buf, sizeof(buf), pMsg, arg_ptr);
1194: 9b 41 00 08 stb r26,8(r1)
va_end(arg_ptr);
if(iMsgLen > sizeof(buf))
1198: 3b a1 02 10 addi r29,r1,528
119c: 38 61 00 14 addi r3,r1,20
{
pMsgBuf = (char*)kmalloc(iMsgLen + 1, GFP_KERNEL);
11a0: 38 80 02 00 li r4,512
11a4: 9b 61 00 09 stb r27,9(r1)
11a8: 7f c5 f3 78 mr r5,r30
11ac: 38 c1 00 08 addi r6,r1,8
if(pMsgBuf == NULL)
11b0: 93 81 00 0c stw r28,12(r1)
11b4: 93 a1 00 10 stw r29,16(r1)
{
return;
}
va_start(arg_ptr, pMsg);
iMsgLen = __builtin_vsnprintf(pMsgBuf, iMsgLen + 1, pMsg, arg_ptr);
11b8: 48 00 00 01 bl 11b8 <HD_LOG+0x94>
11bc: 2b 83 02 00 cmplwi cr7,r3,512
11c0: 40 9d 00 64 ble- cr7,1224 <HD_LOG+0x100>
if(pMsgBuf == NULL)
{
return;
}
va_start(arg_ptr, pMsg);
11c4: 3b 23 00 01 addi r25,r3,1
11c8: 38 80 00 d0 li r4,208
11cc: 7f 23 cb 78 mr r3,r25
11d0: 48 00 00 01 bl 11d0 <HD_LOG+0xac>
iMsgLen = __builtin_vsnprintf(pMsgBuf, iMsgLen + 1, pMsg, arg_ptr);
11d4: 7c 78 1b 79 mr. r24,r3
va_end(arg_ptr);
HD_PRINTF(level, pMsgBuf);
11d8: 41 a2 ff 8c beq- 1164 <HD_LOG+0x40>
11dc: 7f c5 f3 78 mr r5,r30
11e0: 38 c1 00 08 addi r6,r1,8
kfree(pMsgBuf);
11e4: 7f 24 cb 78 mr r4,r25
11e8: 9b 41 00 08 stb r26,8(r1)
}
else
{
HD_PRINTF(level, buf);
}
}
11ec: 9b 61 00 09 stb r27,9(r1)
11f0: 93 81 00 0c stw r28,12(r1)
11f4: 93 a1 00 10 stw r29,16(r1)
11f8: 48 00 00 01 bl 11f8 <HD_LOG+0xd4>
11fc: 7f e3 fb 78 mr r3,r31
HD_PRINTF(level, pMsgBuf);
kfree(pMsgBuf);
}
else
{
HD_PRINTF(level, buf);
1200: 7f 04 c3 78 mr r4,r24
1204: 4b ff fd e5 bl fe8 <HD_PRINTF>
1208: 7f 03 c3 78 mr r3,r24
}
}
120c: 48 00 00 01 bl 120c <HD_LOG+0xe8>
1210: 80 01 02 54 lwz r0,596(r1)
1214: bb 01 02 30 lmw r24,560(r1)
1218: 38 21 02 50 addi r1,r1,592
121c: 7c 08 03 a6 mtlr r0
1220: 4e 80 00 20 blr
1224: 7f e3 fb 78 mr r3,r31
1228: 38 81 00 14 addi r4,r1,20
122c: 4b ff fd bd bl fe8 <HD_PRINTF>
1230: 80 01 02 54 lwz r0,596(r1)
1234: bb 01 02 30 lmw r24,560(r1)
1238: 38 21 02 50 addi r1,r1,592
123c: 7c 08 03 a6 mtlr r0
1240: 4e 80 00 20 blr
Disassembly of section .init.text:
00000000 <init_module>:
0: 94 21 ff e0 stwu r1,-32(r1)
4: 3c 80 00 00 lis r4,0
8: 3c a0 00 00 lis r5,0
c: 3c 60 00 00 lis r3,0
10: 7c 08 02 a6 mflr r0
14: 38 84 03 34 addi r4,r4,820
18: 38 a5 03 40 addi r5,r5,832
1c: 38 63 03 10 addi r3,r3,784
20: bf 41 00 08 stmw r26,8(r1)
24: 90 01 00 24 stw r0,36(r1)
28: 4c c6 31 82 crclr 4*cr1+eq
2c: 48 00 00 01 bl 2c <init_module+0x2c>
30: 3c 60 00 00 lis r3,0
34: 38 63 01 fc addi r3,r3,508
38: 3f e0 00 00 lis r31,0
3c: 48 00 00 01 bl 3c <init_module+0x3c>
40: 3b ff 00 00 addi r31,r31,0
44: 90 7f 00 0c stw r3,12(r31)
48: 3c 60 00 00 lis r3,0
4c: 38 63 03 4c addi r3,r3,844
50: 3f a0 00 00 lis r29,0
54: 3f c0 00 00 lis r30,0
58: 48 00 00 01 bl 58 <init_module+0x58>
5c: 3f 60 00 00 lis r27,0
60: 90 7f 00 08 stw r3,8(r31)
64: 3c 60 00 00 lis r3,0
68: 38 63 03 5c addi r3,r3,860
6c: 3f 80 00 00 lis r28,0
70: 3b bd 00 00 addi r29,r29,0
74: 48 00 00 01 bl 74 <init_module+0x74>
78: 3b e0 00 00 li r31,0
7c: 3b de 00 00 addi r30,r30,0
80: 3b 7b 03 68 addi r27,r27,872
84: 3b 9c 02 b4 addi r28,r28,692
88: 3b bd 00 14 addi r29,r29,20
8c: 48 00 00 38 b c4 <init_module+0xc4>
90: 48 00 00 01 bl 90 <init_module+0x90>
94: 2f 83 00 00 cmpwi cr7,r3,0
98: 41 be 00 28 beq+ cr7,c0 <init_module+0xc0>
9c: 7f e8 fb 78 mr r8,r31
a0: 38 60 00 02 li r3,2
a4: 7f 64 db 78 mr r4,r27
a8: 7f 85 e3 78 mr r5,r28
ac: 7f a6 eb 78 mr r6,r29
b0: 38 e0 01 ce li r7,462
b4: 7f 49 d3 78 mr r9,r26
b8: 4c c6 31 82 crclr 4*cr1+eq
bc: 48 00 00 01 bl bc <init_module+0xbc>
c0: 3b ff 00 01 addi r31,r31,1
c4: 57 e0 18 38 rlwinm r0,r31,3,0,28
c8: 57 fa 30 32 rlwinm r26,r31,6,0,25
cc: 7f 40 d0 50 subf r26,r0,r26
d0: 2f 9f 00 07 cmpwi cr7,r31,7
d4: 7f 5e d2 14 add r26,r30,r26
d8: 7f 43 d3 78 mr r3,r26
dc: 40 9e ff b4 bne+ cr7,90 <init_module+0x90>
e0: 3c 60 00 00 lis r3,0
e4: 3f e0 00 00 lis r31,0
e8: 38 63 03 8c addi r3,r3,908
ec: 3b ff 03 a8 addi r31,r31,936
f0: 48 00 00 01 bl f0 <init_module+0xf0>
f4: 7c 7d 1b 78 mr r29,r3
f8: 3c 60 00 00 lis r3,0
fc: 38 63 03 9c addi r3,r3,924
100: 48 00 00 01 bl 100 <init_module+0x100>
104: 7c 7e 1b 78 mr r30,r3
108: 7f e3 fb 78 mr r3,r31
10c: 48 00 00 01 bl 10c <init_module+0x10c>
110: 7f a4 eb 78 mr r4,r29
114: 7c 66 1b 78 mr r6,r3
118: 7f c5 f3 78 mr r5,r30
11c: 38 60 00 00 li r3,0
120: 48 00 00 01 bl 120 <init_module+0x120>
124: 3c 60 00 00 lis r3,0
128: 38 63 03 b8 addi r3,r3,952
12c: 48 00 00 01 bl 12c <init_module+0x12c>
130: 7c 7d 1b 78 mr r29,r3
134: 3c 60 00 00 lis r3,0
138: 38 63 03 c8 addi r3,r3,968
13c: 48 00 00 01 bl 13c <init_module+0x13c>
140: 7c 7e 1b 78 mr r30,r3
144: 7f e3 fb 78 mr r3,r31
148: 3f e0 00 00 lis r31,0
14c: 48 00 00 01 bl 14c <init_module+0x14c>
150: 7f a4 eb 78 mr r4,r29
154: 7c 66 1b 78 mr r6,r3
158: 7f c5 f3 78 mr r5,r30
15c: 38 60 00 02 li r3,2
160: 48 00 00 01 bl 160 <init_module+0x160>
164: 38 80 17 70 li r4,6000
168: 38 a0 00 03 li r5,3
16c: 38 c0 23 28 li r6,9000
170: 38 60 00 01 li r3,1
174: 48 00 00 01 bl 174 <init_module+0x174>
178: 3b ff 00 00 addi r31,r31,0
17c: 38 80 00 01 li r4,1
180: 38 a0 17 70 li r5,6000
184: 38 c0 23 28 li r6,9000
188: 38 60 00 00 li r3,0
18c: 48 00 00 01 bl 18c <init_module+0x18c>
190: 80 9f 00 08 lwz r4,8(r31)
194: 38 a0 27 10 li r5,10000
198: 38 c0 00 00 li r6,0
19c: 38 60 00 00 li r3,0
1a0: 48 00 00 01 bl 1a0 <init_module+0x1a0>
1a4: 80 bf 00 0c lwz r5,12(r31)
1a8: 38 80 00 06 li r4,6
1ac: 38 c0 17 70 li r6,6000
1b0: 38 60 00 00 li r3,0
1b4: 48 00 00 01 bl 1b4 <init_module+0x1b4>
1b8: 3c 60 00 00 lis r3,0
1bc: 3c a0 00 00 lis r5,0
1c0: 38 63 00 00 addi r3,r3,0
1c4: 38 80 00 00 li r4,0
1c8: 38 a5 03 d4 addi r5,r5,980
1cc: 4c c6 31 82 crclr 4*cr1+eq
1d0: 48 00 00 01 bl 1d0 <init_module+0x1d0>
1d4: 39 20 f0 00 li r9,-4096
1d8: 7f 83 48 40 cmplw cr7,r3,r9
1dc: 90 7f 00 10 stw r3,16(r31)
1e0: 41 9d 00 08 bgt- cr7,1e8 <init_module+0x1e8>
1e4: 48 00 00 01 bl 1e4 <init_module+0x1e4>
1e8: 80 01 00 24 lwz r0,36(r1)
1ec: 38 60 00 00 li r3,0
1f0: bb 41 00 08 lmw r26,8(r1)
1f4: 38 21 00 20 addi r1,r1,32
1f8: 7c 08 03 a6 mtlr r0
1fc: 4e 80 00 20 blr
Disassembly of section .exit.text:
00000000 <cleanup_module>:
0: 94 21 ff f0 stwu r1,-16(r1)
4: 7c 08 02 a6 mflr r0
8: 3c 60 00 00 lis r3,0
c: 3c 80 00 00 lis r4,0
10: 3c a0 00 00 lis r5,0
14: bf c1 00 08 stmw r30,8(r1)
18: 3f e0 00 00 lis r31,0
1c: 90 01 00 14 stw r0,20(r1)
20: 3b ff 00 00 addi r31,r31,0
24: 38 00 00 00 li r0,0
28: 90 1f 01 88 stw r0,392(r31)
2c: 38 63 03 e4 addi r3,r3,996
30: 38 84 03 34 addi r4,r4,820
34: 38 a5 03 40 addi r5,r5,832
38: 3b c0 00 00 li r30,0
3c: 4c c6 31 82 crclr 4*cr1+eq
40: 48 00 00 01 bl 40 <cleanup_module+0x40>
44: 48 00 00 0c b 50 <cleanup_module+0x50>
48: 48 00 00 01 bl 48 <cleanup_module+0x48>
4c: 3b de 00 01 addi r30,r30,1
50: 57 c0 18 38 rlwinm r0,r30,3,0,28
54: 57 c3 30 32 rlwinm r3,r30,6,0,25
58: 7c 60 18 50 subf r3,r0,r3
5c: 2f 9e 00 07 cmpwi cr7,r30,7
60: 7c 7f 1a 14 add r3,r31,r3
64: 40 9e ff e4 bne+ cr7,48 <cleanup_module+0x48>
68: 48 00 00 01 bl 68 <cleanup_module+0x68>
6c: 80 01 00 14 lwz r0,20(r1)
70: bb c1 00 08 lmw r30,8(r1)
74: 38 21 00 10 addi r1,r1,16
78: 7c 08 03 a6 mtlr r0
7c: 4e 80 00 20 blr