Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Sep 2018 16:10:26 +0300
From:      Yuri Pankov <yuripv@yuripv.net>
To:        freebsd-hackers@freebsd.org
Subject:   allow specifying literal values in MODULE_PNP_INFO(9)
Message-ID:  <2926f43a-4709-3335-07a4-03248e13675a@yuripv.net>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------F77BAD18663E3FDB44654300
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

Looking at adding the MODULE_PNP_INFO() entry to iwm(4), I came up with 
the patch in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231625 
adding redundant and useless vendor field to iwm_devices.  While it 
works, it's unfortunate, and I have started looking into possible 
solutions and the result is a small patch for kldxref(8) allowing 
specifying literal values in descriptor_string like the following:

MODULE_PNP_INFO("U16=8086:vendor;U16:device;P:#", pci, iwm_pci_driver,
     iwm_devices, sizeof(iwm_devices[0]), nitems(iwm_devices));

...so that we always have vendor 0x8086 and only consume the device field.

If it makes at least some sense, I'll put it for review.

--------------F77BAD18663E3FDB44654300
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
 name="kldxref-literal.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="kldxref-literal.diff"

ZGlmZiAtLWdpdCBhL3Vzci5zYmluL2tsZHhyZWYva2xkeHJlZi5jIGIvdXNyLnNiaW4va2xk
eHJlZi9rbGR4cmVmLmMKaW5kZXggZjBkNjk5MzY5ZGJkLi5lNDk0ZThhOWYwMzkgMTAwNjQ0
Ci0tLSBhL3Vzci5zYmluL2tsZHhyZWYva2xkeHJlZi5jCisrKyBiL3Vzci5zYmluL2tsZHhy
ZWYva2xkeHJlZi5jCkBAIC0xNjgsNyArMTY4LDcgQEAgcG5wX2Vpc2Fmb3JtYXQodWludDMy
X3QgaWQpCiAKIHN0cnVjdCBwbnBfZWx0CiB7Ci0JaW50CXBlX2tpbmQ7CS8qIFdoYXQga2lu
ZCBvZiBlbnRyeSAqLworCWludAkJcGVfa2luZDsJLyogV2hhdCBraW5kIG9mIGVudHJ5ICov
CiAjZGVmaW5lIFRZUEVfU1pfTUFTSwkweDBmCiAjZGVmaW5lIFRZUEVfRkxBR0dFRAkweDEw
CS8qIGFsbCBmJ3MgaXMgYSB3aWxkY2FyZCAqLwogI2RlZmluZQlUWVBFX0lOVAkweDIwCS8q
IElzIGEgbnVtYmVyICovCkBAIC0xOTEsOCArMTkxLDkgQEAgc3RydWN0IHBucF9lbHQKICNk
ZWZpbmUgVFlQRV9QCQk5CiAjZGVmaW5lIFRZUEVfRQkJMTAKICNkZWZpbmUgVFlQRV9UCQkx
MQotCWludAlwZV9vZmZzZXQ7CS8qIE9mZnNldCB3aXRoaW4gdGhlIGVsZW1lbnQgKi8KLQlj
aGFyICoJcGVfa2V5OwkJLyogcG5wIGtleSBuYW1lICovCisJaW50CQlwZV9vZmZzZXQ7CS8q
IE9mZnNldCB3aXRoaW4gdGhlIGVsZW1lbnQgKi8KKwljaGFyCQkqcGVfa2V5OwkvKiBwbnAg
a2V5IG5hbWUgKi8KKwl1aW50MzJfdAlwZV92YWx1ZTsJLyogbGl0ZXJhbCB2YWx1ZSwgaWYg
YW55ICovCiAJVEFJTFFfRU5UUlkocG5wX2VsdCkgbmV4dDsgLyogTGluayAqLwogfTsKIHR5
cGVkZWYgVEFJTFFfSEVBRChwbnBfaGVhZCwgcG5wX2VsdCkgcG5wX2xpc3Q7CkBAIC0yMzIs
MTAgKzIzMywxMCBAQCBzdGF0aWMgaW50CiBwYXJzZV9wbnBfbGlzdChjb25zdCBjaGFyICpk
ZXNjLCBjaGFyICoqbmV3X2Rlc2MsIHBucF9saXN0ICpsaXN0KQogewogCWNvbnN0IGNoYXIg
KndhbGtlciwgKmVwOwotCWNvbnN0IGNoYXIgKmNvbG9uLCAqc2VtaTsKKwljb25zdCBjaGFy
ICphc3NpZ24sICpjb2xvbiwgKnNlbWk7CiAJc3RydWN0IHBucF9lbHQgKmVsdDsKIAljaGFy
ICpuZDsKLQljaGFyIHR5cGVbOF0sIGtleVszMl07CisJY2hhciB0eXBlWzhdLCB2YWx1ZVs5
XSwga2V5WzMyXTsKIAlpbnQgb2ZmOwogCiAJd2Fsa2VyID0gZGVzYzsKQEAgLTI0NSwxNCAr
MjQ2LDI4IEBAIHBhcnNlX3BucF9saXN0KGNvbnN0IGNoYXIgKmRlc2MsIGNoYXIgKipuZXdf
ZGVzYywgcG5wX2xpc3QgKmxpc3QpCiAJaWYgKHZlcmJvc2UgPiAxKQogCQlwcmludGYoIkNv
bnZlcnRpbmcgJXMgaW50byBhIGxpc3RcbiIsIGRlc2MpOwogCXdoaWxlICh3YWxrZXIgPCBl
cCkgeworCQlhc3NpZ24gPSBzdHJjaHIod2Fsa2VyLCAnPScpOwogCQljb2xvbiA9IHN0cmNo
cih3YWxrZXIsICc6Jyk7CiAJCXNlbWkgPSBzdHJjaHIod2Fsa2VyLCAnOycpOworCQlpZiAo
Y29sb24gPT0gTlVMTCkKKwkJCWdvdG8gZXJyOworCQlpZiAoYXNzaWduICE9IE5VTEwgJiYg
YXNzaWduID4gY29sb24pCisJCQlhc3NpZ24gPSBOVUxMOwogCQlpZiAoc2VtaSAhPSBOVUxM
ICYmIHNlbWkgPCBjb2xvbikKIAkJCWdvdG8gZXJyOwogCQlpZiAoY29sb24gLSB3YWxrZXIg
PiBzaXplb2YodHlwZSkpCiAJCQlnb3RvIGVycjsKLQkJc3RybmNweSh0eXBlLCB3YWxrZXIs
IGNvbG9uIC0gd2Fsa2VyKTsKLQkJdHlwZVtjb2xvbiAtIHdhbGtlcl0gPSAnXDAnOworCQlp
ZiAoYXNzaWduICE9IE5VTEwpIHsKKwkJCXN0cm5jcHkodHlwZSwgd2Fsa2VyLCBhc3NpZ24g
LSB3YWxrZXIpOworCQkJdHlwZVthc3NpZ24gLSB3YWxrZXJdID0gJ1wwJzsKKwkJCWlmIChj
b2xvbiAtIGFzc2lnbiA+PSBzaXplb2YodmFsdWUpKQorCQkJCWdvdG8gZXJyOworCQkJc3Ry
bmNweSh2YWx1ZSwgYXNzaWduICsgMSwgY29sb24gLSBhc3NpZ24gLSAxKTsKKwkJCXZhbHVl
W2NvbG9uIC0gYXNzaWduIC0gMV0gPSAnXDAnOworCQl9IGVsc2UgeworCQkJc3RybmNweSh0
eXBlLCB3YWxrZXIsIGNvbG9uIC0gd2Fsa2VyKTsKKwkJCXR5cGVbY29sb24gLSB3YWxrZXJd
ID0gJ1wwJzsKKwkJfQogCQlpZiAoc2VtaSAhPSBOVUxMKSB7CiAJCQlpZiAoc2VtaSAtIGNv
bG9uID49IHNpemVvZihrZXkpKQogCQkJCWdvdG8gZXJyOwpAQCAtMjY1LDggKzI4MCwxNSBA
QCBwYXJzZV9wbnBfbGlzdChjb25zdCBjaGFyICpkZXNjLCBjaGFyICoqbmV3X2Rlc2MsIHBu
cF9saXN0ICpsaXN0KQogCQkJc3RyY3B5KGtleSwgY29sb24gKyAxKTsKIAkJCXdhbGtlciA9
IGVwOwogCQl9Ci0JCWlmICh2ZXJib3NlID4gMSkKLQkJCXByaW50ZigiRm91bmQgdHlwZSAl
cyBmb3IgbmFtZSAlc1xuIiwgdHlwZSwga2V5KTsKKwkJaWYgKHZlcmJvc2UgPiAxKSB7CisJ
CQlpZiAoYXNzaWduICE9IE5VTEwpIHsKKwkJCQlwcmludGYoIkZvdW5kIHR5cGUgJXMgZm9y
IG5hbWUgJXMgIgorCQkJCSAgICAid2l0aCB2YWx1ZSAlc1xuIiwgdHlwZSwga2V5LCB2YWx1
ZSk7CisJCQl9IGVsc2UgeworCQkJCXByaW50ZigiRm91bmQgdHlwZSAlcyBmb3IgbmFtZSAl
c1xuIiwKKwkJCQkgICAgdHlwZSwga2V5KTsKKwkJCX0KKwkJfQogCQkvKiBTa2lwIHBvaW50
ZXIgcGxhY2UgaG9sZGVycyAqLwogCQlpZiAoc3RyY21wKHR5cGUsICJQIikgPT0gMCkgewog
CQkJb2ZmICs9IHNpemVvZih2b2lkICopOwpAQCAtMzE4LDcgKzM0MCwxNCBAQCBwYXJzZV9w
bnBfbGlzdChjb25zdCBjaGFyICpkZXNjLCBjaGFyICoqbmV3X2Rlc2MsIHBucF9saXN0ICps
aXN0KQogCQkgKiBoYXZlIHNhbmUgb3JkZXJpbmcgb2YgdHlwZXMuCiAJCSAqLwogCQlpZiAo
ZWx0LT5wZV9raW5kICYgVFlQRV9JTlQpIHsKLQkJCWVsdC0+cGVfb2Zmc2V0ID0gcm91bmR1
cDIoZWx0LT5wZV9vZmZzZXQsIGVsdC0+cGVfa2luZCAmIFRZUEVfU1pfTUFTSyk7CisJCQkv
KgorCQkJICogTGl0ZXJhbCB2YWx1ZXMgKGFzc2lnbiAhPSBOVUxMKSBkb24ndCBjb25zdW1l
IHNwYWNlCisJCQkgKiBpbiB0aGUgdGFibGUuCisJCQkgKi8KKwkJCWlmIChhc3NpZ24gPT0g
TlVMTCkgeworCQkJCWVsdC0+cGVfb2Zmc2V0ID0gcm91bmR1cDIoZWx0LT5wZV9vZmZzZXQs
CisJCQkJICAgIGVsdC0+cGVfa2luZCAmIFRZUEVfU1pfTUFTSyk7CisJCQl9CiAJCQlvZmYg
PSBlbHQtPnBlX29mZnNldCArIChlbHQtPnBlX2tpbmQgJiBUWVBFX1NaX01BU0spOwogCQl9
IGVsc2UgaWYgKGVsdC0+cGVfa2luZCA9PSBUWVBFX0UpIHsKIAkJCS8qIFR5cGUgRSBzdG9y
ZWQgYXMgSW50LCBkaXNwbGF5cyBhcyBzdHJpbmcgKi8KQEAgLTM0MCw5ICszNjksNyBAQCBw
YXJzZV9wbnBfbGlzdChjb25zdCBjaGFyICpkZXNjLCBjaGFyICoqbmV3X2Rlc2MsIHBucF9s
aXN0ICpsaXN0KQogCQkJCSAgICB3b3JkKTsKIAkJCQluZCArPSBzdHJsZW4obmQpOwogCQkJ
fQotCQkJCi0JCX0KLQkJZWxzZSB7CisJCX0gZWxzZSB7CiAJCQlpZiAoZWx0LT5wZV9raW5k
ICYgVFlQRV9GTEFHR0VEKQogCQkJCSpuZCsrID0gJ0onOwogCQkJZWxzZSBpZiAoZWx0LT5w
ZV9raW5kICYgVFlQRV9HRSkKQEAgLTM1MSw5ICszNzgsMTggQEAgcGFyc2VfcG5wX2xpc3Qo
Y29uc3QgY2hhciAqZGVzYywgY2hhciAqKm5ld19kZXNjLCBwbnBfbGlzdCAqbGlzdCkKIAkJ
CQkqbmQrKyA9ICdMJzsKIAkJCWVsc2UgaWYgKGVsdC0+cGVfa2luZCAmIFRZUEVfTUFTSykK
IAkJCQkqbmQrKyA9ICdNJzsKLQkJCWVsc2UgaWYgKGVsdC0+cGVfa2luZCAmIFRZUEVfSU5U
KQorCQkJZWxzZSBpZiAoZWx0LT5wZV9raW5kICYgVFlQRV9JTlQpIHsKIAkJCQkqbmQrKyA9
ICdJJzsKLQkJCWVsc2UgaWYgKGVsdC0+cGVfa2luZCA9PSBUWVBFX0QpCisJCQkJaWYgKGFz
c2lnbiAhPSBOVUxMKSB7CisJCQkJCWNoYXIgKmNlcDsKKworCQkJCQllcnJubyA9IDA7CisJ
CQkJCWVsdC0+cGVfdmFsdWUgPSBzdHJ0b3VsKHZhbHVlLCAmY2VwLAorCQkJCQkgICAgMTYp
OworCQkJCQlpZiAoZXJybm8gIT0gMCB8fCAqZXAgIT0gJ1wwJykKKwkJCQkJCWdvdG8gZXJy
OworCQkJCX0KKwkJCX0gZWxzZSBpZiAoZWx0LT5wZV9raW5kID09IFRZUEVfRCkKIAkJCQkq
bmQrKyA9ICdEJzsKIAkJCWVsc2UgaWYgKGVsdC0+cGVfa2luZCA9PSBUWVBFX1ogfHwgZWx0
LT5wZV9raW5kID09IFRZUEVfRSkKIAkJCQkqbmQrKyA9ICdaJzsKQEAgLTQ3MCwyMyArNTA2
LDI3IEBAIHBhcnNlX2VudHJ5KHN0cnVjdCBtb2RfbWV0YWRhdGEgKm1kLCBjb25zdCBjaGFy
ICpjdmFsLAogCQkJCQkJaWYgKHZlcmJvc2UgPiAxKQogCQkJCQkJCXByaW50ZigiOiUjeDsi
LCB2YWx1ZSk7CiAJCQkJCX0gZWxzZSBpZiAoZWx0LT5wZV9raW5kICYgVFlQRV9JTlQpIHsK
KwkJCQkJCWNoYXIgKnZhbCA9IGVsdC0+cGVfdmFsdWUgIT0gMCA/CisJCQkJCQkgICAgKGNo
YXIgKikmZWx0LT5wZV92YWx1ZSA6CisJCQkJCQkgICAgd2Fsa2VyICsgZWx0LT5wZV9vZmZz
ZXQ7CisKIAkJCQkJCXN3aXRjaCAoZWx0LT5wZV9raW5kICYgVFlQRV9TWl9NQVNLKSB7CiAJ
CQkJCQljYXNlIDE6Ci0JCQkJCQkJbWVtY3B5KCZ2MSwgd2Fsa2VyICsgZWx0LT5wZV9vZmZz
ZXQsIHNpemVvZih2MSkpOworCQkJCQkJCW1lbWNweSgmdjEsIHZhbCwgc2l6ZW9mKHYxKSk7
CiAJCQkJCQkJaWYgKChlbHQtPnBlX2tpbmQgJiBUWVBFX0ZMQUdHRUQpICYmIHYxID09IDB4
ZmYpCiAJCQkJCQkJCXZhbHVlID0gLTE7CiAJCQkJCQkJZWxzZQogCQkJCQkJCQl2YWx1ZSA9
IHYxOwogCQkJCQkJCWJyZWFrOwogCQkJCQkJY2FzZSAyOgotCQkJCQkJCW1lbWNweSgmdjIs
IHdhbGtlciArIGVsdC0+cGVfb2Zmc2V0LCBzaXplb2YodjIpKTsKKwkJCQkJCQltZW1jcHko
JnYyLCB2YWwsIHNpemVvZih2MikpOwogCQkJCQkJCWlmICgoZWx0LT5wZV9raW5kICYgVFlQ
RV9GTEFHR0VEKSAmJiB2MiA9PSAweGZmZmYpCiAJCQkJCQkJCXZhbHVlID0gLTE7CiAJCQkJ
CQkJZWxzZQogCQkJCQkJCQl2YWx1ZSA9IHYyOwogCQkJCQkJCWJyZWFrOwogCQkJCQkJY2Fz
ZSA0OgotCQkJCQkJCW1lbWNweSgmdjQsIHdhbGtlciArIGVsdC0+cGVfb2Zmc2V0LCBzaXpl
b2YodjQpKTsKKwkJCQkJCQltZW1jcHkoJnY0LCB2YWwsIHNpemVvZih2NCkpOwogCQkJCQkJ
CWlmICgoZWx0LT5wZV9raW5kICYgVFlQRV9GTEFHR0VEKSAmJiB2NCA9PSAweGZmZmZmZmZm
KQogCQkJCQkJCQl2YWx1ZSA9IC0xOwogCQkJCQkJCWVsc2UK
--------------F77BAD18663E3FDB44654300--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2926f43a-4709-3335-07a4-03248e13675a>