Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Mar 1997 16:24:56 -0800
From:      Amancio Hasty <hasty@rah.star-gate.com>
To:        multimedia@freebsd.org
Cc:        Steve Passe <smp@csn.net>
Subject:   First Cut at separating tuner and capture devices
Message-ID:  <199703230024.QAA00352@rah.star-gate.com>

next in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--===_0_Sat_Mar_22_16:21:48_PST_1997
Content-Type: text/plain; charset=us-ascii


This is patch is against the /sys/pci/brooktree848.c found in 
3.0-current.


Create a tuner device:
mknod tuner0 c 79 16

This means that there can only be a maximum of 15 capture devices .

Access your tuner ioctl thru your tuner device handle and anything
which controls the video capture process thru the video device handle.

The functions which have been added are:

tuner_open
tuner_close
tuner_ioctl

Which are access thru the minor device. What this means is that
applications if they want to access the tuner, they should open
the device "/dev/tuner0", then set channels, mute audio, etc...


Tuner hackers now have a nice isolated home in the driver 8)

Please let me know if you like the changes or not .


	Enjoy,
	Amancio


--===_0_Sat_Mar_22_16:21:48_PST_1997
Content-Type: application/octet-stream
Content-Description: patch
Content-Transfer-Encoding: base64

KioqIGJyb29rdHJlZTg0OC5jLm9sZAlTYXQgTWFyIDIyIDE2OjEwOjE1IDE5OTcKLS0tIGJy
b29rdHJlZTg0OC5jCVNhdCBNYXIgMjIgMTY6MDU6MTEgMTk5NwoqKioqKioqKioqKioqKioK
KioqIDMxMywzMTggKioqKgotLS0gMzEzLDMyMyAtLS0tCiAgLyoKICAgKiB0dW5lciBzcGVj
aWZpYyBmdW5jdGlvbnMuCiAgICovCisgaW50IHR1bmVyX29wZW4oIGRldl90IGRldiwgaW50
IGZsYWdzLCBpbnQgZm10LCBzdHJ1Y3QgcHJvYyAqcCApOworIGludCB0dW5lcl9jbG9zZSgg
ZGV2X3QgZGV2LCBpbnQgZmxhZ3MsIGludCBmbXQsIHN0cnVjdCBwcm9jICpwICk7CisgaW50
IHR1bmVyX2lvY3RsKCBkZXZfdCBkZXYsIGludCBjbWQsIGNhZGRyX3QgYXJnLCBpbnQgZmxh
Zywgc3RydWN0IHByb2MgKnByICk7CisgCisgCiAgc3RhdGljIGludAl0dl9jaGFubmVsKCBi
a3RyX3JlZ190KiBia3RyLCBpbnQgY2hhbm5lbCApOwogIHN0YXRpYyBpbnQJdHZfZnJlcSgg
Ymt0cl9yZWdfdCogYmt0ciwgaW50IGZyZXF1ZW5jeSApOwogIHN0YXRpYyBpbnQJdHVuZXJf
c3RhdHVzKCBia3RyX3JlZ190KiBia3RyICk7CioqKioqKioqKioqKioqKgoqKiogNjMzLDYz
OSAqKioqCiAgI2VuZGlmIC8qIERFVkZTICovCiAgfQogIAohICNkZWZpbmUgVU5JVCh4KSAo
KHgpICYgMHgwNykKICAKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gNjM4LDY0NCAtLS0tCiAgI2VuZGlmIC8q
IERFVkZTICovCiAgfQogIAohICNkZWZpbmUgVU5JVCh4KSAoKHgpICYgMHgwZikKICAKICAK
ICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQoqKioqKioqKioqKioqKioKKioqIDY0OCw2NzAgKioqKgogICAqIAogICAqLwog
IGludAogIGJrdHJfb3BlbiggZGV2X3QgZGV2LCBpbnQgZmxhZ3MsIGludCBmbXQsIHN0cnVj
dCBwcm9jICpwICkKICB7CiAgCWJrdHJfcmVnX3QJKmJrdHI7CiEgCWludAkJdW5pdDsKICAJ
aW50CQlpOwogIAl2b2xhdGlsZSB1X2NoYXIJKmJ0ODQ4OwogIAl2b2xhdGlsZSB1X2NoYXIJ
KmJ0X3JlZzsKICAJdm9sYXRpbGUgdV9sb25nCSpidGxfcmVnOwogIAogIAl1bml0ID0gVU5J
VChtaW5vcihkZXYpKTsKICAJaWYgKHVuaXQgPj0gTkJLVFIpCQkJLyogdW5pdCBvdXQgb2Yg
cmFuZ2UgKi8KICAJCXJldHVybihFTlhJTyk7CiAgCiAgCWJrdHIgPSAmKGJyb29rdHJlZVt1
bml0XSk7CiAgCiAgCWlmICghKGJrdHItPmZsYWdzICYgTUVURU9SX0lOSVRBTElaRUQpKSAv
KiBkZXZpY2Ugbm90IGZvdW5kICovCiAgCQlyZXR1cm4oRU5YSU8pOwkKICAKICAjaWYgZGVm
aW5lZCggTVVMVElQTEVfT1BFTlMgKQogIAlpZiAoYmt0ci0+ZmxhZ3MgJiBNRVRFT1JfT1BF
TikJCS8qIGRldmljZSBhbHJlYWR5IG9wZW4gKi8KLS0tIDY1Myw3MDMgLS0tLQogICAqIAog
ICAqLwogIGludAorIHR1bmVyX29wZW4oIGRldl90IGRldiwgaW50IGZsYWdzLCBpbnQgZm10
LCBzdHJ1Y3QgcHJvYyAqcCApIHsKKyAJYmt0cl9yZWdfdAkqYmt0cjsKKyAJaW50CQl1bml0
LCBtaW5vcjsKKyAJdm9sYXRpbGUgdV9jaGFyCSpidDg0ODsKKyAJdW5pdCA9IFVOSVQobWlu
b3IoZGV2KSk7CisgCWJrdHIgPSAmKGJyb29rdHJlZVt1bml0XSk7CisgCisgI2lmIGRlZmlu
ZWQoIEFVRElPX1NVUFBPUlQgKQorIAlzZXRfYXVkaW8oIGJrdHIsIEFVRElPX1VOTVVURSAp
OworIAlpZiAoIGNhcmRfdHlwZXNbIGJrdHItPmNhcmRfdHlwZSBdLmRieCApCisgCSAgICBz
ZXRfQlRTQyggYmt0ciwgMCApOwkJLyogZW5hYmxlIHRoZSBzdGVyZW8gY2hpcCAqLworICNl
bmRpZiAvKiBBVURJT19TVVBQT1JUICovCisgCSAgICByZXR1cm4gMDsKKyAKKyB9CisgCisg
CisgaW50CiAgYmt0cl9vcGVuKCBkZXZfdCBkZXYsIGludCBmbGFncywgaW50IGZtdCwgc3Ry
dWN0IHByb2MgKnAgKQogIHsKICAJYmt0cl9yZWdfdAkqYmt0cjsKISAJaW50CQl1bml0LCBt
aW5vcjsKICAJaW50CQlpOwogIAl2b2xhdGlsZSB1X2NoYXIJKmJ0ODQ4OwogIAl2b2xhdGls
ZSB1X2NoYXIJKmJ0X3JlZzsKICAJdm9sYXRpbGUgdV9sb25nCSpidGxfcmVnOwogIAogIAl1
bml0ID0gVU5JVChtaW5vcihkZXYpKTsKKyAJbWlub3IgPSBtaW5vcihkZXYpOworIAogIAlp
ZiAodW5pdCA+PSBOQktUUikJCQkvKiB1bml0IG91dCBvZiByYW5nZSAqLwogIAkJcmV0dXJu
KEVOWElPKTsKICAKKyAKICAJYmt0ciA9ICYoYnJvb2t0cmVlW3VuaXRdKTsKICAKICAJaWYg
KCEoYmt0ci0+ZmxhZ3MgJiBNRVRFT1JfSU5JVEFMSVpFRCkpIC8qIGRldmljZSBub3QgZm91
bmQgKi8KICAJCXJldHVybihFTlhJTyk7CQorIAlpZiAobWlub3IgIT0gMCApIHsKKyAjaWYg
ZGVmaW5lZCggQVVESU9fU1VQUE9SVCApCisgCSAgICBzZXRfYXVkaW8oIGJrdHIsIEFVRElP
X1VOTVVURSApOworIAkgICAgaWYgKCBjYXJkX3R5cGVzWyBia3RyLT5jYXJkX3R5cGUgXS5k
YnggKQorIAkJc2V0X0JUU0MoIGJrdHIsIDAgKTsJCS8qIGVuYWJsZSB0aGUgc3RlcmVvIGNo
aXAgKi8KKyAjZW5kaWYgLyogQVVESU9fU1VQUE9SVCAqLworIAl9CiAgCiAgI2lmIGRlZmlu
ZWQoIE1VTFRJUExFX09QRU5TICkKICAJaWYgKGJrdHItPmZsYWdzICYgTUVURU9SX09QRU4p
CQkvKiBkZXZpY2UgYWxyZWFkeSBvcGVuICovCioqKioqKioqKioqKioqKgoqKiogNzM2LDc0
MSAqKioqCi0tLSA3NjksNzkzIC0tLS0KICAvKgogICAqIAogICAqLworIC8qIHR1bmVyIGNs
b3NlIGhhbmRsZSAqLworIGludCAKKyB0dW5lcl9jbG9zZSggZGV2X3QgZGV2LCBpbnQgZmxh
Z3MsIGludCBmbXQsIHN0cnVjdCBwcm9jICpwICkgeworIAlpbnQJCXVuaXQ7CisgCWJrdHJf
cmVnX3QJKmJrdHI7CisgCXVuaXQgPSBVTklUKG1pbm9yKGRldikpOworIAlia3RyID0gJihi
cm9va3RyZWVbdW5pdF0pOworIAorIAkvKiBQbGFjZSBIb2xkZXIgZm9yIHR1bmVyIHNwZWNp
ZmljIG9wZXJhdGlvbnMgb24gYSBjbG9zZSAqLworICNpZiBkZWZpbmVkKCBBVURJT19TVVBQ
T1JUICkKKyAJLyogbXV0ZSB0aGUgYXVkaW8gYnkgc3dpdGNoaW5nIHRoZSBtdXggKi8KKyAJ
c2V0X2F1ZGlvKCBia3RyLCBBVURJT19NVVRFICk7CisgI2VuZGlmIC8qIEFVRElPX1NVUFBP
UlQgKi8KKyAKKyAKKyAJcmV0dXJuIDA7CisgfQorIAorIAogIGludAogIGJrdHJfY2xvc2Uo
IGRldl90IGRldiwgaW50IGZsYWdzLCBpbnQgZm10LCBzdHJ1Y3QgcHJvYyAqcCApCiAgewoq
KioqKioqKioqKioqKioKKioqIDc1MSw3NTYgKioqKgotLS0gODAzLDgxMSAtLS0tCiAgCXVu
aXQgPSBVTklUKG1pbm9yKGRldikpOwogIAlpZiAodW5pdCA+PSBOQktUUikJCQkvKiB1bml0
IG91dCBvZiByYW5nZSAqLwogIAkJcmV0dXJuKEVOWElPKTsKKyAJaWYgKG1pbm9yKGRldikg
IT0gMCApIHsKKyAJICAgIHJldHVybiB0dW5lcl9jbG9zZShkZXYsIGZsYWdzLCBmbXQsIHAp
OworIAl9CiAgCiAgCWJrdHIgPSAmKGJyb29rdHJlZVt1bml0XSk7CiAgCioqKioqKioqKioq
KioqKgoqKiogNzcxLDc4MiAqKioqCiAgCWJ0bF9yZWcgPSAodV9sb25nICopICZidDg0OFtC
S1RSX0lOVF9TVEFUXSA7CiAgCSpidGxfcmVnID0gMHhmZmZmZmZmZjsKICAKISAjaWYgZGVm
aW5lZCggQVVESU9fU1VQUE9SVCApCiEgCS8qIG11dGUgdGhlIGF1ZGlvIGJ5IHN3aXRjaGlu
ZyB0aGUgbXV4ICovCiEgCXNldF9hdWRpbyggYmt0ciwgQVVESU9fTVVURSApOwohICNlbmRp
ZiAvKiBBVURJT19TVVBQT1JUICovCiEgCiEgCXJldHVybigwKTsKICB9CiAgCiAgCi0tLSA4
MjYsODMyIC0tLS0KICAJYnRsX3JlZyA9ICh1X2xvbmcgKikgJmJ0ODQ4W0JLVFJfSU5UX1NU
QVRdIDsKICAJKmJ0bF9yZWcgPSAweGZmZmZmZmZmOwogIAohIAlyZXR1cm4gdHVuZXJfY2xv
c2UgKCAgZGV2LCBmbGFncywgIGZtdCwgIHAgKTsKICB9CiAgCiAgCioqKioqKioqKioqKioq
KgoqKiogNzkyLDc5OCAqKioqCiAgCWludAkJY291bnQ7CiAgCXZvbGF0aWxlIHVfY2hhciAq
YnQ4NDg7CiAgCXVfc2hvcnQJCSpidHNfcmVnOwohIAogIAl1bml0ID0gVU5JVChtaW5vcihk
ZXYpKTsKICAJaWYgKHVuaXQgPj0gTkJLVFIpCS8qIHVuaXQgb3V0IG9mIHJhbmdlICovCiAg
CQlyZXR1cm4oRU5YSU8pOwotLS0gODQyLDg0OSAtLS0tCiAgCWludAkJY291bnQ7CiAgCXZv
bGF0aWxlIHVfY2hhciAqYnQ4NDg7CiAgCXVfc2hvcnQJCSpidHNfcmVnOwohIAkKISAJaWYg
KG1pbm9yKGRldikgPiAwICkgcmV0dXJuKEVOWElPKTsKICAJdW5pdCA9IFVOSVQobWlub3Io
ZGV2KSk7CiAgCWlmICh1bml0ID49IE5CS1RSKQkvKiB1bml0IG91dCBvZiByYW5nZSAqLwog
IAkJcmV0dXJuKEVOWElPKTsKKioqKioqKioqKioqKioqCioqKiA4MzksODc3ICoqKioKICB9
CiAgCiAgCiEgLyoKISAgKiAKISAgKi8KICBpbnQKISBia3RyX2lvY3RsKCBkZXZfdCBkZXYs
IGludCBjbWQsIGNhZGRyX3QgYXJnLCBpbnQgZmxhZywgc3RydWN0IHByb2MgKnByICkKICB7
CiAgCWJrdHJfcmVnX3QJCSpia3RyOwogIAlpbnQJCQl1bml0OwogIAlpbnQJCQlzdGF0dXM7
CiEgCWludAkJCWNvdW50OwohIAlpbnQJCQl0bXBfaW50OwohIAl2b2xhdGlsZSB1X2NoYXIJ
CSpidDg0OCwgY190ZW1wOwohIAl2b2xhdGlsZSB1X3Nob3J0CSpidHNfcmVnLCBzX3RlbXA7
CiEgCXZvbGF0aWxlIHVfbG9uZwkJKmJ0bF9yZWc7CiEgCXVuc2lnbmVkIGludAkJdGVtcCwg
dGVtcDE7CiAgCXVuc2lnbmVkIGludAkJZXJyb3I7Ci0gCXN0cnVjdCBtZXRlb3JfZ2VvbWV0
CSpnZW87Ci0gCXN0cnVjdCBtZXRlb3JfY291bnRzCSpjbnQ7Ci0gCXN0cnVjdCBtZXRlb3Jf
dmlkZW8JKnZpZGVvOwotIAl2bV9vZmZzZXRfdAkJYnVmOwogIAogIAl1bml0ID0gVU5JVCht
aW5vcihkZXYpKTsKICAJaWYgKHVuaXQgPj0gTkJLVFIpCS8qIHVuaXQgb3V0IG9mIHJhbmdl
ICovCiAgCQlyZXR1cm4oRU5YSU8pOwogIAogIAotIAlia3RyID0gJihicm9va3RyZWVbdW5p
dF0pOwotIAlpZiAoYmt0ci0+YmlnYnVmID09IDApCS8qIG5vIGZyYW1lIGJ1ZmZlciBhbGxv
Y2F0ZWQgKGlvY3RsIGZhaWxlZCkgKi8KLSAJCXJldHVybihFTk9NRU0pOwogIAogIAlidDg0
OCA9CSBia3RyLT5iYXNlOwotIAlzd2l0Y2ggKGNtZCkgewogIAogIAljYXNlIFRWVFVORVJf
U0VUQ0hOTDoKICAjaWYgZGVmaW5lZCggQVVESU9fU1VQUE9SVCApCiAgCQlzZXRfYXVkaW8o
IGJrdHIsIEFVRElPX01VVEUgKTsKLS0tIDg5MCw5MTcgLS0tLQogIH0KICAKICAKISAvKiB0
dW5lciBpb2N0bHMgKi8KISAKICBpbnQKISB0dW5lcl9pb2N0bCggZGV2X3QgZGV2LCBpbnQg
Y21kLCBjYWRkcl90IGFyZywgaW50IGZsYWcsIHN0cnVjdCBwcm9jICpwciApCiAgewogIAli
a3RyX3JlZ190CQkqYmt0cjsKICAJaW50CQkJdW5pdDsKICAJaW50CQkJc3RhdHVzOwohIAl2
b2xhdGlsZSB1X2NoYXIJCSpidDg0ODsKISAJdW5zaWduZWQgaW50CQl0ZW1wOwogIAl1bnNp
Z25lZCBpbnQJCWVycm9yOwogIAogIAl1bml0ID0gVU5JVChtaW5vcihkZXYpKTsKICAJaWYg
KHVuaXQgPj0gTkJLVFIpCS8qIHVuaXQgb3V0IG9mIHJhbmdlICovCiAgCQlyZXR1cm4oRU5Y
SU8pOwogIAogIAogIAorIAlia3RyID0gJihicm9va3RyZWVbdW5pdF0pOwogIAlidDg0OCA9
CSBia3RyLT5iYXNlOwogIAorIAlzd2l0Y2ggKGNtZCkgewogIAljYXNlIFRWVFVORVJfU0VU
Q0hOTDoKICAjaWYgZGVmaW5lZCggQVVESU9fU1VQUE9SVCApCiAgCQlzZXRfYXVkaW8oIGJr
dHIsIEFVRElPX01VVEUgKTsKKioqKioqKioqKioqKioqCioqKiA5MjEsOTI4ICoqKioKICAJ
Y2FzZSBUVlRVTkVSX0dFVEZSRVE6CiAgCQkqKHVuc2lnbmVkIGxvbmcgKilhcmcgPSBia3Ry
LT50dW5lci5mcmVxdWVuY3k7CiAgCQlicmVhazsKICAKISAJY2FzZSBNRVRFT1JTVEFUVVM6
CS8qIGdldCA3MTk2IHN0YXR1cyAqLwogIAkJY190ZW1wID0gYnQ4NDhbMF07CiAgCQl0ZW1w
ID0gMDsKICAJCWlmICghKGNfdGVtcCAmIDB4NDApKSB0ZW1wIHw9IE1FVEVPUl9TVEFUVVNf
SENMSzsKLS0tIDk2MSwxMDMwIC0tLS0KICAJY2FzZSBUVlRVTkVSX0dFVEZSRVE6CiAgCQkq
KHVuc2lnbmVkIGxvbmcgKilhcmcgPSBia3RyLT50dW5lci5mcmVxdWVuY3k7CiAgCQlicmVh
azsKKyAjaWYgZGVmaW5lZCggQVVESU9fU1VQUE9SVCApCisgCWNhc2UgQlQ4NDhfU0FVRElP
OgkvKiBzZXQgYXVkaW8gY2hhbm5lbCAqLworIAkJaWYgKCBzZXRfYXVkaW8oIGJrdHIsICoo
aW50KilhcmcgKSA8IDAgKQorIAkJCXJldHVybiBFSU87CisgCQlicmVhazsKICAKISAJY2Fz
ZSBCVDg0OF9HQVVESU86CS8qIGdldCBhdWRpbyBjaGFubmVsICovCiEgCQl0ZW1wID0gYmt0
ci0+YXVkaW9fbXV4X3NlbGVjdDsKISAJCWlmICggYmt0ci0+YXVkaW9fbXV0ZV9zdGF0ZSA9
PSBUUlVFICkKISAJCQl0ZW1wIHw9IEFVRElPX01VVEU7CiEgCQkqKGludCopYXJnID0gdGVt
cDsKISAJCWJyZWFrOwohIAohIAljYXNlIEJUODQ4X1NCVFNDOgkvKiBzZXQgYXVkaW8gY2hh
bm5lbCAqLwohIAkJaWYgKCBzZXRfQlRTQyggYmt0ciwgKihpbnQqKWFyZyApIDwgMCApCiEg
CQkJcmV0dXJuIEVJTzsKISAJCWJyZWFrOwohICNlbmRpZiAvKiBBVURJT19TVVBQT1JUICov
CiEgCWRlZmF1bHQ6CiEgCQlyZXR1cm4gRU5PREVWOwohIAkgICAgCiEgCX0KISAKISAJcmV0
dXJuIDA7CiEgfQohIAohIC8qCiEgICogCiEgICovCiEgaW50CiEgYmt0cl9pb2N0bCggZGV2
X3QgZGV2LCBpbnQgY21kLCBjYWRkcl90IGFyZywgaW50IGZsYWcsIHN0cnVjdCBwcm9jICpw
ciApCiEgewohIAlia3RyX3JlZ190CQkqYmt0cjsKISAJaW50CQkJdW5pdDsKISAJaW50CQkJ
c3RhdHVzOwohIAlpbnQJCQljb3VudDsKISAJaW50CQkJdG1wX2ludDsKISAJdm9sYXRpbGUg
dV9jaGFyCQkqYnQ4NDgsIGNfdGVtcDsKISAJdm9sYXRpbGUgdV9zaG9ydAkqYnRzX3JlZywg
c190ZW1wOwohIAl2b2xhdGlsZSB1X2xvbmcJCSpidGxfcmVnOwohIAl1bnNpZ25lZCBpbnQJ
CXRlbXAsIHRlbXAxOwohIAl1bnNpZ25lZCBpbnQJCWVycm9yOwohIAlzdHJ1Y3QgbWV0ZW9y
X2dlb21ldAkqZ2VvOwohIAlzdHJ1Y3QgbWV0ZW9yX2NvdW50cwkqY250OwohIAlzdHJ1Y3Qg
bWV0ZW9yX3ZpZGVvCSp2aWRlbzsKISAJdm1fb2Zmc2V0X3QJCWJ1ZjsKISAKISAJdW5pdCA9
IFVOSVQobWlub3IoZGV2KSk7CiEgCWlmICh1bml0ID49IE5CS1RSKQkvKiB1bml0IG91dCBv
ZiByYW5nZSAqLwohIAkJcmV0dXJuKEVOWElPKTsKISAKISAJaWYgKG1pbm9yKGRldikgPiAw
ICkgewohIAkgICByZXR1cm4gIHR1bmVyX2lvY3RsKG1pbm9yKGRldiksIGNtZCwgYXJnLCBm
bGFnLCBwcik7CiEgCX0KISAKISAKISAJYmt0ciA9ICYoYnJvb2t0cmVlW3VuaXRdKTsKISAJ
aWYgKGJrdHItPmJpZ2J1ZiA9PSAwKQkvKiBubyBmcmFtZSBidWZmZXIgYWxsb2NhdGVkIChp
b2N0bCBmYWlsZWQpICovCiEgCQlyZXR1cm4oRU5PTUVNKTsKISAKISAJYnQ4NDggPQkgYmt0
ci0+YmFzZTsKISAJc3dpdGNoIChjbWQpIHsKISAKISAJY2FzZSBNRVRFT1JTVEFUVVM6CS8q
IGdldCBCdDg0OCAgc3RhdHVzICovCiAgCQljX3RlbXAgPSBidDg0OFswXTsKICAJCXRlbXAg
PSAwOwogIAkJaWYgKCEoY190ZW1wICYgMHg0MCkpIHRlbXAgfD0gTUVURU9SX1NUQVRVU19I
Q0xLOwoqKioqKioqKioqKioqKioKKioqIDEyMjksMTI1MyAqKioqCiAgCQlidDg0OFtCS1RS
X0NPTE9SX0NUTF0gJj0gfjB4NDA7CiAgCQlicmVhazsKICAKLSAjaWYgZGVmaW5lZCggQVVE
SU9fU1VQUE9SVCApCi0gCWNhc2UgQlQ4NDhfU0FVRElPOgkvKiBzZXQgYXVkaW8gY2hhbm5l
bCAqLwotIAkJaWYgKCBzZXRfYXVkaW8oIGJrdHIsICooaW50KilhcmcgKSA8IDAgKQotIAkJ
CXJldHVybiBFSU87Ci0gCQlicmVhazsKLSAKLSAJY2FzZSBCVDg0OF9HQVVESU86CS8qIGdl
dCBhdWRpbyBjaGFubmVsICovCi0gCQl0ZW1wID0gYmt0ci0+YXVkaW9fbXV4X3NlbGVjdDsK
LSAJCWlmICggYmt0ci0+YXVkaW9fbXV0ZV9zdGF0ZSA9PSBUUlVFICkKLSAJCQl0ZW1wIHw9
IEFVRElPX01VVEU7Ci0gCQkqKGludCopYXJnID0gdGVtcDsKLSAJCWJyZWFrOwotIAotIAlj
YXNlIEJUODQ4X1NCVFNDOgkvKiBzZXQgYXVkaW8gY2hhbm5lbCAqLwotIAkJaWYgKCBzZXRf
QlRTQyggYmt0ciwgKihpbnQqKWFyZyApIDwgMCApCi0gCQkJcmV0dXJuIEVJTzsKLSAJCWJy
ZWFrOwotICNlbmRpZiAvKiBBVURJT19TVVBQT1JUICovCi0gCiAgCWNhc2UgTUVURU9SU1NJ
R05BTDoKICAJCWJrdHItPnNpZ25hbCA9ICooaW50ICopIGFyZzsKICAJCWJrdHItPnByb2Mg
PSBwcjsKLS0tIDEzMzEsMTMzNiAtLS0tCioqKioqKioqKioqKioqKgoqKiogMTU0NiwxNTUz
ICoqKioKICAKICAJdW5pdCA9IFVOSVQobWlub3IoZGV2KSk7CiAgCiEgCWlmICh1bml0ID49
IE5CS1RSKQkJLyogYXQgdGhpcyBwb2ludCBjb3VsZCB0aGlzIGhhcHBlbj8gKi8KICAJCXJl
dHVybigtMSk7CiAgCiAgCWJrdHIgPSAmKGJyb29rdHJlZVt1bml0XSk7CiAgCi0tLSAxNjI5
LDE2MzcgLS0tLQogIAogIAl1bml0ID0gVU5JVChtaW5vcihkZXYpKTsKICAKISAJaWYgKHVu
aXQgPj0gTkJLVFIgfHwgbWlub3IoZGV2KSA+IDAgKQkvKiBhdCB0aGlzIHBvaW50IGNvdWxk
IHRoaXMgaGFwcGVuPyAqLwogIAkJcmV0dXJuKC0xKTsKKyAKICAKICAJYmt0ciA9ICYoYnJv
b2t0cmVlW3VuaXRdKTsKICAK

--===_0_Sat_Mar_22_16:21:48_PST_1997--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703230024.QAA00352>