| 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 | ................................ |