PCI Strings in userspace [patch included]

Han-Wen Nienhuys (hanwen@stack.nl)
Sat, 8 Nov 1997 16:44:02 +0100 (MET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--0-651395671-879003842=:7384
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi everybody,

I read someone complaining about having the PCI-device names in
kernel-space. I thought this would be an easy thing to fix. Lo and
behold, here is My First Kernel patch.... I've moved
vendor/device/class names out of pci.c, and made a small program
(called pci-inv) to print the classical /proc/pci output.

It works for me, but could anyone comment on this? Is this the Right
Way to do it? Does this break anything? The patch is relative to
2.0.31-pre10; does this have to be modified for 2.1.x? In which
package should the pci-inv program go?

If all is OK, I'll write a manpage and submit the patch to Linus.

BTW. This is my first post to the ML, so could you send me a message
to see it has arrived?

Han-Wen Nienhuys, hanwen@stack.nl | LilyPond - The GNU Project music typesetter
http://www.stack.nl/~hanwen | http://www.stack.nl/~hanwen/lilypond/

--0-651395671-879003842=:7384
Content-Type: APPLICATION/octet-stream; name="pci-pats.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.91.971108164402.7384B@turtle.stack.nl>
Content-Description:

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
+W1FwvXhJdsNr96+z/q2Cq2oQrMn7a3JX8hkJVShZ0m872iTWLRJlJwVceNs
85K9Xs/j58PLLh5ekc7GQUiq65S7GhYi8Q0XYsSLuctlLn/iWpCMtFFUni2x
sFSqvl1aVy6zDwxY2Q7UlPwOavVXMd9oLN5MeZOzvx1UtRhUtct4eMoV95Yn
YOEHeBh821510/i/RXPRvsE43BUZkeIKcbup0JMalV0hbhQaHUwpbymU0xWZ
rw/p07qrrnExeuOb1bF3tX2awYW+hZPcDJlY1HRd0tn4iH2U8O9SQi4rEf5/
SmB0me8opIZRuDR00ZE2jrrNQT8NmT5h7ZJ6cI6WBxSwh2jVm1iOyjsqo2KN
k3/FQdz1bv0QP8X1F5TOlfhsIzxDH+MrtfWKN4Mnc7Ni8FAiZ7TSZj6zV5vg
SK1IFPz8Iw8U6l+V6H6Eb+AXAlU1tnyp28YIxW60fELLnWjlpFvp1s2W6Qs0
34lWT7rVbt3qSbfaQ7dwQnePoCqe0GI3WjqhpU60duqlVt+EuwQ/dVPje8BP
/dSEHvBTRzWxB/zUU03K4YRUPvoKvLltQIR9lKjAsUUZ8LYjFH2nVkWAr+XB
kYaRjR8CDcNDsoMQ6rUVx05LKP6VrXb4yyYW/tWN2JsQKAw/fSB//fMDgf/Y
96aqesWPx+QnHuxVYR+cDv4CBPx5tEl3+wPZPK4z8g/8jHR/yDbb9X5PPr7s
9snDLr4nyQ4AeO3ThxF+T7rP1x8/5rh//Yton9h3pvkixWa9j3E7kUJmH4Z0
7kWQfk3tuWX+MhhkMYZqZDhPd6PlTC8+aB3+swebAr6iAdmb9Ol5fUjutnFF
UZOqMIL0BEJT/NKgogdPyf4A2cpDDAp3hyzdbuOsuUlHPXDLK2rgDMcpzn5b
t/XnSJ46nu/fVvjTbfr8/Eruk/3397XCr3YGzsjdy/5dGgLdrt4ZPH23Di+6
sYKKksXu+y79fUee0EAuD27jHbeirx5YtIUq4aSi1To8xhluVvdp2lFP5H22
5jSAh+qXUlGUfo93JIOni4C639Ps+7tU4upw9dbB6d/So0duRQ2c/S0t9bGf
X9TRpMW0Q0jtbtsfrj7NOSpanSla/X1F9X6Zyf55C5Nhv37l73Djwg1l+zIV
Rext7qf4PlkTtk/Tq1UVffrCtBv0rV/uk3frq3e0oq9nXy3XC27hQXbPnmOX
PMVPafba0oicyF5Zrxo0nvclv2l9SWsi5gk0vfHC6sN9k4IbKlLdf3ZQ7bBq
Y3DWl2idM613UF0DiKdeJpssNR7Xu1287asBLlTqxhduehNxHeCMW10Y6KLP
F5NFWJ0gXiYwvfckG3pgntONdXb/DgV1+5iUtCai4bnuAoIrnW1IhlZg685p
7g7jDH8co88zdq7I1wPdcayKKn+drUHD31FW9Kock/Tp6WWXbNa4YdzzqQ1v
w8hyqW8b1TtrGy3eNmeYbtUW4Kyfq87JOOlUb0cEM003K4iqjYSzTkb9tods
HZo8w917Bi++3rYNjT33FxH9bN1OPDC/ipbP8etdCvbXq8e5Ft+aVx9cM3lI
DsmfkPb68a6L63qLsBrkuenLPn5H3fVBsHfPL4fjj7j09M+e8RliFzqz5vAg
VO/CLN7BYG6ImW6+YyQTHpj1tTjWQtUbx/pWQZMKP/AMKwy9gIqaUlEBZ831
nkjSGUnqR4IbGNmLqmvz8QdyXp76kHXHv6k+Lfr2+XHdq1bvqxX4Z48mWyzx
jT5soxofGOnoOUs38X6ftk8IbKZjH3R/hf+rDjnJ4q/4afdH27Iswotj6VPL
E5jr0Q1sTLXv7AKBubuTG565STjrZCzCSTX+DyfE6DMpHbs8ObPIaXIHQ124
17Mhu49/W0N4hE/022yD5aOssr8+jP5C1sX0Nv89pfP0Nr9Wy2+Li5dy26U1
N+E+2ybNf3bozBU8r/99qcsnztw4C9iNoB0OLucsT7Db4fijLdVYHk479JtO
Vf/9j/UO5icnfUg2Hf04CyvCdjD7BZT/a+3+m9o20jiA/01exZZOEpuvIVDS
XutcckMT0jKBhAukaZtmMsKWsQ5b8lgSwe3w3u95VpK9Btu7z8q0IZGtlVar
/SVpVx+z5UnD+PLxcXCxOljxhpNZ+n4Moyy8Wh3m1aFZcGlp9erF+xaMUxiN
x9TBcUiAo5/NeomWLMditmUfQ55PGivdIhXt4YpTdGIGpSVLWhfvMzCueKnX
xTd4V+9kLpt1qAgexZ1kPKLL9yzsrg5bvDJgtsOTgAr/jSXdzf7/y340StUj
dR52+nEyoLQPU8suj97PXYZF42R1gNdmGr7O6e+QWs9hEMWrw83fL4oGUYcf
IMRZeKkTRhV9G0tsfz01L3bCr4Mwy9Rp0Lmi7szqkMW0cqPbqpctJeDUTFta
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
IhaEIhb8RCx4ilioK2JBLmLBS8SCTMSCl4gFDxELPiIW6olY8BCxIBex4CFi
QSZiwUPEgreIBQ8RCzVFLHiJWPAUsSAVsSATseAhYqGGiAVPEQtrELEgFbEg
E7HgI2LBQ8SCVMSCv4gFLxELNUQseIpYqCFiwUPEQh0RC74iFtYhYsFLxIJM
xIKniAWpiAU/EQseIha8RSx4iViQi1jwErHgK2KhlogFbxELUhELchELHiIW
xCIWPEUsSEUs1BGx4CliwVPEgoeIBQ8RCx4iFjxELIhFLMhFLMhELHiJWPAU
seAjYkEiYlnux8pErOIO7XIRC3qQm5uIBZmIVRyDHgiVxNfhOKMdZw19LMVh
bZWDo6pJhLwq7eHZ/Cdp3uGHATzmLu0Eca+RttTmw2izpR7Ryk1z7Z5qVGt/
81zt6VvRd4GlXglApVmXLqVoU4c3VB/z+EU9IOmSLhCC8WVeDDJ+dj98eBNl
jT3zm9vZP8v0KQ5izgM5Pnp7eHb056Ha2/3u6XSoY2EYPeHnHezTtEqEh5M0
LUc0XidR9wF4vS+8WmM+yXRqDmgHn6odfDZi9vro+FBt9SjpeskojBub0z1R
6m2ON+8m3jc9tySj0/A4U7zJWdz/imXJNfvgyVb1rzTMri/yXqPXUm8/HB+3
1BfqiPz8uqV25zZd+D7V0lfq2YWq0ehdhlna4LRoTVO7pXrNZvN+rP5Z6m8V
6UAFJu4MR40ZDUYJVmz6x2ZzVfDqZ2EJ1U9cWlPja6yHWdq2tLAM6LjYwy78
8fbONn33+Kg88EdVQjyqkoCK8HXTJRHmi/ZTp3OwNP/+mvdbs5zL+s0w0LUs
O1b/UY0kHkzoiAvAKW2yJ1adApfILs/7y35uzQy9MmfaZT3n6FUUnmde0tlo
vvHS+elJ+cBe551PptWm3akg3h4Fl+FnjbSJd3q/TbImbWW8eSXLCm3RJ/r3
OcblCqPvxhdijXOQoEt29PiqN8qnFTAVtSTPFu2LLcZeZ5CkYUPHRWf9opHL
U8oYdxq44mSoxqYh1aWslvGAMFqmZjoZTx7gA4dtTz27T4k26tLPvPXt0bR5
Nltb+qKjfv99upeieqZP6IvruS/K3K2/6c59U+Z1+qgxzFlHy0ejwWT2fHy7
X+UqLa31o3SHY3RO/+B5DY1OUwt9O+pVRKcuusj5AZnGoNQvp8c7anpAnYS6
BOprlPXV23fq48F7utY7/6NsdGfJpauc3abZ+eIHdqqhmxHq2HRaZW+y6ILR
J9efPt/vhl0m2ZeEui3P9Yh585syLea/KDp1z+41yoqOkFallpnOR6PYPe+S
ytWo32lft7vtTaq0qEbfXtxbm8Vjb0Femg6qXxhW99AfXz9uL8+y04Mxe6gU
VYrjqnJS1hCbVCFsLim/q4JfUD68erYswt1VEV64Z6PELziOGlHpiKNS1mxr
jcVoVSyMjrHHDqrrseUhyzppcUW24J+6kS5z7YKO5+LoGpNTbh/8HwtvwYRo
2AAA
--0-651395671-879003842=:7384--