ofs | hex dump | ascii |
---|
0000 | 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | diethotplug-0.5/................ |
0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0060 | 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 | ....0000755.0001750.0001750.0000 |
0080 | 30 30 30 30 30 30 30 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 34 30 37 33 00 20 35 00 00 00 | 0000000.10466710434.014073..5... |
00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0100 | 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...andersen............... |
0120 | 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........andersen............... |
0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0200 | 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 00 00 | diethotplug-0.5/Makefile........ |
0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 | ....0000644.0001750.0001750.0000 |
0280 | 30 30 30 32 33 31 37 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 35 35 33 36 00 20 30 00 00 00 | 0002317.10466710434.015536..0... |
02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0300 | 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...andersen............... |
0320 | 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........andersen............... |
0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0400 | 23 20 4d 61 6b 65 66 69 6c 65 20 66 6f 72 20 64 69 65 74 68 6f 74 70 6c 75 67 0a 0a 23 20 53 65 | #.Makefile.for.diethotplug..#.Se |
0420 | 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 60 74 72 75 65 27 20 74 6f 20 6d 61 6b | t.the.following.to.`true'.to.mak |
0440 | 65 20 61 20 64 65 62 75 67 67 61 62 6c 65 20 62 75 69 6c 64 2e 0a 23 20 4c 65 61 76 65 20 74 68 | e.a.debuggable.build..#.Leave.th |
0460 | 69 73 20 73 65 74 20 74 6f 20 60 66 61 6c 73 65 27 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e | is.set.to.`false'.for.production |
0480 | 20 75 73 65 2e 0a 44 45 42 55 47 20 3d 20 66 61 6c 73 65 0a 0a 23 20 49 66 20 79 6f 75 20 61 72 | .use..DEBUG.=.false..#.If.you.ar |
04a0 | 65 20 72 75 6e 6e 69 6e 67 20 61 20 63 72 6f 73 73 20 63 6f 6d 70 69 6c 65 72 2c 20 79 6f 75 20 | e.running.a.cross.compiler,.you. |
04c0 | 6d 61 79 20 77 61 6e 74 20 74 6f 20 73 65 74 20 74 68 69 73 0a 23 20 74 6f 20 73 6f 6d 65 74 68 | may.want.to.set.this.#.to.someth |
04e0 | 69 6e 67 20 6d 6f 72 65 20 69 6e 74 65 72 65 73 74 69 6e 67 2c 20 6c 69 6b 65 20 22 61 72 6d 2d | ing.more.interesting,.like."arm- |
0500 | 6c 69 6e 75 78 2d 22 2e 20 20 49 20 79 6f 75 20 77 61 6e 74 0a 23 20 74 6f 20 63 6f 6d 70 69 6c | linux-"...I.you.want.#.to.compil |
0520 | 65 20 76 73 20 75 43 6c 69 62 63 2c 20 74 68 61 74 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 68 65 | e.vs.uClibc,.that.can.be.done.he |
0540 | 72 65 20 61 73 20 77 65 6c 6c 2e 0a 43 52 4f 53 53 20 3d 20 23 2f 75 73 72 2f 69 33 38 36 2d 6c | re.as.well..CROSS.=.#/usr/i386-l |
0560 | 69 6e 75 78 2d 75 63 6c 69 62 63 2f 75 73 72 2f 62 69 6e 2f 69 33 38 36 2d 75 63 6c 69 62 63 2d | inux-uclibc/usr/bin/i386-uclibc- |
0580 | 0a 43 43 20 3d 20 24 28 43 52 4f 53 53 29 67 63 63 0a 41 52 20 3d 20 24 28 43 52 4f 53 53 29 61 | .CC.=.$(CROSS)gcc.AR.=.$(CROSS)a |
05a0 | 72 0a 53 54 52 49 50 20 3d 20 24 28 43 52 4f 53 53 29 73 74 72 69 70 0a 0a 0a 23 20 75 73 65 20 | r.STRIP.=.$(CROSS)strip...#.use. |
05c0 | 27 2d 4f 73 27 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2c | '-Os'.optimization.if.available, |
05e0 | 20 65 6c 73 65 20 75 73 65 20 2d 4f 32 0a 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 20 3a 3d 20 24 7b | .else.use.-O2.OPTIMIZATION.:=.${ |
0600 | 73 68 65 6c 6c 20 69 66 20 24 28 43 43 29 20 2d 4f 73 20 2d 53 20 2d 6f 20 2f 64 65 76 2f 6e 75 | shell.if.$(CC).-Os.-S.-o./dev/nu |
0620 | 6c 6c 20 2d 78 63 20 2f 64 65 76 2f 6e 75 6c 6c 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 | ll.-xc./dev/null.>/dev/null.2>&1 |
0640 | 3b 20 5c 0a 09 09 74 68 65 6e 20 65 63 68 6f 20 22 2d 4f 73 22 3b 20 65 6c 73 65 20 65 63 68 6f | ;.\...then.echo."-Os";.else.echo |
0660 | 20 22 2d 4f 32 22 20 3b 20 66 69 7d 0a 0a 57 41 52 4e 49 4e 47 53 20 3a 3d 20 2d 57 61 6c 6c 20 | ."-O2".;.fi}..WARNINGS.:=.-Wall. |
0680 | 2d 57 73 68 61 64 6f 77 20 2d 57 73 74 72 69 63 74 2d 70 72 6f 74 6f 74 79 70 65 73 0a 43 46 4c | -Wshadow.-Wstrict-prototypes.CFL |
06a0 | 41 47 53 2b 3d 2d 70 69 70 65 0a 0a 23 20 69 66 20 44 45 42 55 47 20 69 73 20 65 6e 61 62 6c 65 | AGS+=-pipe..#.if.DEBUG.is.enable |
06c0 | 64 2c 20 74 68 65 6e 20 77 65 20 64 6f 20 6e 6f 74 20 73 74 72 69 70 20 6f 72 20 6f 70 74 69 6d | d,.then.we.do.not.strip.or.optim |
06e0 | 69 7a 65 0a 69 66 65 71 20 28 24 28 73 74 72 69 70 20 24 28 44 45 42 55 47 29 29 2c 74 72 75 65 | ize.ifeq.($(strip.$(DEBUG)),true |
0700 | 29 0a 09 43 46 4c 41 47 53 20 20 2b 3d 20 24 28 57 41 52 4e 49 4e 47 53 29 20 2d 4f 31 20 2d 67 | )..CFLAGS..+=.$(WARNINGS).-O1.-g |
0720 | 20 2d 44 44 45 42 55 47 20 2d 44 5f 47 4e 55 5f 53 4f 55 52 43 45 0a 09 4c 44 46 4c 41 47 53 20 | .-DDEBUG.-D_GNU_SOURCE..LDFLAGS. |
0740 | 2b 3d 20 2d 57 6c 2c 2d 77 61 72 6e 2d 63 6f 6d 6d 6f 6e 0a 09 53 54 52 49 50 43 4d 44 20 3d 20 | +=.-Wl,-warn-common..STRIPCMD.=. |
0760 | 2f 62 69 6e 2f 74 72 75 65 20 2d 53 69 6e 63 65 5f 77 65 5f 61 72 65 5f 64 65 62 75 67 67 69 6e | /bin/true.-Since_we_are_debuggin |
0780 | 67 0a 65 6c 73 65 0a 09 43 46 4c 41 47 53 20 20 2b 3d 20 24 28 57 41 52 4e 49 4e 47 53 29 20 24 | g.else..CFLAGS..+=.$(WARNINGS).$ |
07a0 | 28 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 29 20 2d 66 6f 6d 69 74 2d 66 72 61 6d 65 2d 70 6f 69 6e | (OPTIMIZATION).-fomit-frame-poin |
07c0 | 74 65 72 20 2d 44 5f 47 4e 55 5f 53 4f 55 52 43 45 0a 09 4c 44 46 4c 41 47 53 20 2b 3d 20 2d 73 | ter.-D_GNU_SOURCE..LDFLAGS.+=.-s |
07e0 | 20 2d 57 6c 2c 2d 77 61 72 6e 2d 63 6f 6d 6d 6f 6e 0a 09 53 54 52 49 50 43 4d 44 20 3d 20 24 28 | .-Wl,-warn-common..STRIPCMD.=.$( |
0800 | 53 54 52 49 50 29 20 2d 73 20 2d 2d 72 65 6d 6f 76 65 2d 73 65 63 74 69 6f 6e 3d 2e 6e 6f 74 65 | STRIP).-s.--remove-section=.note |
0820 | 20 2d 2d 72 65 6d 6f 76 65 2d 73 65 63 74 69 6f 6e 3d 2e 63 6f 6d 6d 65 6e 74 0a 65 6e 64 69 66 | .--remove-section=.comment.endif |
0840 | 0a 0a 0a 61 6c 6c 3a 20 68 6f 74 70 6c 75 67 0a 0a 68 6f 74 70 6c 75 67 3a 20 68 6f 74 70 6c 75 | ...all:.hotplug..hotplug:.hotplu |
0860 | 67 2e 63 0a 09 24 28 43 43 29 20 24 28 43 46 4c 41 47 53 29 20 24 28 4c 44 46 4c 41 47 53 29 20 | g.c..$(CC).$(CFLAGS).$(LDFLAGS). |
0880 | 68 6f 74 70 6c 75 67 2e 63 20 2d 6f 20 68 6f 74 70 6c 75 67 0a 09 24 28 53 54 52 49 50 43 4d 44 | hotplug.c.-o.hotplug..$(STRIPCMD |
08a0 | 29 20 68 6f 74 70 6c 75 67 0a 0a 63 6c 65 61 6e 3a 0a 09 72 6d 20 2d 72 66 20 63 6f 72 65 20 68 | ).hotplug..clean:..rm.-rf.core.h |
08c0 | 6f 74 70 6c 75 67 20 2a 2e 5b 61 6f 5d 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | otplug.*.[ao]................... |
08e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
09e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a00 | 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 68 6f 74 70 6c 75 67 2e 63 00 00 00 00 00 00 00 | diethotplug-0.5/hotplug.c....... |
0a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0a60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 | ....0000644.0001750.0001750.0000 |
0a80 | 30 30 36 35 34 33 34 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 35 37 33 35 00 20 30 00 00 00 | 0065434.10466710434.015735..0... |
0aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b00 | 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...andersen............... |
0b20 | 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........andersen............... |
0b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
0c00 | 2f 2a 0a 20 2a 20 68 6f 74 70 6c 75 67 2e 63 0a 20 2a 0a 20 2a 20 41 20 76 65 72 73 69 6f 6e 20 | /*..*.hotplug.c..*..*.A.version. |
0c20 | 6f 66 20 2f 73 62 69 6e 2f 68 6f 74 70 6c 75 67 20 74 68 61 74 20 69 73 20 6e 6f 74 20 61 20 73 | of./sbin/hotplug.that.is.not.a.s |
0c40 | 63 72 69 70 74 2e 0a 20 2a 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 31 20 | cript...*..*.Copyright.(C).2001. |
0c60 | 47 72 65 67 20 4b 72 6f 61 68 2d 48 61 72 74 6d 61 6e 20 3c 67 72 65 67 40 6b 72 6f 61 68 2e 63 | Greg.Kroah-Hartman.<greg@kroah.c |
0c80 | 6f 6d 3e 0a 20 2a 0a 20 2a 09 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 | om>..*..*.This.program.is.free.s |
0ca0 | 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 | oftware;.you.can.redistribute.it |
0cc0 | 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 20 2a 09 75 6e 64 65 72 20 74 68 65 20 74 | .and/or.modify.it..*.under.the.t |
0ce0 | 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c | erms.of.the.GNU.General.Public.L |
0d00 | 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 0a 20 2a 09 46 72 | icense.as.published.by.the..*.Fr |
0d20 | 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 20 32 | ee.Software.Foundation.version.2 |
0d40 | 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2e 0a 20 2a 0a 20 2a 09 54 68 69 73 20 70 72 6f 67 | .of.the.License...*..*.This.prog |
0d60 | 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 | ram.is.distributed.in.the.hope.t |
0d80 | 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 0a 20 2a 09 57 49 | hat.it.will.be.useful,.but..*.WI |
0da0 | 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e | THOUT.ANY.WARRANTY;.without.even |
0dc0 | 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 20 2a 09 4d 45 52 43 | .the.implied.warranty.of..*.MERC |
0de0 | 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 | HANTABILITY.or.FITNESS.FOR.A.PAR |
0e00 | 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 0a 20 2a | TICULAR.PURPOSE...See.the.GNU..* |
0e20 | 09 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 | .General.Public.License.for.more |
0e40 | 20 64 65 74 61 69 6c 73 2e 0a 20 2a 0a 20 2a 09 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 | .details...*..*.You.should.have. |
0e60 | 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 | received.a.copy.of.the.GNU.Gener |
0e80 | 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 0a 20 2a 09 77 69 74 68 20 | al.Public.License.along..*.with. |
0ea0 | 74 68 69 73 20 70 72 6f 67 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 | this.program;.if.not,.write.to.t |
0ec0 | 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 | he.Free.Software.Foundation,.Inc |
0ee0 | 2e 2c 0a 20 2a 09 36 37 35 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 64 67 65 2c 20 4d | .,..*.675.Mass.Ave,.Cambridge,.M |
0f00 | 41 20 30 32 31 33 39 2c 20 55 53 41 2e 0a 20 2a 0a 20 2a 20 48 61 63 6b 65 64 20 75 70 20 74 6f | A.02139,.USA...*..*.Hacked.up.to |
0f20 | 20 72 65 61 64 20 74 68 65 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2e 2a 6d 61 70 20 66 | .read.the.various.modules.*map.f |
0f40 | 69 6c 65 73 20 61 6e 64 20 66 6f 72 20 75 73 65 0a 20 2a 20 69 6e 20 42 75 73 79 42 6f 78 20 62 | iles.and.for.use..*.in.BusyBox.b |
0f60 | 79 20 45 72 69 6b 20 41 6e 64 65 72 73 65 6e 20 3c 61 6e 64 65 72 73 65 6e 40 63 6f 64 65 70 6f | y.Erik.Andersen.<andersen@codepo |
0f80 | 65 74 2e 6f 72 67 3e 0a 20 2a 0a 20 2a 2f 0a 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f | et.org>..*..*/...#include.<errno |
0fa0 | 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 | .h>.#include.<stdio.h>.#include. |
0fc0 | 3c 73 74 64 61 72 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 64 65 66 2e 68 3e 0a 23 | <stdarg.h>.#include.<stddef.h>.# |
0fe0 | 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 | include.<stdlib.h>.#include.<str |
1000 | 69 6e 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 6c 6f 67 2e 68 3e 0a 23 69 6e 63 6c | ing.h>.#include.<syslog.h>.#incl |
1020 | 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 70 61 72 | ude.<unistd.h>.#include.<sys/par |
1040 | 61 6d 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 75 74 73 6e 61 6d 65 2e 68 3e 0a 0a | am.h>.#include.<sys/utsname.h>.. |
1060 | 23 64 65 66 69 6e 65 20 4c 49 4e 45 4c 45 4e 47 54 48 20 38 31 39 32 0a 0a 0a 2f 2a 20 45 6e 61 | #define.LINELENGTH.8192.../*.Ena |
1080 | 62 6c 65 20 69 66 20 6e 6f 74 20 75 73 65 64 20 61 73 20 61 20 62 75 73 79 62 6f 78 20 61 70 70 | ble.if.not.used.as.a.busybox.app |
10a0 | 6c 65 74 20 2a 2f 0a 23 69 66 20 31 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a | let.*/.#if.1.static.const.char.* |
10c0 | 20 63 6f 6e 73 74 20 61 70 70 5f 6e 61 6d 65 20 3d 20 22 68 6f 74 70 6c 75 67 22 3b 0a 73 74 61 | .const.app_name.=."hotplug";.sta |
10e0 | 74 69 63 20 76 6f 69 64 20 76 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a | tic.void.verror_msg(const.char.* |
1100 | 73 2c 20 76 61 5f 6c 69 73 74 20 70 29 0a 7b 0a 09 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b | s,.va_list.p).{..fflush(stdout); |
1120 | 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 25 73 3a 20 22 2c 20 | ..fprintf(stderr,."\n\n\n%s:.",. |
1140 | 61 70 70 5f 6e 61 6d 65 29 3b 0a 09 76 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 73 2c 20 | app_name);..vfprintf(stderr,.s,. |
1160 | 70 29 3b 0a 7d 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 63 | p);.}.extern.void.bb_error_msg(c |
1180 | 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b | onst.char.*s,....).{..va_list.p; |
11a0 | 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 65 72 72 6f 72 5f 6d 73 67 28 73 | ...va_start(p,.s);..verror_msg(s |
11c0 | 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 | ,.p);..va_end(p);..fprintf(stder |
11e0 | 72 2c 20 22 5c 6e 5c 6e 5c 6e 22 29 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f | r,."\n\n\n");.}..extern.void.bb_ |
1200 | 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c | error_msg_and_die(const.char.*s, |
1220 | 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 | ....).{..va_list.p;...va_start(p |
1240 | 2c 20 73 29 3b 0a 09 76 65 72 72 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 | ,.s);..verror_msg(s,.p);..va_end |
1260 | 28 70 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 22 29 3b | (p);..fprintf(stderr,."\n\n\n"); |
1280 | 0a 09 65 78 69 74 28 45 58 49 54 5f 46 41 49 4c 55 52 45 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 | ..exit(EXIT_FAILURE);.}..static. |
12a0 | 76 6f 69 64 20 76 70 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 | void.vperror_msg(const.char.*s,. |
12c0 | 76 61 5f 6c 69 73 74 20 70 29 0a 7b 0a 09 69 6e 74 20 65 72 72 20 3d 20 65 72 72 6e 6f 3b 0a 0a | va_list.p).{..int.err.=.errno;.. |
12e0 | 09 69 66 20 28 73 20 3d 3d 20 30 29 0a 09 09 73 20 3d 20 22 22 3b 0a 09 76 65 72 72 6f 72 5f 6d | .if.(s.==.0)...s.=."";..verror_m |
1300 | 73 67 28 73 2c 20 70 29 3b 0a 09 69 66 20 28 2a 73 29 0a 09 09 73 20 3d 20 22 3a 20 22 3b 0a 09 | sg(s,.p);..if.(*s)...s.=.":.";.. |
1320 | 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 25 73 25 73 5c 6e 22 2c 20 73 2c 20 73 74 72 | fprintf(stderr,."%s%s\n",.s,.str |
1340 | 65 72 72 6f 72 28 65 72 72 29 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c | error(err));..fprintf(stderr,."\ |
1360 | 6e 5c 6e 5c 6e 22 29 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f 70 65 72 72 6f | n\n\n");.}..extern.void.bb_perro |
1380 | 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f | r_msg(const.char.*s,....).{..va_ |
13a0 | 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 70 65 72 72 | list.p;...va_start(p,.s);..vperr |
13c0 | 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 7d 0a 0a 65 78 74 | or_msg(s,.p);..va_end(p);.}..ext |
13e0 | 65 72 6e 20 76 6f 69 64 20 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 63 | ern.void.bb_perror_msg_and_die(c |
1400 | 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b | onst.char.*s,....).{..va_list.p; |
1420 | 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 70 65 72 72 6f 72 5f 6d 73 67 28 | ...va_start(p,.s);..vperror_msg( |
1440 | 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 09 65 78 69 74 28 45 58 49 54 5f 46 41 | s,.p);..va_end(p);..exit(EXIT_FA |
1460 | 49 4c 55 52 45 29 3b 0a 7d 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 63 6f | ILURE);.}.static.const.char.*.co |
1480 | 6e 73 74 20 6d 65 6d 6f 72 79 5f 65 78 68 61 75 73 74 65 64 20 3d 20 22 6d 65 6d 6f 72 79 20 65 | nst.memory_exhausted.=."memory.e |
14a0 | 78 68 61 75 73 74 65 64 22 3b 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 2a 78 6d 61 6c 6c 6f 63 28 | xhausted";.extern.void.*xmalloc( |
14c0 | 73 69 7a 65 5f 74 20 73 69 7a 65 29 0a 7b 0a 09 76 6f 69 64 20 2a 70 74 72 20 3d 20 6d 61 6c 6c | size_t.size).{..void.*ptr.=.mall |
14e0 | 6f 63 28 73 69 7a 65 29 3b 0a 0a 09 69 66 20 28 21 70 74 72 29 0a 09 09 62 62 5f 65 72 72 6f 72 | oc(size);...if.(!ptr)...bb_error |
1500 | 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 28 63 68 61 72 2a 29 6d 65 6d 6f 72 79 5f 65 78 68 61 75 | _msg_and_die((char*)memory_exhau |
1520 | 73 74 65 64 29 3b 0a 09 72 65 74 75 72 6e 20 70 74 72 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f | sted);..return.ptr;.}..extern.vo |
1540 | 69 64 20 2a 78 72 65 61 6c 6c 6f 63 28 76 6f 69 64 20 2a 6f 6c 64 2c 20 73 69 7a 65 5f 74 20 73 | id.*xrealloc(void.*old,.size_t.s |
1560 | 69 7a 65 29 0a 7b 0a 09 76 6f 69 64 20 2a 70 74 72 3b 0a 0a 09 2f 2a 20 53 75 53 32 20 73 61 79 | ize).{..void.*ptr;.../*.SuS2.say |
1580 | 73 20 22 49 66 20 73 69 7a 65 20 69 73 20 30 20 61 6e 64 20 70 74 72 20 69 73 20 6e 6f 74 20 61 | s."If.size.is.0.and.ptr.is.not.a |
15a0 | 20 6e 75 6c 6c 20 70 6f 69 6e 74 65 72 2c 20 74 68 65 0a 09 20 2a 20 6f 62 6a 65 63 74 20 70 6f | .null.pointer,.the...*.object.po |
15c0 | 69 6e 74 65 64 20 74 6f 20 69 73 20 66 72 65 65 64 2e 22 20 20 44 6f 20 74 68 61 74 20 68 65 72 | inted.to.is.freed."..Do.that.her |
15e0 | 65 2c 20 69 6e 20 63 61 73 65 20 72 65 61 6c 6c 6f 63 0a 09 20 2a 20 72 65 74 75 72 6e 73 20 61 | e,.in.case.realloc...*.returns.a |
1600 | 20 4e 55 4c 4c 2c 20 73 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 63 68 | .NULL,.since.we.don't.want.to.ch |
1620 | 6f 6b 65 20 69 6e 20 74 68 61 74 20 63 61 73 65 2e 20 2a 2f 0a 09 69 66 20 28 73 69 7a 65 3d 3d | oke.in.that.case..*/..if.(size== |
1640 | 30 20 26 26 20 6f 6c 64 29 20 7b 0a 09 09 66 72 65 65 28 6f 6c 64 29 3b 0a 09 09 72 65 74 75 72 | 0.&&.old).{...free(old);...retur |
1660 | 6e 20 4e 55 4c 4c 3b 0a 09 7d 0a 0a 09 70 74 72 20 3d 20 72 65 61 6c 6c 6f 63 28 6f 6c 64 2c 20 | n.NULL;..}...ptr.=.realloc(old,. |
1680 | 73 69 7a 65 29 3b 0a 09 69 66 20 28 21 70 74 72 29 0a 09 09 62 62 5f 65 72 72 6f 72 5f 6d 73 67 | size);..if.(!ptr)...bb_error_msg |
16a0 | 5f 61 6e 64 5f 64 69 65 28 28 63 68 61 72 2a 29 6d 65 6d 6f 72 79 5f 65 78 68 61 75 73 74 65 64 | _and_die((char*)memory_exhausted |
16c0 | 29 3b 0a 09 72 65 74 75 72 6e 20 70 74 72 3b 0a 7d 0a 23 64 65 66 69 6e 65 20 68 6f 74 70 6c 75 | );..return.ptr;.}.#define.hotplu |
16e0 | 67 5f 6d 61 69 6e 09 6d 61 69 6e 0a 23 65 6e 64 69 66 0a 0a 73 74 72 75 63 74 20 73 75 62 73 79 | g_main.main.#endif..struct.subsy |
1700 | 73 74 65 6d 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6e 61 6d 65 3b 0a 20 20 | stem.{.....const.char.*.name;... |
1720 | 20 20 69 6e 74 20 28 2a 20 68 61 6e 64 6c 65 72 29 20 28 76 6f 69 64 29 3b 0a 7d 3b 0a 0a 65 78 | ..int.(*.handler).(void);.};..ex |
1740 | 74 65 72 6e 20 69 6e 74 20 6c 6f 67 5f 6d 65 73 73 61 67 65 20 28 69 6e 74 20 6c 65 76 65 6c 2c | tern.int.log_message.(int.level, |
1760 | 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 66 6d 74 2c 20 2e 2e 2e 29 20 20 5f 5f 61 74 74 72 69 62 | .const.char.*fmt,....)..__attrib |
1780 | 75 74 65 5f 5f 20 28 28 5f 5f 66 6f 72 6d 61 74 5f 5f 28 5f 5f 70 72 69 6e 74 66 5f 5f 2c 20 32 | ute__.((__format__(__printf__,.2 |
17a0 | 2c 20 33 29 29 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 | ,.3)));.extern.int.split_3values |
17c0 | 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 | .(const.char.*string,.int.base,. |
17e0 | 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 | unsigned.int.*.value1,..unsigned |
1800 | 20 69 6e 74 20 2a 20 76 61 6c 75 65 32 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 | .int.*.value2,.unsigned.int.*.va |
1820 | 6c 75 65 33 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 | lue3);.extern.int.split_2values. |
1840 | 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 | (const.char.*string,.int.base,.u |
1860 | 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 | nsigned.int.*.value1,..unsigned. |
1880 | 69 6e 74 20 2a 20 76 61 6c 75 65 32 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 63 61 6c 6c 5f 73 | int.*.value2);.extern.int.call_s |
18a0 | 75 62 73 79 73 74 65 6d 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 73 74 | ubsystem.(const.char.*string,.st |
18c0 | 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 2a 73 75 62 73 79 73 74 65 6d 29 3b 0a 65 78 74 65 | ruct.subsystem.*subsystem);.exte |
18e0 | 72 6e 20 69 6e 74 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a | rn.int.load_module.(const.char.* |
1900 | 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 75 73 62 5f 68 61 6e | module_name);.extern.int.usb_han |
1920 | 64 6c 65 72 20 28 76 6f 69 64 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 70 63 69 5f 68 61 6e 64 | dler.(void);.extern.int.pci_hand |
1940 | 6c 65 72 20 28 76 6f 69 64 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f | ler.(void);.extern.int.ieee1394_ |
1960 | 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 3b 0a 0a 23 64 65 66 69 6e 65 20 41 44 44 5f 53 54 52 | handler.(void);..#define.ADD_STR |
1980 | 49 4e 47 09 22 61 64 64 22 0a 23 64 65 66 69 6e 65 20 52 45 4d 4f 56 45 5f 53 54 52 49 4e 47 09 | ING."add".#define.REMOVE_STRING. |
19a0 | 22 72 65 6d 6f 76 65 22 0a 0a 0a 2f 2f 23 64 65 66 69 6e 65 20 44 45 42 55 47 20 31 0a 23 69 66 | "remove"...//#define.DEBUG.1.#if |
19c0 | 64 65 66 20 44 45 42 55 47 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 6c 6f 67 2e 68 3e 0a 09 23 | def.DEBUG.#include.<syslog.h>..# |
19e0 | 64 65 66 69 6e 65 20 64 62 67 28 66 6f 72 6d 61 74 2c 20 61 72 67 2e 2e 2e 29 20 64 6f 20 7b 20 | define.dbg(format,.arg...).do.{. |
1a00 | 6c 6f 67 5f 6d 65 73 73 61 67 65 20 28 4c 4f 47 5f 44 45 42 55 47 2c 20 5f 5f 46 55 4e 43 54 49 | log_message.(LOG_DEBUG,.__FUNCTI |
1a20 | 4f 4e 5f 5f 20 22 3a 20 22 20 66 6f 72 6d 61 74 2c 20 23 23 20 61 72 67 29 3b 20 7d 20 77 68 69 | ON__.":.".format,.##.arg);.}.whi |
1a40 | 6c 65 20 28 30 29 0a 23 65 6c 73 65 0a 09 23 64 65 66 69 6e 65 20 64 62 67 28 66 6f 72 6d 61 74 | le.(0).#else..#define.dbg(format |
1a60 | 2c 20 61 72 67 2e 2e 2e 29 20 64 6f 20 7b 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 23 65 6e 64 69 | ,.arg...).do.{.}.while.(0).#endi |
1a80 | 66 0a 0a 0a 69 6e 74 20 63 70 75 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 | f...int.cpu_handler.(void).{.... |
1aa0 | 20 2f 2a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b | ./*.Not.handled.*/.....return.0; |
1ac0 | 0a 7d 0a 0a 69 6e 74 20 6e 65 74 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 | .}..int.net_handler.(void).{.... |
1ae0 | 20 2f 2a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b | ./*.Not.handled.*/.....return.0; |
1b00 | 0a 7d 0a 0a 69 6e 74 20 64 6f 63 6b 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 | .}..int.dock_handler.(void).{... |
1b20 | 20 20 2f 2a 20 4e 6f 74 20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 | ../*.Not.handled.*/.....return.0 |
1b40 | 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 6d 61 69 | ;.}..static.struct.subsystem.mai |
1b60 | 6e 5f 73 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 22 70 63 69 22 2c 09 20 | n_subsystem[].=.{.....{."pci",.. |
1b80 | 20 20 20 70 63 69 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 75 73 62 22 2c 09 20 | ...pci_handler.},.....{."usb",.. |
1ba0 | 20 20 20 75 73 62 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 69 65 65 65 31 33 39 | ...usb_handler.},.....{."ieee139 |
1bc0 | 34 22 2c 20 20 20 69 65 65 65 31 33 39 34 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 | 4",...ieee1394_handler.},.....{. |
1be0 | 22 63 70 75 22 2c 09 20 20 20 20 63 70 75 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 | "cpu",.....cpu_handler.},.....{. |
1c00 | 22 6e 65 74 22 2c 09 20 20 20 20 6e 65 74 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 | "net",.....net_handler.},.....{. |
1c20 | 22 64 6f 63 6b 22 2c 09 20 20 20 20 64 6f 63 6b 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 | "dock",.....dock_handler.},..... |
1c40 | 7b 20 4e 55 4c 4c 2c 09 20 20 20 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 69 6e 74 20 68 6f 74 70 6c | {.NULL,.....NULL.}.};..int.hotpl |
1c60 | 75 67 5f 6d 61 69 6e 28 69 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 61 72 67 76 5b 5d 29 0a | ug_main(int.argc,.char.*argv[]). |
1c80 | 7b 0a 20 20 20 20 69 66 20 28 61 72 67 63 20 21 3d 20 32 29 20 7b 0a 09 64 62 67 20 28 22 75 6e | {.....if.(argc.!=.2).{..dbg.("un |
1ca0 | 6b 6e 6f 77 6e 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 22 29 3b 0a 09 72 65 | known.number.of.arguments");..re |
1cc0 | 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2a 20 70 61 73 73 20 63 6f 6e 74 72 6f | turn.1;.....}...../*.pass.contro |
1ce0 | 6c 20 74 6f 20 74 68 65 20 73 75 62 73 79 73 74 65 6d 20 73 70 65 63 69 66 69 65 64 20 62 79 20 | l.to.the.subsystem.specified.by. |
1d00 | 61 72 67 76 5b 31 5d 2e 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 | argv[1]..*/.....return.call_subs |
1d20 | 79 73 74 65 6d 20 28 61 72 67 76 5b 31 5d 2c 20 6d 61 69 6e 5f 73 75 62 73 79 73 74 65 6d 29 3b | ystem.(argv[1],.main_subsystem); |
1d40 | 0a 7d 0a 0a 0a 0a 2f 2a 20 54 68 65 20 69 65 65 65 31 33 39 34 20 66 75 6e 63 74 69 6f 6e 73 20 | .}..../*.The.ieee1394.functions. |
1d60 | 2a 2f 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 | */.#define.IEEE1394_MATCH_VENDOR |
1d80 | 5f 49 44 09 30 78 30 30 30 31 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 | _ID.0x0001.#define.IEEE1394_MATC |
1da0 | 48 5f 4d 4f 44 45 4c 5f 49 44 09 09 30 78 30 30 30 32 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 | H_MODEL_ID..0x0002.#define.IEEE1 |
1dc0 | 33 39 34 5f 4d 41 54 43 48 5f 53 50 45 43 49 46 49 45 52 5f 49 44 09 30 78 30 30 30 34 0a 23 64 | 394_MATCH_SPECIFIER_ID.0x0004.#d |
1de0 | 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 52 53 49 4f 4e 09 09 30 78 | efine.IEEE1394_MATCH_VERSION..0x |
1e00 | 30 30 30 38 0a 0a 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 | 0008..struct.ieee1394_module_map |
1e20 | 20 7b 0a 09 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6d 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 09 75 | .{..const.char.*.module_name;..u |
1e40 | 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 61 74 63 68 5f 66 6c 61 67 73 3b 0a 09 75 6e 73 69 67 6e | nsigned.int.match_flags;..unsign |
1e60 | 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | ed.int.vendor_id;..unsigned.int. |
1e80 | 6d 6f 64 65 6c 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 65 63 69 66 69 65 | model_id;..unsigned.int.specifie |
1ea0 | 72 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f 6e 3b 0a 7d 20 5f | r_id;..unsigned.int.version;.}._ |
1ec0 | 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 70 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 | _attribute__.((packed));.static. |
1ee0 | 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 69 65 65 65 | struct.ieee1394_module_map.*ieee |
1f00 | 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 69 65 65 65 31 33 39 34 5f | 1394_module_map;..void.ieee1394_ |
1f20 | 72 65 61 64 5f 70 63 69 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 69 65 | read_pcimap(void).{.....FILE.*ie |
1f40 | 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 | ee1394map_file;.....struct.utsna |
1f60 | 6d 65 20 75 74 73 6e 61 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f | me.utsname;.....struct.ieee1394_ |
1f80 | 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 65 6e 74 72 79 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 | module_map.*entry.=.ieee1394_mod |
1fa0 | 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 | ule_map;.....char.*prevmodule.=. |
1fc0 | 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 69 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e | "";.....char.filename[MAXPATHLEN |
1fe0 | 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 6e 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 | ];.....char.line[LINELENGTH];... |
2000 | 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 | ..char.module[LINELENGTH];.....i |
2020 | 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 69 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d | nt.count,.mapsize;......if.(unam |
2040 | 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 30 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d | e(&utsname).<.0).{..perror("unam |
2060 | 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 | e");..exit(1);.....}.....sprintf |
2080 | 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c 69 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 | (filename,."/lib/modules/%s/modu |
20a0 | 6c 65 73 2e 69 65 65 65 31 33 39 34 6d 61 70 22 2c 20 75 74 73 6e 61 6d 65 2e 72 65 6c 65 61 73 | les.ieee1394map",.utsname.releas |
20c0 | 65 29 3b 0a 20 20 20 20 69 66 20 28 28 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 20 3d 20 | e);.....if.((ieee1394map_file.=. |
20e0 | 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b | fopen(filename,."r")).==.NULL).{ |
2100 | 0a 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 43 6f 75 6c 64 20 6e | ..bb_perror_msg_and_die("Could.n |
2120 | 6f 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 | ot.open.%s",.filename);.....}... |
2140 | 20 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c | ...count.=.mapsize.=.0;.....whil |
2160 | 65 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c 20 69 65 65 65 31 33 | e(fgets(line,.LINELENGTH,.ieee13 |
2180 | 39 34 6d 61 70 5f 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c 69 6e | 94map_file).!=.NULL).{...if.(lin |
21a0 | 65 5b 30 5d 20 3d 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 63 6f | e[0].==.'#')......continue;...co |
21c0 | 75 6e 74 2b 2b 3b 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 7b 0a | unt++;..if.(count.>=.mapsize).{. |
21e0 | 09 20 20 20 20 6d 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 69 65 65 65 31 33 39 34 | .....mapsize+=100;......ieee1394 |
2200 | 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 69 65 65 65 31 33 39 34 5f | _module_map.=.xrealloc(ieee1394_ |
2220 | 6d 6f 64 75 6c 65 5f 6d 61 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 69 65 65 65 31 | module_map,.(sizeof(struct.ieee1 |
2240 | 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 | 394_module_map).*.mapsize));.... |
2260 | 20 20 65 6e 74 72 79 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 | ..entry.=.ieee1394_module_map.+. |
2280 | 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d 65 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c | count.-.1;......memset(entry,.0, |
22a0 | 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f | .(sizeof(struct.ieee1394_module_ |
22c0 | 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 0a 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 | map).*.100));..}...if.(sscanf(li |
22e0 | 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 | ne,."%s.0x%x.0x%x.0x%x.0x%x.0x%x |
2300 | 22 2c 0a 09 09 20 20 20 20 6d 6f 64 75 6c 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d | ",.......module,.......&entry->m |
2320 | 61 74 63 68 5f 66 6c 61 67 73 2c 20 26 65 6e 74 72 79 2d 3e 76 65 6e 64 6f 72 5f 69 64 2c 0a 09 | atch_flags,.&entry->vendor_id,.. |
2340 | 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d 6f 64 65 6c 5f 69 64 2c 20 26 65 6e 74 72 79 2d 3e 73 | .....&entry->model_id,.&entry->s |
2360 | 70 65 63 69 66 69 65 72 5f 69 64 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 76 65 72 73 69 | pecifier_id,.......&entry->versi |
2380 | 6f 6e 29 20 21 3d 20 36 29 20 7b 0a 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d | on).!=.6).{......bb_error_msg("m |
23a0 | 6f 64 75 6c 65 73 2e 69 65 65 65 31 33 39 34 6d 61 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 | odules.ieee1394map.unparsable.li |
23c0 | 6e 65 3a 20 25 73 2e 5c 6e 22 2c 20 6c 69 6e 65 29 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 | ne:.%s.\n",.line);......free(ent |
23e0 | 72 79 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 | ry);......continue;..}.../*.Opti |
2400 | 6d 69 7a 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e | mize.memory.allocation.a.bit,.in |
2420 | 20 63 61 73 65 20 73 6f 6d 65 64 61 79 20 77 65 0a 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 | .case.someday.we.....have.Linux. |
2440 | 73 79 73 74 65 6d 73 20 77 69 74 68 20 7e 31 30 30 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 | systems.with.~100,000.modules... |
2460 | 49 74 20 61 6c 73 6f 0a 09 20 20 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f | It.also.....allows.us.to.just.co |
2480 | 6d 70 61 72 65 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 | mpare.pointers.to.avoid.trying.. |
24a0 | 20 20 20 74 6f 20 6c 6f 61 64 20 61 20 6d 6f 64 75 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 | ...to.load.a.module.twice..*/..i |
24c0 | 66 20 28 73 74 72 63 6d 70 28 6d 6f 64 75 6c 65 2c 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d | f.(strcmp(module,.prevmodule).!= |
24e0 | 20 30 29 20 7b 0a 09 20 20 20 20 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 | .0).{......prevmodule.=.xmalloc( |
2500 | 73 74 72 6c 65 6e 28 6d 6f 64 75 6c 65 29 2b 31 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 | strlen(module)+1);......strcpy(p |
2520 | 72 65 76 6d 6f 64 75 6c 65 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d | revmodule,.module);..}..entry->m |
2540 | 6f 64 75 6c 65 5f 6e 61 6d 65 20 3d 20 70 72 65 76 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 | odule_name.=.prevmodule;.....}.. |
2560 | 20 20 20 66 63 6c 6f 73 65 28 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 29 3b 0a 7d 0a 73 | ...fclose(ieee1394map_file);.}.s |
2580 | 74 61 74 69 63 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f 6d 61 74 63 68 28 75 6e 73 69 67 6e 65 | tatic.int.ieee1394_match(unsigne |
25a0 | 64 20 69 6e 74 20 76 65 6e 64 6f 72 5f 69 64 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 | d.int.vendor_id,.unsigned.int.sp |
25c0 | 65 63 69 66 69 65 72 5f 69 64 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f 6e | ecifier_id,.unsigned.int.version |
25e0 | 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a | ).{.....int.i;.....int.retval;.. |
2600 | 20 20 20 20 64 62 67 20 28 22 76 65 6e 64 6f 72 5f 69 64 20 3d 20 25 78 2c 20 73 70 65 63 69 66 | ....dbg.("vendor_id.=.%x,.specif |
2620 | 69 65 72 5f 69 64 20 3d 20 25 78 2c 20 76 65 72 73 69 6f 6e 20 3d 20 25 78 22 2c 0a 09 20 20 20 | ier_id.=.%x,.version.=.%x",..... |
2640 | 20 76 65 6e 64 6f 72 5f 69 64 2c 20 73 70 65 63 69 66 69 65 72 5f 69 64 2c 20 76 65 72 73 69 6f | .vendor_id,.specifier_id,.versio |
2660 | 6e 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 65 65 65 31 33 39 34 5f 6d 6f | n);......for.(i.=.0;.ieee1394_mo |
2680 | 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b | dule_map[i].module_name.!=.NULL; |
26a0 | 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 | .++i).{..dbg.("looking.at.%s,.ma |
26c0 | 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 0a 09 09 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 | tch_flags.=.%x",...ieee1394_modu |
26e0 | 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 0a 09 09 69 65 65 65 31 33 39 | le_map[i].module_name,...ieee139 |
2700 | 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 | 4_module_map[i].match_flags);..i |
2720 | 66 20 28 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 | f.((ieee1394_module_map[i].match |
2740 | 5f 66 6c 61 67 73 20 26 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 5f 49 | _flags.&.IEEE1394_MATCH_VENDOR_I |
2760 | 44 29 20 26 26 0a 09 09 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e | D).&&...(ieee1394_module_map[i]. |
2780 | 76 65 6e 64 6f 72 5f 69 64 20 21 3d 20 76 65 6e 64 6f 72 5f 69 64 29 29 20 7b 0a 09 20 20 20 20 | vendor_id.!=.vendor_id)).{...... |
27a0 | 64 62 67 20 28 22 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 | dbg.("vendor.check.failed.%x.!=. |
27c0 | 25 78 22 2c 0a 09 09 20 20 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 | %x",.......ieee1394_module_map[i |
27e0 | 5d 2e 76 65 6e 64 6f 72 5f 69 64 2c 0a 09 09 20 20 20 20 76 65 6e 64 6f 72 5f 69 64 29 3b 0a 09 | ].vendor_id,.......vendor_id);.. |
2800 | 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 69 65 65 65 31 33 39 34 5f | ....continue;..}..if.((ieee1394_ |
2820 | 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 49 45 45 45 | module_map[i].match_flags.&.IEEE |
2840 | 31 33 39 34 5f 4d 41 54 43 48 5f 53 50 45 43 49 46 49 45 52 5f 49 44 29 20 26 26 0a 09 09 28 69 | 1394_MATCH_SPECIFIER_ID).&&...(i |
2860 | 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 70 65 63 69 66 69 65 72 5f | eee1394_module_map[i].specifier_ |
2880 | 69 64 20 21 3d 20 73 70 65 63 69 66 69 65 72 5f 69 64 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 | id.!=.specifier_id)).{......dbg. |
28a0 | 28 22 73 70 65 63 69 66 69 65 72 5f 69 64 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 | ("specifier_id.check.failed.%x.! |
28c0 | 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 | =.%x",.......ieee1394_module_map |
28e0 | 5b 69 5d 2e 73 70 65 63 69 66 69 65 72 5f 69 64 2c 0a 09 09 20 20 20 20 73 70 65 63 69 66 69 65 | [i].specifier_id,.......specifie |
2900 | 72 5f 69 64 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 69 | r_id);......continue;..}..if.((i |
2920 | 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 | eee1394_module_map[i].match_flag |
2940 | 73 20 26 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 52 53 49 4f 4e 29 20 26 26 0a 09 | s.&.IEEE1394_MATCH_VERSION).&&.. |
2960 | 09 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 72 73 69 6f 6e | .(ieee1394_module_map[i].version |
2980 | 20 21 3d 20 76 65 72 73 69 6f 6e 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 76 65 72 73 69 | .!=.version)).{......dbg.("versi |
29a0 | 6f 6e 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 | on.check.failed.%x.!=.%x",...... |
29c0 | 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 72 73 69 6f 6e 2c | .ieee1394_module_map[i].version, |
29e0 | 0a 09 09 20 20 20 20 76 65 72 73 69 6f 6e 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a | .......version);......continue;. |
2a00 | 09 7d 0a 09 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 64 62 67 20 28 22 6c 6f 61 64 | .}../*.found.one!.*/..dbg.("load |
2a20 | 69 6e 67 20 25 73 22 2c 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e | ing.%s",.ieee1394_module_map[i]. |
2a40 | 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 | module_name);..retval.=.load_mod |
2a60 | 75 6c 65 20 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 | ule.(ieee1394_module_map[i].modu |
2a80 | 6c 65 5f 6e 61 6d 65 29 3b 0a 09 69 66 20 28 72 65 74 76 61 6c 29 0a 09 20 20 20 20 72 65 74 75 | le_name);..if.(retval)......retu |
2aa0 | 72 6e 20 72 65 74 76 61 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a | rn.retval;.....}......return.0;. |
2ac0 | 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f 61 64 64 20 28 76 6f 69 | }...static.int.ieee1394_add.(voi |
2ae0 | 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 76 65 6e 64 6f 72 5f 65 6e 76 3b 0a 20 20 20 20 63 | d).{.....char.*vendor_env;.....c |
2b00 | 68 61 72 20 2a 73 70 65 63 69 66 69 65 72 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 76 65 | har.*specifier_env;.....char.*ve |
2b20 | 72 73 69 6f 6e 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 75 6e | rsion_env;.....int.error;.....un |
2b40 | 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 5f 69 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e | signed.int.vendor_id;.....unsign |
2b60 | 65 64 20 69 6e 74 20 73 70 65 63 69 66 69 65 72 5f 69 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 | ed.int.specifier_id;.....unsigne |
2b80 | 64 20 69 6e 74 20 76 65 72 73 69 6f 6e 3b 0a 0a 20 20 20 20 69 65 65 65 31 33 39 34 5f 72 65 61 | d.int.version;......ieee1394_rea |
2ba0 | 64 5f 70 63 69 6d 61 70 28 29 3b 0a 0a 20 20 20 20 76 65 6e 64 6f 72 5f 65 6e 76 20 3d 20 67 65 | d_pcimap();......vendor_env.=.ge |
2bc0 | 74 65 6e 76 20 28 22 56 45 4e 44 4f 52 5f 49 44 22 29 3b 0a 20 20 20 20 73 70 65 63 69 66 69 65 | tenv.("VENDOR_ID");.....specifie |
2be0 | 72 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 53 50 45 43 49 46 49 45 52 5f 49 44 22 29 3b | r_env.=.getenv.("SPECIFIER_ID"); |
2c00 | 0a 20 20 20 20 76 65 72 73 69 6f 6e 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 56 45 52 53 | .....version_env.=.getenv.("VERS |
2c20 | 49 4f 4e 22 29 3b 0a 20 20 20 20 69 66 20 28 28 76 65 6e 64 6f 72 5f 65 6e 76 20 3d 3d 20 4e 55 | ION");.....if.((vendor_env.==.NU |
2c40 | 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 73 70 65 63 69 66 69 65 72 5f 65 6e 76 20 3d 3d 20 4e 55 | LL).||......(specifier_env.==.NU |
2c60 | 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 76 65 72 73 69 6f 6e 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c | LL).||......(version_env.==.NULL |
2c80 | 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 | )).{..dbg.("missing.an.environme |
2ca0 | 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 | nt.variable,.aborting.");..retur |
2cc0 | 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 76 65 6e 64 6f 72 5f 69 64 20 3d 20 73 74 72 74 6f | n.1;.....}.....vendor_id.=.strto |
2ce0 | 75 6c 20 28 76 65 6e 64 6f 72 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 20 20 20 20 73 | ul.(vendor_env,.NULL,.16);.....s |
2d00 | 70 65 63 69 66 69 65 72 5f 69 64 20 3d 20 73 74 72 74 6f 75 6c 20 28 73 70 65 63 69 66 69 65 72 | pecifier_id.=.strtoul.(specifier |
2d20 | 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 3d 20 73 | _env,.NULL,.16);.....version.=.s |
2d40 | 74 72 74 6f 75 6c 20 28 76 65 72 73 69 6f 6e 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a | trtoul.(version_env,.NULL,.16);. |
2d60 | 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 61 74 63 68 20 28 76 65 6e | .....error.=.ieee1394_match.(ven |
2d80 | 64 6f 72 5f 69 64 2c 20 73 70 65 63 69 66 69 65 72 5f 69 64 2c 20 76 65 72 73 69 6f 6e 29 3b 0a | dor_id,.specifier_id,.version);. |
2da0 | 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e | .....return.error;.}...static.in |
2dc0 | 74 20 69 65 65 65 31 33 39 34 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f | t.ieee1394_remove.(void).{...../ |
2de0 | 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 | *.right.now.we.don't.do.anything |
2e00 | 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 | .here.:).*/.....return.0;.}...st |
2e20 | 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 69 65 65 65 31 33 39 34 5f 73 | atic.struct.subsystem.ieee1394_s |
2e40 | 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 4e 47 2c | ubsystem[].=.{.....{.ADD_STRING, |
2e60 | 20 69 65 65 65 31 33 39 34 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 | .ieee1394_add.},.....{.REMOVE_ST |
2e80 | 52 49 4e 47 2c 20 69 65 65 65 31 33 39 34 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e | RING,.ieee1394_remove.},.....{.N |
2ea0 | 55 4c 4c 2c 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 0a 69 6e 74 20 69 65 65 65 31 33 39 34 5f 68 61 | ULL,.NULL.}.};...int.ieee1394_ha |
2ec0 | 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e | ndler.(void).{.....char.*.action |
2ee0 | 3b 0a 20 20 20 20 61 63 74 69 6f 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 | ;.....action.=.getenv.("ACTION") |
2f00 | 3b 0a 20 20 20 20 64 62 67 20 28 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e | ;.....dbg.("action.=.%s",.action |
2f20 | 29 3b 0a 20 20 20 20 69 66 20 28 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 | );.....if.(action.==.NULL).{..db |
2f40 | 67 20 28 22 6d 69 73 73 69 6e 67 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 | g.("missing.ACTION.environment.v |
2f60 | 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b | ariable,.aborting.");..return.1; |
2f80 | 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d | .....}.....return.call_subsystem |
2fa0 | 20 28 61 63 74 69 6f 6e 2c 20 69 65 65 65 31 33 39 34 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d | .(action,.ieee1394_subsystem);.} |
2fc0 | 0a 0a 2f 2a 20 54 68 65 20 70 63 69 20 66 75 6e 63 74 69 6f 6e 73 20 2a 2f 0a 23 64 65 66 69 6e | ../*.The.pci.functions.*/.#defin |
2fe0 | 65 20 50 43 49 5f 41 4e 59 09 09 09 09 30 78 66 66 66 66 66 66 66 66 0a 0a 73 74 72 75 63 74 20 | e.PCI_ANY....0xffffffff..struct. |
3000 | 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 | pci_module_map.{.....const.char. |
3020 | 2a 20 6d 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 | *.module_name;.....unsigned.int. |
3040 | 76 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 3b | vendor;.....unsigned.int.device; |
3060 | 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e 64 6f 72 3b 0a 20 20 20 | .....unsigned.int.subvendor;.... |
3080 | 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 | .unsigned.int.subdevice;.....uns |
30a0 | 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e | igned.int.class;.....unsigned.in |
30c0 | 74 20 63 6c 61 73 73 5f 6d 61 73 6b 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 | t.class_mask;.}.__attribute__.(( |
30e0 | 70 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 | packed));.static.struct.pci_modu |
3100 | 6c 65 5f 6d 61 70 20 2a 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 70 63 | le_map.*pci_module_map;..void.pc |
3120 | 69 5f 72 65 61 64 5f 70 63 69 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a | i_read_pcimap(void).{.....FILE.* |
3140 | 70 63 69 6d 61 70 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 | pcimap_file;.....struct.utsname. |
3160 | 75 74 73 6e 61 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d | utsname;.....struct.pci_module_m |
3180 | 61 70 20 2a 65 6e 74 72 79 20 3d 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 | ap.*entry.=.pci_module_map;..... |
31a0 | 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 72 69 76 65 72 5f 64 61 74 61 3b 0a 20 20 20 20 63 68 | unsigned.int.driver_data;.....ch |
31c0 | 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 69 | ar.*prevmodule.=."";.....char.fi |
31e0 | 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 6e | lename[MAXPATHLEN];.....char.lin |
3200 | 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b 4c | e[LINELENGTH];.....char.module[L |
3220 | 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 69 | INELENGTH];.....int.count,.mapsi |
3240 | 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 30 | ze;......if.(uname(&utsname).<.0 |
3260 | 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a | ).{..perror("uname");..exit(1);. |
3280 | 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c 69 | ....}.....sprintf(filename,."/li |
32a0 | 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 70 63 69 6d 61 70 22 2c 20 75 74 | b/modules/%s/modules.pcimap",.ut |
32c0 | 73 6e 61 6d 65 2e 72 65 6c 65 61 73 65 29 3b 0a 20 20 20 20 69 66 20 28 28 70 63 69 6d 61 70 5f | sname.release);.....if.((pcimap_ |
32e0 | 66 69 6c 65 20 3d 20 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 | file.=.fopen(filename,."r")).==. |
3300 | 4e 55 4c 4c 29 20 7b 0a 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 | NULL).{..bb_perror_msg_and_die(" |
3320 | 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 | Could.not.open.%s",.filename);.. |
3340 | 20 20 20 7d 0a 0a 20 20 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 | ...}......count.=.mapsize.=.0;.. |
3360 | 20 20 20 77 68 69 6c 65 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c | ...while(fgets(line,.LINELENGTH, |
3380 | 20 70 63 69 6d 61 70 5f 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c | .pcimap_file).!=.NULL).{...if.(l |
33a0 | 69 6e 65 5b 30 5d 20 3d 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 | ine[0].==.'#')......continue;... |
33c0 | 63 6f 75 6e 74 2b 2b 3b 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 | count++;..if.(count.>=.mapsize). |
33e0 | 7b 0a 09 20 20 20 20 6d 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 70 63 69 5f 6d 6f | {......mapsize+=100;......pci_mo |
3400 | 64 75 6c 65 5f 6d 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d | dule_map.=.xrealloc(pci_module_m |
3420 | 61 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 | ap,.(sizeof(struct.pci_module_ma |
3440 | 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d 20 70 63 69 | p).*.mapsize));......entry.=.pci |
3460 | 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d 65 | _module_map.+.count.-.1;......me |
3480 | 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 70 63 | mset(entry,.0,.(sizeof(struct.pc |
34a0 | 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 | i_module_map).*.100));..}..entry |
34c0 | 20 3d 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 0a | .=.pci_module_map.+.count.-.1;.. |
34e0 | 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 20 | .if.(sscanf(line,."%s.0x%x.0x%x. |
3500 | 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 22 2c 0a 09 09 20 20 20 | 0x%x.0x%x.0x%x.0x%x.0x%x",...... |
3520 | 20 6d 6f 64 75 6c 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 76 65 6e 64 6f 72 2c 20 26 | .module,.......&entry->vendor,.& |
3540 | 65 6e 74 72 79 2d 3e 64 65 76 69 63 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 73 75 62 | entry->device,.......&entry->sub |
3560 | 76 65 6e 64 6f 72 2c 20 26 65 6e 74 72 79 2d 3e 73 75 62 64 65 76 69 63 65 2c 0a 09 09 20 20 20 | vendor,.&entry->subdevice,...... |
3580 | 20 26 65 6e 74 72 79 2d 3e 63 6c 61 73 73 2c 20 26 65 6e 74 72 79 2d 3e 63 6c 61 73 73 5f 6d 61 | .&entry->class,.&entry->class_ma |
35a0 | 73 6b 2c 0a 09 09 20 20 20 20 26 64 72 69 76 65 72 5f 64 61 74 61 29 20 21 3d 20 38 29 20 7b 0a | sk,.......&driver_data).!=.8).{. |
35c0 | 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 75 6c 65 73 2e 70 63 69 6d 61 | .....bb_error_msg("modules.pcima |
35e0 | 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e 5c 6e 22 2c 20 6c 69 6e 65 29 | p.unparsable.line:.%s.\n",.line) |
3600 | 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 | ;......free(entry);......continu |
3620 | 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 | e;..}.../*.Optimize.memory.alloc |
3640 | 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e 20 63 61 73 65 20 73 6f 6d 65 64 61 79 20 77 65 0a | ation.a.bit,.in.case.someday.we. |
3660 | 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 20 77 69 74 68 20 7e 31 30 30 | ....have.Linux.systems.with.~100 |
3680 | 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f 0a 09 20 20 20 61 6c 6c 6f 77 | ,000.modules...It.also.....allow |
36a0 | 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 70 6f 69 6e 74 65 72 73 20 74 6f | s.us.to.just.compare.pointers.to |
36c0 | 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c 6f 61 64 20 61 20 6d 6f 64 75 | .avoid.trying.....to.load.a.modu |
36e0 | 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 6d 70 28 6d 6f 64 75 6c 65 2c | le.twice..*/..if.(strcmp(module, |
3700 | 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 20 20 20 20 70 72 65 76 6d 6f | .prevmodule).!=.0).{......prevmo |
3720 | 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 6d 6f 64 75 6c 65 29 2b 31 29 | dule.=.xmalloc(strlen(module)+1) |
3740 | 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 72 65 76 6d 6f 64 75 6c 65 2c 20 6d 6f 64 75 6c 65 | ;......strcpy(prevmodule,.module |
3760 | 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 3d 20 70 72 65 76 | );..}..entry->module_name.=.prev |
3780 | 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f 73 65 28 70 63 69 6d 61 70 5f | module;.....}.....fclose(pcimap_ |
37a0 | 66 69 6c 65 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 6d 61 74 63 68 5f 76 | file);.}..static.int.pci_match_v |
37c0 | 65 6e 64 6f 72 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 2c 20 75 6e 73 69 | endor.(unsigned.int.vendor,.unsi |
37e0 | 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 2c 0a 09 09 09 20 75 6e 73 69 67 6e 65 64 20 69 6e | gned.int.device,.....unsigned.in |
3800 | 74 20 73 75 62 76 65 6e 64 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 | t.subvendor,.unsigned.int.subdev |
3820 | 69 63 65 2c 0a 09 09 09 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 63 69 5f 63 6c 61 73 73 29 | ice,.....unsigned.int.pci_class) |
3840 | 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 20 20 | .{.....int.i;.....int.retval;... |
3860 | 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 5f 74 65 6d 70 3b 0a 0a 20 20 20 20 | ..unsigned.int.class_temp;...... |
3880 | 64 62 67 20 28 22 76 65 6e 64 6f 72 20 3d 20 25 78 2c 20 64 65 76 69 63 65 20 3d 20 25 78 2c 20 | dbg.("vendor.=.%x,.device.=.%x,. |
38a0 | 73 75 62 76 65 6e 64 6f 72 20 3d 20 25 78 2c 20 73 75 62 64 65 76 69 63 65 20 3d 20 25 78 22 2c | subvendor.=.%x,.subdevice.=.%x", |
38c0 | 0a 09 20 20 20 20 76 65 6e 64 6f 72 2c 20 64 65 76 69 63 65 2c 20 73 75 62 76 65 6e 64 6f 72 2c | ......vendor,.device,.subvendor, |
38e0 | 20 73 75 62 64 65 76 69 63 65 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 70 63 | .subdevice);......for.(i.=.0;.pc |
3900 | 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e | i_module_map[i].module_name.!=.N |
3920 | 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 | ULL;.++i).{..dbg.("looking.at.%s |
3940 | 22 2c 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 | ",.pci_module_map[i].module_name |
3960 | 29 3b 0a 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e 64 6f | );..if.((pci_module_map[i].vendo |
3980 | 72 20 21 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d | r.!=.PCI_ANY).&&...(pci_module_m |
39a0 | 61 70 5b 69 5d 2e 76 65 6e 64 6f 72 20 21 3d 20 76 65 6e 64 6f 72 29 29 20 7b 0a 09 20 20 20 20 | ap[i].vendor.!=.vendor)).{...... |
39c0 | 64 62 67 20 28 22 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 | dbg.("vendor.check.failed.%x.!=. |
39e0 | 25 78 22 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e | %x",.......pci_module_map[i].ven |
3a00 | 64 6f 72 2c 20 76 65 6e 64 6f 72 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a | dor,.vendor);......continue;..}. |
3a20 | 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 20 21 | .if.((pci_module_map[i].device.! |
3a40 | 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b | =.PCI_ANY).&&...(pci_module_map[ |
3a60 | 69 5d 2e 64 65 76 69 63 65 20 21 3d 20 64 65 76 69 63 65 29 29 20 7b 0a 09 20 20 20 20 64 62 67 | i].device.!=.device)).{......dbg |
3a80 | 20 28 22 64 65 76 69 63 65 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 | .("device.check.failed.%x.!=.%x" |
3aa0 | 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 | ,.......pci_module_map[i].device |
3ac0 | 2c 20 64 65 76 69 63 65 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 | ,.device);......continue;..}..if |
3ae0 | 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 76 65 6e 64 6f 72 20 21 | .((pci_module_map[i].subvendor.! |
3b00 | 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b | =.PCI_ANY).&&...(pci_module_map[ |
3b20 | 69 5d 2e 73 75 62 76 65 6e 64 6f 72 20 21 3d 20 73 75 62 76 65 6e 64 6f 72 29 29 20 7b 0a 09 20 | i].subvendor.!=.subvendor)).{... |
3b40 | 20 20 20 64 62 67 20 28 22 73 75 62 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 | ...dbg.("subvendor.check.failed. |
3b60 | 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b | %x.!=.%x",.......pci_module_map[ |
3b80 | 69 5d 2e 73 75 62 76 65 6e 64 6f 72 2c 20 73 75 62 76 65 6e 64 6f 72 29 3b 0a 09 20 20 20 20 63 | i].subvendor,.subvendor);......c |
3ba0 | 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 | ontinue;..}..if.((pci_module_map |
3bc0 | 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 20 21 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 | [i].subdevice.!=.PCI_ANY).&&...( |
3be0 | 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 20 21 3d 20 73 | pci_module_map[i].subdevice.!=.s |
3c00 | 75 62 64 65 76 69 63 65 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 73 75 62 64 65 76 69 63 | ubdevice)).{......dbg.("subdevic |
3c20 | 65 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 | e.check.failed.%x.!=.%x",....... |
3c40 | 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 2c 20 73 75 62 | pci_module_map[i].subdevice,.sub |
3c60 | 64 65 76 69 63 65 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 | device);......continue;..}.../*. |
3c80 | 63 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 63 6c 61 73 73 20 6d 61 74 63 68 65 73 20 2a 2f 0a | check.that.the.class.matches.*/. |
3ca0 | 09 63 6c 61 73 73 5f 74 65 6d 70 20 3d 20 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d | .class_temp.=.(pci_module_map[i] |
3cc0 | 2e 63 6c 61 73 73 20 5e 20 70 63 69 5f 63 6c 61 73 73 29 20 26 20 70 63 69 5f 6d 6f 64 75 6c 65 | .class.^.pci_class).&.pci_module |
3ce0 | 5f 6d 61 70 5b 69 5d 2e 63 6c 61 73 73 5f 6d 61 73 6b 3b 0a 09 69 66 20 28 63 6c 61 73 73 5f 74 | _map[i].class_mask;..if.(class_t |
3d00 | 65 6d 70 20 21 3d 20 30 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 63 6c 61 73 73 20 6d 61 73 | emp.!=.0).{......dbg.("class.mas |
3d20 | 6b 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 | k.check.failed.%x.!=.%x",....... |
3d40 | 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 63 6c 61 73 73 2c 20 63 6c 61 73 73 5f 74 | pci_module_map[i].class,.class_t |
3d60 | 65 6d 70 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 66 6f 75 | emp);......continue;..}.../*.fou |
3d80 | 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 70 | nd.one!.*/..dbg.("loading.%s",.p |
3da0 | 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 | ci_module_map[i].module_name);.. |
3dc0 | 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 70 63 69 5f 6d 6f 64 75 6c 65 | retval.=.load_module.(pci_module |
3de0 | 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 69 66 20 28 72 65 74 76 61 | _map[i].module_name);..if.(retva |
3e00 | 6c 29 0a 09 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 | l)......return.retval;.....}.... |
3e20 | 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 61 64 | ..return.0;.}..static.int.pci_ad |
3e40 | 64 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 63 6c 61 73 73 5f 65 6e 76 3b 0a | d.(void).{.....char.*class_env;. |
3e60 | 20 20 20 20 63 68 61 72 20 2a 69 64 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 73 75 62 73 | ....char.*id_env;.....char.*subs |
3e80 | 79 73 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 | ys_env;.....int.error;.....unsig |
3ea0 | 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 | ned.int.vendor;.....unsigned.int |
3ec0 | 20 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e | .device;.....unsigned.int.subven |
3ee0 | 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 3b | dor;.....unsigned.int.subdevice; |
3f00 | 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 3b 0a 0a 20 20 20 20 70 63 | .....unsigned.int.class;......pc |
3f20 | 69 5f 72 65 61 64 5f 70 63 69 6d 61 70 28 29 3b 0a 0a 20 20 20 20 69 64 5f 65 6e 76 20 3d 20 67 | i_read_pcimap();......id_env.=.g |
3f40 | 65 74 65 6e 76 28 22 50 43 49 5f 49 44 22 29 3b 0a 20 20 20 20 73 75 62 73 79 73 5f 65 6e 76 20 | etenv("PCI_ID");.....subsys_env. |
3f60 | 3d 20 67 65 74 65 6e 76 28 22 50 43 49 5f 53 55 42 53 59 53 5f 49 44 22 29 3b 0a 20 20 20 20 63 | =.getenv("PCI_SUBSYS_ID");.....c |
3f80 | 6c 61 73 73 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 28 22 50 43 49 5f 43 4c 41 53 53 22 29 3b 0a | lass_env.=.getenv("PCI_CLASS");. |
3fa0 | 20 20 20 20 69 66 20 28 28 69 64 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 | ....if.((id_env.==.NULL).||..... |
3fc0 | 20 28 73 75 62 73 79 73 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 63 | .(subsys_env.==.NULL).||......(c |
3fe0 | 6c 61 73 73 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 | lass_env.==.NULL)).{..dbg.("miss |
4000 | 69 6e 67 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f | ing.an.environment.variable,.abo |
4020 | 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 | rting.");..return.1;.....}...... |
4040 | 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 69 64 5f 65 6e 76 2c 20 31 | error.=.split_2values.(id_env,.1 |
4060 | 36 2c 20 26 76 65 6e 64 6f 72 2c 20 26 64 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 | 6,.&vendor,.&device);.....if.(er |
4080 | 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 | ror)..return.error;.....error.=. |
40a0 | 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 73 75 62 73 79 73 5f 65 6e 76 2c 20 31 36 2c 20 26 | split_2values.(subsys_env,.16,.& |
40c0 | 73 75 62 76 65 6e 64 6f 72 2c 20 26 73 75 62 64 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 | subvendor,.&subdevice);.....if.( |
40e0 | 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 63 6c 61 73 73 20 | error)..return.error;.....class. |
4100 | 3d 20 73 74 72 74 6f 75 6c 20 28 63 6c 61 73 73 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b | =.strtoul.(class_env,.NULL,.16); |
4120 | 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 70 63 69 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 20 28 | ......error.=.pci_match_vendor.( |
4140 | 76 65 6e 64 6f 72 2c 20 64 65 76 69 63 65 2c 20 73 75 62 76 65 6e 64 6f 72 2c 20 73 75 62 64 65 | vendor,.device,.subvendor,.subde |
4160 | 76 69 63 65 2c 20 63 6c 61 73 73 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 3b | vice,.class);......return.error; |
4180 | 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 | .}...static.int.pci_remove.(void |
41a0 | 29 0a 7b 0a 20 20 20 20 2f 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f | ).{...../*.right.now.we.don't.do |
41c0 | 20 61 6e 79 74 68 69 6e 67 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 | .anything.here.:).*/.....return. |
41e0 | 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 70 63 | 0;.}..static.struct.subsystem.pc |
4200 | 69 5f 73 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 | i_subsystem[].=.{.....{.ADD_STRI |
4220 | 4e 47 2c 09 70 63 69 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 52 49 | NG,.pci_add.},.....{.REMOVE_STRI |
4240 | 4e 47 2c 09 70 63 69 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 09 09 4e | NG,.pci_remove.},.....{.NULL,..N |
4260 | 55 4c 4c 20 7d 0a 7d 3b 0a 0a 69 6e 74 20 70 63 69 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 | ULL.}.};..int.pci_handler.(void) |
4280 | 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 0a 20 20 20 20 61 63 74 69 6f | .{.....char.*.action;......actio |
42a0 | 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 20 64 62 67 20 28 | n.=.getenv.("ACTION");.....dbg.( |
42c0 | 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 20 28 | "action.=.%s",.action);.....if.( |
42e0 | 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 | action.==.NULL).{..dbg.("missing |
4300 | 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 | .ACTION.environment.variable,.ab |
4320 | 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 | orting.");..return.1;.....}..... |
4340 | 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 69 6f 6e 2c 20 70 | return.call_subsystem.(action,.p |
4360 | 63 69 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 2f 2a 20 54 68 65 20 75 73 62 20 66 75 | ci_subsystem);.}.../*.The.usb.fu |
4380 | 6e 63 74 69 6f 6e 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 | nctions.*/.#define.USB_DEVICE_ID |
43a0 | 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 09 09 30 78 30 30 30 31 0a 23 64 65 66 69 6e 65 20 55 53 | _MATCH_VENDOR..0x0001.#define.US |
43c0 | 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 09 09 30 78 30 30 30 | B_DEVICE_ID_MATCH_PRODUCT..0x000 |
43e0 | 32 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 | 2.#define.USB_DEVICE_ID_MATCH_DE |
4400 | 56 5f 4c 4f 09 09 30 78 30 30 30 34 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f | V_LO..0x0004.#define.USB_DEVICE_ |
4420 | 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 09 09 30 78 30 30 30 38 0a 23 64 65 66 69 6e 65 20 | ID_MATCH_DEV_HI..0x0008.#define. |
4440 | 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 4c 41 53 53 09 09 30 | USB_DEVICE_ID_MATCH_DEV_CLASS..0 |
4460 | 78 30 30 31 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 | x0010.#define.USB_DEVICE_ID_MATC |
4480 | 48 5f 44 45 56 5f 53 55 42 43 4c 41 53 53 09 30 78 30 30 32 30 0a 23 64 65 66 69 6e 65 20 55 53 | H_DEV_SUBCLASS.0x0020.#define.US |
44a0 | 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 09 30 | B_DEVICE_ID_MATCH_DEV_PROTOCOL.0 |
44c0 | 78 30 30 34 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 | x0040.#define.USB_DEVICE_ID_MATC |
44e0 | 48 5f 49 4e 54 5f 43 4c 41 53 53 09 09 30 78 30 30 38 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f | H_INT_CLASS..0x0080.#define.USB_ |
4500 | 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 53 55 42 43 4c 41 53 53 09 30 78 30 | DEVICE_ID_MATCH_INT_SUBCLASS.0x0 |
4520 | 31 30 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f | 100.#define.USB_DEVICE_ID_MATCH_ |
4540 | 49 4e 54 5f 50 52 4f 54 4f 43 4f 4c 09 30 78 30 32 30 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f | INT_PROTOCOL.0x0200.#define.USB_ |
4560 | 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 09 09 28 55 53 42 5f 44 45 56 | DEVICE_ID_MATCH_DEVICE..(USB_DEV |
4580 | 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 20 7c 20 55 53 42 5f 44 45 56 49 43 45 | ICE_ID_MATCH_VENDOR.|.USB_DEVICE |
45a0 | 5f 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 | _ID_MATCH_PRODUCT).#define.USB_D |
45c0 | 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 09 09 28 55 53 42 5f 44 | EVICE_ID_MATCH_DEV_RANGE..(USB_D |
45e0 | 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 4c 4f 20 7c 20 55 53 42 5f 44 45 56 49 | EVICE_ID_MATCH_DEV_LO.|.USB_DEVI |
4600 | 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f | CE_ID_MATCH_DEV_HI).#define.USB_ |
4620 | 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 5f 41 4e 44 5f 56 45 52 53 49 | DEVICE_ID_MATCH_DEVICE_AND_VERSI |
4640 | 4f 4e 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 20 7c | ON.(USB_DEVICE_ID_MATCH_DEVICE.| |
4660 | 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 29 0a | .USB_DEVICE_ID_MATCH_DEV_RANGE). |
4680 | 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f | #define.USB_DEVICE_ID_MATCH_DEV_ |
46a0 | 49 4e 46 4f 09 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 | INFO..(USB_DEVICE_ID_MATCH_DEV_C |
46c0 | 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 | LASS.|.\.......USB_DEVICE_ID_MAT |
46e0 | 43 48 5f 44 45 56 5f 53 55 42 43 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 | CH_DEV_SUBCLASS.|.\.......USB_DE |
4700 | 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 29 0a 23 64 65 66 | VICE_ID_MATCH_DEV_PROTOCOL).#def |
4720 | 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 49 4e 46 4f | ine.USB_DEVICE_ID_MATCH_INT_INFO |
4740 | 09 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 53 53 | ..(USB_DEVICE_ID_MATCH_INT_CLASS |
4760 | 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 | .|.\.......USB_DEVICE_ID_MATCH_I |
4780 | 4e 54 5f 53 55 42 43 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 | NT_SUBCLASS.|.\.......USB_DEVICE |
47a0 | 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 50 52 4f 54 4f 43 4f 4c 29 0a 0a 73 74 72 75 63 74 20 | _ID_MATCH_INT_PROTOCOL)..struct. |
47c0 | 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 7b 0a 09 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6d | usb_module_map.{..const.char.*.m |
47e0 | 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 61 74 63 68 5f | odule_name;..unsigned.int.match_ |
4800 | 66 6c 61 67 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 56 65 6e 64 6f 72 3b 0a 09 | flags;..unsigned.int.idVendor;.. |
4820 | 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 50 72 6f 64 75 63 74 3b 0a 09 75 6e 73 69 67 6e 65 | unsigned.int.idProduct;..unsigne |
4840 | 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 5f 6c 6f 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e | d.int.bcdDevice_lo;..unsigned.in |
4860 | 74 20 62 63 64 44 65 76 69 63 65 5f 68 69 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 | t.bcdDevice_hi;..unsigned.int.bD |
4880 | 65 76 69 63 65 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 | eviceClass;..unsigned.int.bDevic |
48a0 | 65 53 75 62 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 65 | eSubClass;..unsigned.int.bDevice |
48c0 | 50 72 6f 74 6f 63 6f 6c 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 | Protocol;..unsigned.int.bInterfa |
48e0 | 63 65 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 63 | ceClass;..unsigned.int.bInterfac |
4900 | 65 53 75 62 43 6c 61 73 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 | eSubClass;..unsigned.int.bInterf |
4920 | 61 63 65 50 72 6f 74 6f 63 6f 6c 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 70 | aceProtocol;.}.__attribute__.((p |
4940 | 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c | acked));.static.struct.usb_modul |
4960 | 65 5f 6d 61 70 20 2a 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 75 73 62 | e_map.*usb_module_map;..void.usb |
4980 | 5f 72 65 61 64 5f 75 73 62 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 75 | _read_usbmap(void).{.....FILE.*u |
49a0 | 73 62 6d 61 70 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 75 | sbmap_file;.....struct.utsname.u |
49c0 | 74 73 6e 61 6d 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 | tsname;.....struct.usb_module_ma |
49e0 | 70 20 2a 65 6e 74 72 79 20 3d 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 63 | p.*entry.=.usb_module_map;.....c |
4a00 | 68 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 | har.*prevmodule.=."";.....char.f |
4a20 | 69 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 | ilename[MAXPATHLEN];.....char.li |
4a40 | 6e 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b | ne[LINELENGTH];.....char.module[ |
4a60 | 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 | LINELENGTH];.....int.count,.maps |
4a80 | 69 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 | ize;......if.(uname(&utsname).<. |
4aa0 | 30 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b | 0).{..perror("uname");..exit(1); |
4ac0 | 0a 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c | .....}.....sprintf(filename,."/l |
4ae0 | 69 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 75 73 62 6d 61 70 22 2c 20 75 | ib/modules/%s/modules.usbmap",.u |
4b00 | 74 73 6e 61 6d 65 2e 72 65 6c 65 61 73 65 29 3b 0a 20 20 20 20 69 66 20 28 28 75 73 62 6d 61 70 | tsname.release);.....if.((usbmap |
4b20 | 5f 66 69 6c 65 20 3d 20 66 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d | _file.=.fopen(filename,."r")).== |
4b40 | 20 4e 55 4c 4c 29 20 7b 0a 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 | .NULL).{..bb_perror_msg_and_die( |
4b60 | 22 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a | "Could.not.open.%s",.filename);. |
4b80 | 20 20 20 20 7d 0a 0a 20 20 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a | ....}......count.=.mapsize.=.0;. |
4ba0 | 20 20 20 20 77 68 69 6c 65 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 | ....while(fgets(line,.LINELENGTH |
4bc0 | 2c 20 75 73 62 6d 61 70 5f 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 | ,.usbmap_file).!=.NULL).{...if.( |
4be0 | 6c 69 6e 65 5b 30 5d 20 3d 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a | line[0].==.'#')......continue;.. |
4c00 | 09 63 6f 75 6e 74 2b 2b 3b 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 | .count++;..if.(count.>=.mapsize) |
4c20 | 20 7b 0a 09 20 20 20 20 6d 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 75 73 62 5f 6d | .{......mapsize+=100;......usb_m |
4c40 | 6f 64 75 6c 65 5f 6d 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 75 73 62 5f 6d 6f 64 75 6c 65 5f | odule_map.=.xrealloc(usb_module_ |
4c60 | 6d 61 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d | map,.(sizeof(struct.usb_module_m |
4c80 | 61 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d 20 75 73 | ap).*.mapsize));......entry.=.us |
4ca0 | 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d | b_module_map.+.count.-.1;......m |
4cc0 | 65 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 75 | emset(entry,.0,.(sizeof(struct.u |
4ce0 | 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 09 65 6e 74 72 | sb_module_map).*.100));..}..entr |
4d00 | 79 20 3d 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a | y.=.usb_module_map.+.count.-.1;. |
4d20 | 0a 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 | ..if.(sscanf(line,."%s.0x%x.0x%x |
4d40 | 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 | .0x%x.0x%x.0x%x.0x%x.0x%x.0x%x.0 |
4d60 | 78 25 78 20 30 78 25 78 20 30 78 25 78 22 2c 0a 09 09 20 20 20 20 6d 6f 64 75 6c 65 2c 0a 09 09 | x%x.0x%x.0x%x",.......module,... |
4d80 | 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d 61 74 63 68 5f 66 6c 61 67 73 2c 20 26 65 6e 74 72 79 2d | ....&entry->match_flags,.&entry- |
4da0 | 3e 69 64 56 65 6e 64 6f 72 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 69 64 50 72 6f 64 75 | >idVendor,.......&entry->idProdu |
4dc0 | 63 74 2c 20 26 65 6e 74 72 79 2d 3e 62 63 64 44 65 76 69 63 65 5f 6c 6f 2c 0a 09 09 20 20 20 20 | ct,.&entry->bcdDevice_lo,....... |
4de0 | 26 65 6e 74 72 79 2d 3e 62 63 64 44 65 76 69 63 65 5f 68 69 2c 20 26 65 6e 74 72 79 2d 3e 62 44 | &entry->bcdDevice_hi,.&entry->bD |
4e00 | 65 76 69 63 65 43 6c 61 73 73 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 | eviceClass,.......&entry->bDevic |
4e20 | 65 53 75 62 43 6c 61 73 73 2c 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 65 50 72 6f 74 6f 63 | eSubClass,.&entry->bDeviceProtoc |
4e40 | 6f 6c 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 43 6c 61 73 | ol,.......&entry->bInterfaceClas |
4e60 | 73 2c 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 2c 0a 09 | s,.&entry->bInterfaceSubClass,.. |
4e80 | 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 29 | .....&entry->bInterfaceProtocol) |
4ea0 | 20 21 3d 20 31 32 29 20 7b 0a 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 | .!=.12).{......bb_error_msg("mod |
4ec0 | 75 6c 65 73 2e 75 73 62 6d 61 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e | ules.usbmap.unparsable.line:.%s. |
4ee0 | 5c 6e 22 2c 20 6c 69 6e 65 29 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 | \n",.line);......free(entry);... |
4f00 | 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 | ...continue;..}.../*.Optimize.me |
4f20 | 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e 20 63 61 73 65 20 73 | mory.allocation.a.bit,.in.case.s |
4f40 | 6f 6d 65 64 61 79 20 77 65 0a 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 | omeday.we.....have.Linux.systems |
4f60 | 20 77 69 74 68 20 7e 31 30 30 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f | .with.~100,000.modules...It.also |
4f80 | 0a 09 20 20 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 70 | .....allows.us.to.just.compare.p |
4fa0 | 6f 69 6e 74 65 72 73 20 74 6f 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c | ointers.to.avoid.trying.....to.l |
4fc0 | 6f 61 64 20 61 20 6d 6f 64 75 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 | oad.a.module.twice..*/..if.(strc |
4fe0 | 6d 70 28 6d 6f 64 75 6c 65 2c 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 | mp(module,.prevmodule).!=.0).{.. |
5000 | 20 20 20 20 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 | ....prevmodule.=.xmalloc(strlen( |
5020 | 6d 6f 64 75 6c 65 29 2b 31 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 72 65 76 6d 6f 64 75 | module)+1);......strcpy(prevmodu |
5040 | 6c 65 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e | le,.module);..}..entry->module_n |
5060 | 61 6d 65 20 3d 20 70 72 65 76 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f | ame.=.prevmodule;.....}.....fclo |
5080 | 73 65 28 75 73 62 6d 61 70 5f 66 69 6c 65 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 | se(usbmap_file);.}..static.int.u |
50a0 | 73 62 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 5f 70 72 6f 64 75 63 74 20 28 75 6e 73 69 67 6e 65 | sb_match_vendor_product.(unsigne |
50c0 | 64 20 69 6e 74 20 76 65 6e 64 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f 64 75 | d.int.vendor,.unsigned.int.produ |
50e0 | 63 74 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 29 0a 7b 0a 20 20 | ct,.unsigned.int.bcdDevice).{... |
5100 | 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 | ..int.i;.....int.retval;......db |
5120 | 67 20 28 22 76 65 6e 64 6f 72 20 3d 20 25 78 2c 20 70 72 6f 64 75 63 74 20 3d 20 25 78 2c 20 62 | g.("vendor.=.%x,.product.=.%x,.b |
5140 | 63 64 44 65 76 69 63 65 20 3d 20 25 78 22 2c 20 76 65 6e 64 6f 72 2c 20 70 72 6f 64 75 63 74 2c | cdDevice.=.%x",.vendor,.product, |
5160 | 20 62 63 64 44 65 76 69 63 65 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 | .bcdDevice);......for.(i.=.0;.us |
5180 | 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e | b_module_map[i].module_name.!=.N |
51a0 | 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 | ULL;.++i).{..dbg.("looking.at.%s |
51c0 | 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f | ,.match_flags.=.%x",.usb_module_ |
51e0 | 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d | map[i].module_name,.usb_module_m |
5200 | 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 | ap[i].match_flags);..if.(usb_mod |
5220 | 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 28 55 53 42 5f 44 45 | ule_map[i].match_flags.&.(USB_DE |
5240 | 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 20 7c 20 55 53 42 5f 44 45 56 49 43 | VICE_ID_MATCH_DEVICE.|.USB_DEVIC |
5260 | 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 29 29 20 7b 0a 09 20 20 20 20 69 66 | E_ID_MATCH_DEV_RANGE)).{......if |
5280 | 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 | .((usb_module_map[i].match_flags |
52a0 | 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 29 20 26 | .&.USB_DEVICE_ID_MATCH_VENDOR).& |
52c0 | 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 56 65 6e | &.......(usb_module_map[i].idVen |
52e0 | 64 6f 72 20 21 3d 20 76 65 6e 64 6f 72 29 29 20 7b 0a 09 09 64 62 67 20 28 22 76 65 6e 64 6f 72 | dor.!=.vendor)).{...dbg.("vendor |
5300 | 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 | .check.failed.%x.!=.%x",.usb_mod |
5320 | 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 56 65 6e 64 6f 72 2c 20 76 65 6e 64 6f 72 29 3b 0a 09 09 | ule_map[i].idVendor,.vendor);... |
5340 | 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d | continue;......}......if.((usb_m |
5360 | 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 | odule_map[i].match_flags.&.USB_D |
5380 | 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 29 20 26 26 0a 09 09 20 20 20 | EVICE_ID_MATCH_PRODUCT).&&...... |
53a0 | 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 50 72 6f 64 75 63 74 20 21 3d | .(usb_module_map[i].idProduct.!= |
53c0 | 20 70 72 6f 64 75 63 74 29 29 20 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 64 75 63 74 20 63 68 65 | .product)).{...dbg.("product.che |
53e0 | 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f | ck.failed.%x.!=.%x",.usb_module_ |
5400 | 6d 61 70 5b 69 5d 2e 69 64 50 72 6f 64 75 63 74 2c 20 70 72 6f 64 75 63 74 29 3b 0a 09 09 63 6f | map[i].idProduct,.product);...co |
5420 | 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 | ntinue;......}......if.((usb_mod |
5440 | 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 | ule_map[i].match_flags.&.USB_DEV |
5460 | 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 4c 4f 29 20 26 26 0a 09 09 20 20 20 20 28 75 | ICE_ID_MATCH_DEV_LO).&&.......(u |
5480 | 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 6c 6f 20 3c 20 | sb_module_map[i].bcdDevice_lo.<. |
54a0 | 62 63 64 44 65 76 69 63 65 29 29 20 7b 0a 09 09 64 62 67 20 28 22 62 63 64 44 65 76 69 63 65 5f | bcdDevice)).{...dbg.("bcdDevice_ |
54c0 | 6c 6f 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 3e 20 25 78 22 2c 20 75 73 62 5f 6d 6f | lo.check.failed.%x.>.%x",.usb_mo |
54e0 | 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 6c 6f 2c 20 62 63 64 44 65 76 | dule_map[i].bcdDevice_lo,.bcdDev |
5500 | 69 63 65 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 | ice);...continue;......}......if |
5520 | 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 | .((usb_module_map[i].match_flags |
5540 | 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 29 20 26 | .&.USB_DEVICE_ID_MATCH_DEV_HI).& |
5560 | 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 | &.......(usb_module_map[i].bcdDe |
5580 | 76 69 63 65 5f 68 69 20 3e 3d 20 62 63 64 44 65 76 69 63 65 29 29 20 7b 0a 09 09 64 62 67 20 28 | vice_hi.>=.bcdDevice)).{...dbg.( |
55a0 | 22 62 63 64 44 65 76 69 63 65 5f 68 69 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 3c 3d | "bcdDevice_hi.check.failed.%x.<= |
55c0 | 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 | .%x",.usb_module_map[i].bcdDevic |
55e0 | 65 5f 68 69 2c 20 62 63 64 44 65 76 69 63 65 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 | e_hi,.bcdDevice);...continue;... |
5600 | 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 20 20 20 20 | ...}....../*.found.one!.*/...... |
5620 | 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 | dbg.("loading.%s",.usb_module_ma |
5640 | 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 72 65 74 76 61 6c 20 3d | p[i].module_name);......retval.= |
5660 | 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e | .load_module.(usb_module_map[i]. |
5680 | 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 28 72 65 74 76 61 6c 29 0a 09 | module_name);......if.(retval).. |
56a0 | 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 | .return.retval;..}.....}......re |
56c0 | 74 75 72 6e 20 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 6d 61 74 63 68 5f | turn.0;.}..static.int.usb_match_ |
56e0 | 64 65 76 69 63 65 5f 63 6c 61 73 73 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 | device_class.(unsigned.int.class |
5700 | 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 | ,.unsigned.int.subclass,.unsigne |
5720 | 64 20 69 6e 74 20 70 72 6f 74 6f 63 6f 6c 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 | d.int.protocol).{.....int.i;.... |
5740 | 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 67 20 28 22 63 6c 61 73 73 20 3d 20 | .int.retval;......dbg.("class.=. |
5760 | 25 78 2c 20 73 75 62 63 6c 61 73 73 20 3d 20 25 78 2c 20 70 72 6f 74 6f 63 6f 6c 20 3d 20 25 78 | %x,.subclass.=.%x,.protocol.=.%x |
5780 | 22 2c 20 63 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 0a | ",.class,.subclass,.protocol);.. |
57a0 | 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 | ....for.(i.=.0;.usb_module_map[i |
57c0 | 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 | ].module_name.!=.NULL;.++i).{..d |
57e0 | 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 | bg.("looking.at.%s,.match_flags. |
5800 | 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f | =.%x",.usb_module_map[i].module_ |
5820 | 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c | name,.usb_module_map[i].match_fl |
5840 | 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 | ags);..if.(usb_module_map[i].mat |
5860 | 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 | ch_flags.&.USB_DEVICE_ID_MATCH_D |
5880 | 45 56 5f 49 4e 46 4f 29 20 7b 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f | EV_INFO).{......if.((usb_module_ |
58a0 | 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f | map[i].match_flags.&.USB_DEVICE_ |
58c0 | 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 | ID_MATCH_DEV_CLASS).&&.......(us |
58e0 | 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 43 6c 61 73 73 20 21 3d 20 | b_module_map[i].bDeviceClass.!=. |
5900 | 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 63 6c 61 73 73 20 63 68 65 63 6b 20 66 61 | class)).{...dbg.("class.check.fa |
5920 | 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 | iled.%x.!=.%x",.usb_module_map[i |
5940 | 5d 2e 62 44 65 76 69 63 65 43 6c 61 73 73 2c 20 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e | ].bDeviceClass,.class);...contin |
5960 | 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f | ue;......}......if.((usb_module_ |
5980 | 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f | map[i].match_flags.&.USB_DEVICE_ |
59a0 | 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 53 55 42 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 | ID_MATCH_DEV_SUBCLASS).&&....... |
59c0 | 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 53 75 62 43 6c 61 | (usb_module_map[i].bDeviceSubCla |
59e0 | 73 73 20 21 3d 20 73 75 62 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 73 75 62 63 6c | ss.!=.subclass)).{...dbg.("subcl |
5a00 | 61 73 73 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f | ass.check.failed.%x.!=.%x",.usb_ |
5a20 | 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 53 75 62 43 6c 61 73 73 2c 20 73 | module_map[i].bDeviceSubClass,.s |
5a40 | 75 62 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 | ubclass);...continue;......}.... |
5a60 | 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 | ..if.((usb_module_map[i].match_f |
5a80 | 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 | lags.&.USB_DEVICE_ID_MATCH_DEV_P |
5aa0 | 52 4f 54 4f 43 4f 4c 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 | ROTOCOL).&&.......(usb_module_ma |
5ac0 | 70 5b 69 5d 2e 62 44 65 76 69 63 65 50 72 6f 74 6f 63 6f 6c 20 21 3d 20 70 72 6f 74 6f 63 6f 6c | p[i].bDeviceProtocol.!=.protocol |
5ae0 | 29 29 20 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 74 6f 63 6f 6c 20 63 68 65 63 6b 20 66 61 69 6c | )).{...dbg.("protocol.check.fail |
5b00 | 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e | ed.%x.!=.%x",.usb_module_map[i]. |
5b20 | 62 44 65 76 69 63 65 50 72 6f 74 6f 63 6f 6c 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 09 09 63 6f | bDeviceProtocol,.protocol);...co |
5b40 | 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 | ntinue;......}....../*.found.one |
5b60 | 21 20 2a 2f 0a 09 20 20 20 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 | !.*/......dbg.("loading.%s",.usb |
5b80 | 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 | _module_map[i].module_name);.... |
5ba0 | 20 20 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 | ..retval.=.load_module.(usb_modu |
5bc0 | 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 | le_map[i].module_name);......if. |
5be0 | 28 72 65 74 76 61 6c 29 0a 09 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 | (retval)...return.retval;..}.... |
5c00 | 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 | .}......return.0;.}...static.int |
5c20 | 20 75 73 62 5f 6d 61 74 63 68 5f 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 28 75 6e 73 69 | .usb_match_interface_class.(unsi |
5c40 | 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 | gned.int.class,.unsigned.int.sub |
5c60 | 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f 74 6f 63 6f 6c 29 0a 7b 0a | class,.unsigned.int.protocol).{. |
5c80 | 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 | ....int.i;.....int.retval;...... |
5ca0 | 64 62 67 20 28 22 63 6c 61 73 73 20 3d 20 25 78 2c 20 73 75 62 63 6c 61 73 73 20 3d 20 25 78 2c | dbg.("class.=.%x,.subclass.=.%x, |
5cc0 | 20 70 72 6f 74 6f 63 6f 6c 20 3d 20 25 78 22 2c 20 63 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 | .protocol.=.%x",.class,.subclass |
5ce0 | 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 | ,.protocol);......for.(i.=.0;.us |
5d00 | 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e | b_module_map[i].module_name.!=.N |
5d20 | 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 | ULL;.++i).{..dbg.("looking.at.%s |
5d40 | 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f | ,.match_flags.=.%x",.usb_module_ |
5d60 | 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d | map[i].module_name,.usb_module_m |
5d80 | 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 | ap[i].match_flags);..if.(usb_mod |
5da0 | 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 | ule_map[i].match_flags.&.USB_DEV |
5dc0 | 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 49 4e 46 4f 29 20 7b 0a 09 20 20 20 20 69 66 | ICE_ID_MATCH_INT_INFO).{......if |
5de0 | 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 | .((usb_module_map[i].match_flags |
5e00 | 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 53 53 | .&.USB_DEVICE_ID_MATCH_INT_CLASS |
5e20 | 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 | ).&&.......(usb_module_map[i].bI |
5e40 | 6e 74 65 72 66 61 63 65 43 6c 61 73 73 20 21 3d 20 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 | nterfaceClass.!=.class)).{...dbg |
5e60 | 20 28 22 63 6c 61 73 73 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c | .("class.check.failed.%x.!=.%x", |
5e80 | 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 43 6c 61 | .usb_module_map[i].bInterfaceCla |
5ea0 | 73 73 2c 20 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 | ss,.class);...continue;......}.. |
5ec0 | 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 | ....if.((usb_module_map[i].match |
5ee0 | 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 | _flags.&.USB_DEVICE_ID_MATCH_INT |
5f00 | 5f 53 55 42 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f | _SUBCLASS).&&.......(usb_module_ |
5f20 | 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 20 21 3d 20 73 75 62 | map[i].bInterfaceSubClass.!=.sub |
5f40 | 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 73 75 62 63 6c 61 73 73 20 63 68 65 63 6b | class)).{...dbg.("subclass.check |
5f60 | 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 | .failed.%x.!=.%x",.usb_module_ma |
5f80 | 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 | p[i].bInterfaceSubClass,.subclas |
5fa0 | 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 | s);...continue;......}......if.( |
5fc0 | 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 | (usb_module_map[i].match_flags.& |
5fe0 | 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 50 52 4f 54 4f 43 4f | .USB_DEVICE_ID_MATCH_INT_PROTOCO |
6000 | 4c 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 | L).&&.......(usb_module_map[i].b |
6020 | 49 6e 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 20 21 3d 20 70 72 6f 74 6f 63 6f 6c 29 29 20 | InterfaceProtocol.!=.protocol)). |
6040 | 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 74 6f 63 6f 6c 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 | {...dbg.("protocol.check.failed. |
6060 | 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e | %x.!=.%x",.usb_module_map[i].bIn |
6080 | 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 09 09 63 6f | terfaceProtocol,.protocol);...co |
60a0 | 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 | ntinue;......}....../*.found.one |
60c0 | 21 20 2a 2f 0a 09 20 20 20 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 | !.*/......dbg.("loading.%s",.usb |
60e0 | 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 | _module_map[i].module_name);.... |
6100 | 20 20 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 | ..retval.=.load_module.(usb_modu |
6120 | 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 | le_map[i].module_name);......if. |
6140 | 28 72 65 74 76 61 6c 29 0a 09 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 | (retval)...return.retval;..}.... |
6160 | 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 | .}......return.0;.}...static.int |
6180 | 20 75 73 62 5f 61 64 64 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 6f 64 | .usb_add.(void).{.....char.*prod |
61a0 | 75 63 74 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 74 79 70 65 5f 65 6e 76 3b 0a 20 20 20 | uct_env;.....char.*type_env;.... |
61c0 | 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 | .char.*interface_env;.....int.er |
61e0 | 72 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 56 65 6e 64 6f 72 3b 0a | ror;.....unsigned.int.idVendor;. |
6200 | 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 50 72 6f 64 75 63 74 3b 0a 20 20 20 20 | ....unsigned.int.idProduct;..... |
6220 | 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 | unsigned.int.bcdDevice;.....unsi |
6240 | 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 5f 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 | gned.int.device_class;.....unsig |
6260 | 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 5f 73 75 62 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 | ned.int.device_subclass;.....uns |
6280 | 69 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 3b 0a 20 20 20 20 75 | igned.int.device_protocol;.....u |
62a0 | 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 3d 20 30 3b | nsigned.int.interface_class.=.0; |
62c0 | 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 | .....unsigned.int.interface_subc |
62e0 | 6c 61 73 73 20 3d 20 30 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 | lass.=.0;.....unsigned.int.inter |
6300 | 66 61 63 65 5f 70 72 6f 74 6f 63 6f 6c 20 3d 20 30 3b 0a 0a 20 20 20 20 75 73 62 5f 72 65 61 64 | face_protocol.=.0;......usb_read |
6320 | 5f 75 73 62 6d 61 70 28 29 3b 0a 0a 20 20 20 20 70 72 6f 64 75 63 74 5f 65 6e 76 20 3d 20 67 65 | _usbmap();......product_env.=.ge |
6340 | 74 65 6e 76 20 28 22 50 52 4f 44 55 43 54 22 29 3b 0a 20 20 20 20 74 79 70 65 5f 65 6e 76 20 3d | tenv.("PRODUCT");.....type_env.= |
6360 | 20 67 65 74 65 6e 76 20 28 22 54 59 50 45 22 29 3b 0a 20 20 20 20 69 66 20 28 28 70 72 6f 64 75 | .getenv.("TYPE");.....if.((produ |
6380 | 63 74 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 74 79 70 65 5f 65 6e | ct_env.==.NULL).||......(type_en |
63a0 | 76 20 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 | v.==.NULL)).{..dbg.("missing.an. |
63c0 | 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 | environment.variable,.aborting." |
63e0 | 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 | );..return.1;.....}.....error.=. |
6400 | 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 70 72 6f 64 75 63 74 5f 65 6e 76 2c 20 31 36 2c 20 | split_3values.(product_env,.16,. |
6420 | 26 69 64 56 65 6e 64 6f 72 2c 20 26 69 64 50 72 6f 64 75 63 74 2c 20 26 62 63 64 44 65 76 69 63 | &idVendor,.&idProduct,.&bcdDevic |
6440 | 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 | e);.....if.(error)..return.error |
6460 | 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 5f | ;......error.=.usb_match_vendor_ |
6480 | 70 72 6f 64 75 63 74 20 28 69 64 56 65 6e 64 6f 72 2c 20 69 64 50 72 6f 64 75 63 74 2c 20 62 63 | product.(idVendor,.idProduct,.bc |
64a0 | 64 44 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e | dDevice);.....if.(error)..return |
64c0 | 20 65 72 72 6f 72 3b 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 6c 75 | .error;......error.=.split_3valu |
64e0 | 65 73 20 28 74 79 70 65 5f 65 6e 76 2c 20 31 30 2c 20 26 64 65 76 69 63 65 5f 63 6c 61 73 73 2c | es.(type_env,.10,.&device_class, |
6500 | 0a 09 20 20 20 20 26 64 65 76 69 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 26 64 65 76 69 63 65 5f | ......&device_subclass,.&device_ |
6520 | 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 | protocol);.....if.(error)..retur |
6540 | 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 64 | n.error;.....error.=.usb_match_d |
6560 | 65 76 69 63 65 5f 63 6c 61 73 73 20 28 64 65 76 69 63 65 5f 63 6c 61 73 73 2c 20 64 65 76 69 63 | evice_class.(device_class,.devic |
6580 | 65 5f 73 75 62 63 6c 61 73 73 2c 20 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 | e_subclass,.device_protocol);... |
65a0 | 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 0a 20 20 20 | ..if.(error)..return.error;..... |
65c0 | 20 2f 2a 20 77 65 20 6e 65 65 64 20 74 6f 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 69 6e 74 65 72 | ./*.we.need.to.look.at.the.inter |
65e0 | 66 61 63 65 20 74 6f 6f 20 2a 2f 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 5f 65 6e 76 20 3d 20 | face.too.*/.....interface_env.=. |
6600 | 67 65 74 65 6e 76 20 28 22 49 4e 54 45 52 46 41 43 45 22 29 3b 0a 20 20 20 20 69 66 20 28 69 6e | getenv.("INTERFACE");.....if.(in |
6620 | 74 65 72 66 61 63 65 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 69 6e | terface_env.==.NULL).{..dbg.("in |
6640 | 74 65 72 66 61 63 65 20 69 73 20 6e 75 6c 6c 2c 20 77 65 20 64 6f 6e 27 74 20 6b 6e 6f 77 20 77 | terface.is.null,.we.don't.know.w |
6660 | 68 61 74 20 74 6f 20 64 6f 20 68 65 72 65 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 | hat.to.do.here.");..return.1;... |
6680 | 20 20 7d 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 69 | ..}.....error.=.split_3values.(i |
66a0 | 6e 74 65 72 66 61 63 65 5f 65 6e 76 2c 20 31 30 2c 20 26 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 | nterface_env,.10,.&interface_cla |
66c0 | 73 73 2c 0a 09 20 20 20 20 26 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 26 69 | ss,......&interface_subclass,.&i |
66e0 | 6e 74 65 72 66 61 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f | nterface_protocol);.....if.(erro |
6700 | 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 | r)..return.error;.....error.=.us |
6720 | 62 5f 6d 61 74 63 68 5f 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 28 69 6e 74 65 72 66 61 | b_match_interface_class.(interfa |
6740 | 63 65 5f 63 6c 61 73 73 2c 20 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 69 6e | ce_class,.interface_subclass,.in |
6760 | 74 65 72 66 61 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 | terface_protocol);.....return.er |
6780 | 72 6f 72 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 72 65 6d 6f 76 65 20 28 | ror;.}...static.int.usb_remove.( |
67a0 | 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 | void).{...../*.right.now.we.don' |
67c0 | 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 | t.do.anything.here.:).*/.....ret |
67e0 | 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 | urn.0;.}...static.struct.subsyst |
6800 | 65 6d 20 75 73 62 5f 73 75 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 | em.usb_subsystem[].=.{.....{.ADD |
6820 | 5f 53 54 52 49 4e 47 2c 09 75 73 62 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 | _STRING,.usb_add.},.....{.REMOVE |
6840 | 5f 53 54 52 49 4e 47 2c 09 75 73 62 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c | _STRING,.usb_remove.},.....{.NUL |
6860 | 4c 2c 09 09 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 0a 69 6e 74 20 75 73 62 5f 68 61 6e 64 6c 65 72 20 | L,..NULL.}.};...int.usb_handler. |
6880 | 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 0a 20 20 20 | (void).{.....char.*.action;..... |
68a0 | 20 61 63 74 69 6f 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 | .action.=.getenv.("ACTION");.... |
68c0 | 20 64 62 67 20 28 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 | .dbg.("action.=.%s",.action);... |
68e0 | 20 20 69 66 20 28 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d | ..if.(action.==.NULL).{..dbg.("m |
6900 | 69 73 73 69 6e 67 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 | issing.ACTION.environment.variab |
6920 | 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 | le,.aborting.");..return.1;..... |
6940 | 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 | }.....return.call_subsystem.(act |
6960 | 69 6f 6e 2c 20 75 73 62 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 2f 2a 20 55 74 69 6c | ion,.usb_subsystem);.}.../*.Util |
6980 | 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 20 6e 65 65 64 65 64 20 62 79 20 73 6f 6d 65 20 6f 66 20 | ity.functions.needed.by.some.of. |
69a0 | 74 68 65 20 73 75 62 73 79 73 74 65 6d 73 2e 20 2a 2f 0a 0a 2f 2a 0a 20 2a 20 73 70 6c 69 74 5f | the.subsystems..*/../*..*.split_ |
69c0 | 32 76 61 6c 75 65 73 0a 20 2a 0a 20 2a 20 74 61 6b 65 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 | 2values..*..*.takes.a.string.of. |
69e0 | 66 6f 72 6d 61 74 20 22 78 78 78 78 3a 79 79 79 79 22 20 61 6e 64 20 66 69 67 75 72 65 73 20 6f | format."xxxx:yyyy".and.figures.o |
6a00 | 75 74 20 74 68 65 0a 20 2a 20 76 61 6c 75 65 73 20 66 6f 72 20 78 78 78 78 20 61 6e 64 20 79 79 | ut.the..*.values.for.xxxx.and.yy |
6a20 | 79 79 0a 20 2a 2f 0a 69 6e 74 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 63 6f 6e 73 74 20 | yy..*/.int.split_2values.(const. |
6a40 | 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 6e 73 69 67 6e 65 64 | char.*string,.int.base,.unsigned |
6a60 | 20 69 6e 74 20 2a 76 61 6c 75 65 31 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 76 61 6c 75 | .int.*value1,.unsigned.int.*valu |
6a80 | 65 32 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 32 30 30 5d 3b 0a 20 20 20 20 | e2).{.....char.buffer[200];..... |
6aa0 | 63 68 61 72 20 2a 74 65 6d 70 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 65 6d | char.*temp1;.....const.char.*tem |
6ac0 | 70 32 3b 0a 0a 20 20 20 20 64 62 67 28 22 73 74 72 69 6e 67 20 3d 20 25 73 22 2c 20 73 74 72 69 | p2;......dbg("string.=.%s",.stri |
6ae0 | 6e 67 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 0a 09 72 | ng);......if.(string.==.NULL)..r |
6b00 | 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 69 66 20 28 73 74 72 6e 6c 65 6e 20 28 73 74 72 69 6e | eturn.-1;.....if.(strnlen.(strin |
6b20 | 67 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 20 3e 3d 20 73 69 7a 65 6f 66 28 62 75 66 | g,.sizeof(buffer)).>=.sizeof(buf |
6b40 | 66 65 72 29 29 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 0a 20 20 20 20 2f 2a 20 70 69 63 6b 20 75 | fer))..return.-1;....../*.pick.u |
6b60 | 70 20 74 68 65 20 66 69 72 73 74 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 | p.the.first.number.*/.....temp1. |
6b80 | 3d 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 74 65 6d 70 32 20 3d 20 73 74 72 69 6e 67 | =.&buffer[0];.....temp2.=.string |
6ba0 | 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d | ;.....while.(1).{..if.(*temp2.== |
6bc0 | 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d | .0x00)......break;..if.(*temp2.= |
6be0 | 3d 20 27 3a 27 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 | =.':')......break;..*temp1.=.*te |
6c00 | 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 | mp2;..++temp1;..++temp2;.....}.. |
6c20 | 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 31 20 3d 20 | ...*temp1.=.0x00;.....*value1.=. |
6c40 | 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 | strtoul.(buffer,.NULL,.base);... |
6c60 | 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d | ..dbg.("buffer.=.%s",.&buffer[0] |
6c80 | 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 31 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 | );.....dbg.("value1.=.%d",.*valu |
6ca0 | 65 31 29 3b 0a 0a 20 20 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a | e1);......if.(*temp2.==.0x00).{. |
6cc0 | 09 2f 2a 20 73 74 72 69 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f | ./*.string.is.ended,.not.good.*/ |
6ce0 | 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 | ..return.-1;.....}....../*.get.t |
6d00 | 68 65 20 73 65 63 6f 6e 64 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 | he.second.number.*/.....temp1.=. |
6d20 | 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 | &buffer[0];.....++temp2;.....whi |
6d40 | 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 | le.(1).{..if.(*temp2.==.0x00)... |
6d60 | 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 | ...break;..*temp1.=.*temp2;..++t |
6d80 | 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 | emp1;..++temp2;.....}.....*temp1 |
6da0 | 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 32 20 3d 20 73 74 72 74 6f 75 6c 20 28 | .=.0x00;.....*value2.=.strtoul.( |
6dc0 | 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 | buffer,.NULL,.base);.....dbg.("b |
6de0 | 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 | uffer.=.%s",.&buffer[0]);.....db |
6e00 | 67 20 28 22 76 61 6c 75 65 32 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 32 29 3b 0a 0a 20 20 20 | g.("value2.=.%d",.*value2);..... |
6e20 | 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 2f 2a 0a 20 2a 20 73 70 6c 69 74 5f 33 76 61 6c 75 | .return.0;.}.../*..*.split_3valu |
6e40 | 65 73 0a 20 2a 0a 20 2a 20 74 61 6b 65 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 61 | es..*..*.takes.a.string.of.forma |
6e60 | 74 20 22 78 78 78 78 2f 79 79 79 79 2f 7a 7a 7a 7a 22 20 61 6e 64 20 66 69 67 75 72 65 73 20 6f | t."xxxx/yyyy/zzzz".and.figures.o |
6e80 | 75 74 20 74 68 65 0a 20 2a 20 76 61 6c 75 65 73 20 66 6f 72 20 78 78 78 78 2c 20 79 79 79 79 2c | ut.the..*.values.for.xxxx,.yyyy, |
6ea0 | 20 61 6e 64 20 7a 7a 7a 7a 0a 20 2a 2f 0a 69 6e 74 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 | .and.zzzz..*/.int.split_3values. |
6ec0 | 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 | (const.char.*string,.int.base,.u |
6ee0 | 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 | nsigned.int.*.value1,..unsigned. |
6f00 | 69 6e 74 20 2a 20 76 61 6c 75 65 32 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c | int.*.value2,.unsigned.int.*.val |
6f20 | 75 65 33 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 32 30 30 5d 3b 0a 20 20 20 | ue3).{.....char.buffer[200];.... |
6f40 | 20 63 68 61 72 20 2a 74 65 6d 70 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 65 | .char.*temp1;.....const.char.*te |
6f60 | 6d 70 32 3b 0a 0a 20 20 20 20 64 62 67 28 22 73 74 72 69 6e 67 20 3d 20 25 73 22 2c 20 73 74 72 | mp2;......dbg("string.=.%s",.str |
6f80 | 69 6e 67 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 0a 09 | ing);......if.(string.==.NULL).. |
6fa0 | 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 69 66 20 28 73 74 72 6e 6c 65 6e 20 28 73 74 72 69 | return.-1;.....if.(strnlen.(stri |
6fc0 | 6e 67 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 20 3e 3d 20 73 69 7a 65 6f 66 28 62 75 | ng,.sizeof(buffer)).>=.sizeof(bu |
6fe0 | 66 66 65 72 29 29 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 0a 20 20 20 20 2f 2a 20 70 69 63 6b 20 | ffer))..return.-1;....../*.pick. |
7000 | 75 70 20 74 68 65 20 66 69 72 73 74 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 | up.the.first.number.*/.....temp1 |
7020 | 20 3d 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 74 65 6d 70 32 20 3d 20 73 74 72 69 6e | .=.&buffer[0];.....temp2.=.strin |
7040 | 67 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d | g;.....while.(1).{..if.(*temp2.= |
7060 | 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 | =.0x00)......break;..if.(*temp2. |
7080 | 3d 3d 20 27 2f 27 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 | ==.'/')......break;..*temp1.=.*t |
70a0 | 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a | emp2;..++temp1;..++temp2;.....}. |
70c0 | 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 31 20 3d | ....*temp1.=.0x00;.....*value1.= |
70e0 | 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 | .strtoul.(buffer,.NULL,.base);.. |
7100 | 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 | ...dbg.("buffer.=.%s",.&buffer[0 |
7120 | 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 31 20 3d 20 25 64 22 2c 20 2a 76 61 6c | ]);.....dbg.("value1.=.%d",.*val |
7140 | 75 65 31 29 3b 0a 0a 20 20 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b | ue1);......if.(*temp2.==.0x00).{ |
7160 | 0a 09 2f 2a 20 73 74 72 69 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a | ../*.string.is.ended,.not.good.* |
7180 | 2f 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 | /..return.-1;.....}....../*.get. |
71a0 | 74 68 65 20 73 65 63 6f 6e 64 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d | the.second.number.*/.....temp1.= |
71c0 | 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 | .&buffer[0];.....++temp2;.....wh |
71e0 | 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 | ile.(1).{..if.(*temp2.==.0x00).. |
7200 | 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 27 2f 27 29 0a 09 | ....break;..if.(*temp2.==.'/').. |
7220 | 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b | ....break;..*temp1.=.*temp2;..++ |
7240 | 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 | temp1;..++temp2;.....}.....*temp |
7260 | 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 32 20 3d 20 73 74 72 74 6f 75 6c 20 | 1.=.0x00;.....*value2.=.strtoul. |
7280 | 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 | (buffer,.NULL,.base);.....dbg.(" |
72a0 | 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 | buffer.=.%s",.&buffer[0]);.....d |
72c0 | 62 67 20 28 22 76 61 6c 75 65 32 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 32 29 3b 0a 0a 20 20 | bg.("value2.=.%d",.*value2);.... |
72e0 | 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a 09 2f 2a 20 73 74 72 69 | ..if.(*temp2.==.0x00).{../*.stri |
7300 | 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f 0a 09 72 65 74 75 72 6e | ng.is.ended,.not.good.*/..return |
7320 | 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 68 65 20 74 68 69 72 64 | .-1;.....}....../*.get.the.third |
7340 | 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 72 5b 30 | .number.*/.....temp1.=.&buffer[0 |
7360 | 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a | ];.....++temp2;.....while.(1).{. |
7380 | 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b | .if.(*temp2.==.0x00)......break; |
73a0 | 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b | ..*temp1.=.*temp2;..++temp1;..++ |
73c0 | 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a | temp2;.....}.....*temp1.=.0x00;. |
73e0 | 20 20 20 20 2a 76 61 6c 75 65 33 20 3d 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e | ....*value3.=.strtoul.(buffer,.N |
7400 | 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 | ULL,.base);.....dbg.("buffer.=.% |
7420 | 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 | s",.&buffer[0]);.....dbg.("value |
7440 | 33 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 33 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 | 3.=.%d",.*value3);......return.0 |
7460 | 3b 0a 7d 0a 0a 0a 69 6e 74 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 63 6f 6e 73 74 20 | ;.}...int.call_subsystem.(const. |
7480 | 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 2a | char.*string,.struct.subsystem.* |
74a0 | 73 75 62 73 79 73 74 65 6d 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 0a 20 20 20 20 66 6f 72 | subsystem).{.....int.i;......for |
74c0 | 20 28 69 20 3d 20 30 3b 20 73 75 62 73 79 73 74 65 6d 5b 69 5d 2e 6e 61 6d 65 20 21 3d 20 4e 55 | .(i.=.0;.subsystem[i].name.!=.NU |
74e0 | 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 69 66 20 28 73 74 72 6e 63 6d 70 20 28 73 74 72 69 6e 67 2c | LL;.++i).{..if.(strncmp.(string, |
7500 | 20 73 75 62 73 79 73 74 65 6d 5b 69 5d 2e 6e 61 6d 65 2c 20 73 74 72 6c 65 6e 28 73 74 72 69 6e | .subsystem[i].name,.strlen(strin |
7520 | 67 29 29 20 3d 3d 20 30 29 0a 09 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 73 79 73 74 65 6d 5b | g)).==.0)......return.subsystem[ |
7540 | 69 5d 2e 68 61 6e 64 6c 65 72 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 31 | i].handler();.....}.....return.1 |
7560 | 3b 0a 7d 0a 0a 0a 69 6e 74 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 | ;.}...int.load_module.(const.cha |
7580 | 72 20 2a 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 61 72 67 76 | r.*module_name).{.....char.*argv |
75a0 | 5b 33 5d 3b 0a 0a 20 20 20 20 61 72 67 76 5b 30 5d 20 3d 20 22 2f 73 62 69 6e 2f 6d 6f 64 70 72 | [3];......argv[0].=."/sbin/modpr |
75c0 | 6f 62 65 22 3b 0a 20 20 20 20 61 72 67 76 5b 31 5d 20 3d 20 28 63 68 61 72 20 2a 29 6d 6f 64 75 | obe";.....argv[1].=.(char.*)modu |
75e0 | 6c 65 5f 6e 61 6d 65 3b 0a 20 20 20 20 61 72 67 76 5b 32 5d 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 | le_name;.....argv[2].=.NULL;.... |
7600 | 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 6d 6f 64 75 6c 65 20 25 73 22 2c 20 6d 6f 64 75 6c | .dbg.("loading.module.%s",.modul |
7620 | 65 5f 6e 61 6d 65 29 3b 0a 20 20 20 20 73 77 69 74 63 68 20 28 66 6f 72 6b 28 29 29 20 7b 0a 09 | e_name);.....switch.(fork()).{.. |
7640 | 63 61 73 65 20 30 3a 0a 09 20 20 20 20 2f 2a 20 77 65 20 61 72 65 20 74 68 65 20 63 68 69 6c 64 | case.0:....../*.we.are.the.child |
7660 | 2c 20 73 6f 20 6c 65 74 73 20 72 75 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 20 2a 2f 0a 09 20 20 | ,.so.lets.run.the.program.*/.... |
7680 | 20 20 65 78 65 63 76 20 28 22 2f 73 62 69 6e 2f 6d 6f 64 70 72 6f 62 65 22 2c 20 61 72 67 76 29 | ..execv.("/sbin/modprobe",.argv) |
76a0 | 3b 0a 09 20 20 20 20 65 78 69 74 28 30 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 | ;......exit(0);......break;..cas |
76c0 | 65 20 28 2d 31 29 3a 0a 09 20 20 20 20 64 62 67 20 28 22 66 6f 72 6b 20 66 61 69 6c 65 64 2e 22 | e.(-1):......dbg.("fork.failed." |
76e0 | 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 64 65 66 61 75 6c 74 3a 0a 09 20 20 20 20 62 72 | );......break;..default:......br |
7700 | 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 00 00 00 00 | eak;.....}.....return.0;.}...... |
7720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
77a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
77c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
77e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
78a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
78c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
78e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
79a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
79c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
79e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
7fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
80a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
80c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
80e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
81e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
82a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
82c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
82e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
83a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
83c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
83e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
84a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
84c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
84e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
85a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
85c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
85e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
86a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
86c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
86e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
87a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
87c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
87e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
88a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
88c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
88e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
89a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
89c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
89e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
8fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
90a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
90c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
90e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
91a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
91c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
91e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
92a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
92c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
92e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
93a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
93c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
93e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
94a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
94c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
94e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
95a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
95c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
95e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
96a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
96c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
96e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
97a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
97c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
97e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
98a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
98c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
98e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
99a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
99c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
99e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
9fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |