ps2 keyboard filter hook

ddstreet@us.ibm.com
Fri, 15 Jun 2001 16:03:32 -0400 (EDT)


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.

--1124691196-729784957-992631837=:25518
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.10106151504471.26477@ddstreet.raleigh.ibm.com>

IBM Retail Store Solutions dept has certain PS/2 keyboards which extend the
standard PS/2 specification in order to support addition hardware built into the
keyboard (such as a Magnetic Strip Reader, Keylock, Tone generator, extra keys,
extra LEDs, etc). This addition hardware behaves in a manner that makes it
unusable if driven by a standard PS/2 driver (sadly, due to the fact that its
design is "IP" I can't elaborate on how or why it is incompatible with the
standard PS/2 specification).

In order to use these keyboards, a the standard PS/2 driver needs to behave a
bit differently; thus attached is a modifcation to the PS/2 driver which allows
other drivers to register with the PS/2 driver as 'filters'. There is a
arbitrary max number of 'filters' set to 1, which is a compile-time define.
The registered drivers are called (in order of registration) for every scancode,
and they may change or consume the scancode (or allow it to pass). Also the
'filters' are given a function to send an variable-sized buffer to the keyboard
output port; this function is synchronized using a semaphore which also
coordinates with pckbd_leds().

-Dan

--1124691196-729784957-992631837=:25518
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=patch-ps2filter
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10106151503570.25518@ddstreet.raleigh.ibm.com>
Content-Description: patch-ps2filter
Content-Disposition: ATTACHMENT; FILENAME=patch-ps2filter

ZGlmZiAtdXJOIDIuNC41LWNsZWFuL0RvY3VtZW50YXRpb24vQ29uZmlndXJl
LmhlbHAgbGludXgvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscA0KLS0t
IDIuNC41LWNsZWFuL0RvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAJVGh1
IE1heSAyNCAxODowMzowNiAyMDAxDQorKysgbGludXgvRG9jdW1lbnRhdGlv
bi9Db25maWd1cmUuaGVscAlGcmkgSnVuIDE1IDEzOjM0OjE4IDIwMDENCkBA
IC0xMzI3NCw2ICsxMzI3NCwyMSBAQA0KICAgSWYgeW91IGFyZSB1bnN1cmUs
IHNheSBOIGFuZCByZWFkIHRoZSBIT1dUTyBuZXZlcnRoZWxlc3M6IGl0IHdp
bGwNCiAgIHRlbGwgeW91IHdoYXQgeW91IGhhdmUuDQogDQorUFMvMiBLZXli
b2FyZCBGaWx0ZXIgc3VwcG9ydA0KK0NPTkZJR19QQ19LRVlCX0ZJTFRFUg0K
KyAgVGhpcyBlbmFibGVzIGZpbHRlciBzdXBwb3J0IGluIHRoZSBQUy8yIGtl
eWJvYXJkIGRyaXZlci4gIFdpdGgNCisgIHRoaXMgZW5hYmxlZCwgb3RoZXIg
ZHJpdmVycyB3aWxsIGJlIGFibGUgdG8gcmVnaXN0ZXIgd2l0aCB0aGUNCisg
IFBTLzIgZHJpdmVyIGFuZCBmaWx0ZXIgYWxsIGluY29taW5nIHNjYW5jb2Rl
cy4gIFRoaXMgaXMgdXNlZnVsDQorICBmb3Iga2V5Ym9hcmRzIHdoaWNoIGV4
dGVuZCB0aGUgUFMvMiBrZXlib2FyZCBzdGFuZGFyZCB3aXRoDQorICBub24t
c3RhbmRhcmQgc2NhbmNvZGVzIHdoaWNoIHNob3VsZCBub3QgYmUgbm9ybWFs
bHkgcm91dGVkIHRvDQorICB0aGUgY3VycmVudCBjb25zb2xlLg0KKw0KKyAg
VGhpcyBvcHRpb24gZG9lcyBub3QgYWN0dWFsbHkgZmlsdGVyIGFueSBzY2Fu
Y29kZXMsIGl0IG9ubHkNCisgIGFsbG93cyBvdGhlciBkcml2ZXJzICh3aG8g
d2lsbCBkbyB0aGUgZmlsdGVyaW5nKSB0byByZWdpc3Rlcg0KKyAgd2l0aCB0
aGUgUFMvMiBkcml2ZXIuDQorDQorICBJZiB1bnN1cmUsIHNheSBOLg0KKw0K
IFFJQy0wMiB0YXBlIHN1cHBvcnQNCiBDT05GSUdfUUlDMDJfVEFQRQ0KICAg
SWYgeW91IGhhdmUgYSBub24tU0NTSSB0YXBlIGRyaXZlIGxpa2UgdGhhdCwg
c2F5IFkuIE9yLCBpZiB5b3Ugd2FudA0KZGlmZiAtdXJOIDIuNC41LWNsZWFu
L2RyaXZlcnMvY2hhci9Db25maWcuaW4gbGludXgvZHJpdmVycy9jaGFyL0Nv
bmZpZy5pbg0KLS0tIDIuNC41LWNsZWFuL2RyaXZlcnMvY2hhci9Db25maWcu
aW4JVHVlIE1hciAgNiAyMjo0NDozNCAyMDAxDQorKysgbGludXgvZHJpdmVy
cy9jaGFyL0NvbmZpZy5pbglGcmkgSnVuIDE1IDEzOjM0OjE4IDIwMDENCkBA
IC0xMDUsNiArMTA1LDExIEBADQogDQogc291cmNlIGRyaXZlcnMvY2hhci9q
b3lzdGljay9Db25maWcuaW4NCiANCittYWlubWVudV9vcHRpb24gbmV4dF9j
b21tZW50DQorY29tbWVudCAnS2V5Ym9hcmRzJw0KK2Jvb2wgJ1BTLzIgS2V5
Ym9hcmQgRmlsdGVyIHN1cHBvcnQnIENPTkZJR19QQ19LRVlCX0ZJTFRFUg0K
K2VuZG1lbnUNCisNCiB0cmlzdGF0ZSAnUUlDLTAyIHRhcGUgc3VwcG9ydCcg
Q09ORklHX1FJQzAyX1RBUEUNCiBpZiBbICIkQ09ORklHX1FJQzAyX1RBUEUi
ICE9ICJuIiBdOyB0aGVuDQogICAgYm9vbCAnICBEbyB5b3Ugd2FudCBydW50
aW1lIGNvbmZpZ3VyYXRpb24gZm9yIFFJQy0wMicgQ09ORklHX1FJQzAyX0RZ
TkNPTkYNCmRpZmYgLXVyTiAyLjQuNS1jbGVhbi9kcml2ZXJzL2NoYXIvTWFr
ZWZpbGUgbGludXgvZHJpdmVycy9jaGFyL01ha2VmaWxlDQotLS0gMi40LjUt
Y2xlYW4vZHJpdmVycy9jaGFyL01ha2VmaWxlCVdlZCBNYXkgMTYgMTM6Mjc6
MDIgMjAwMQ0KKysrIGxpbnV4L2RyaXZlcnMvY2hhci9NYWtlZmlsZQlGcmkg
SnVuIDE1IDEzOjM0OjE4IDIwMDENCkBAIC0yMSw3ICsyMSw3IEBADQogIyBB
bGwgb2YgdGhlIChwb3RlbnRpYWwpIG9iamVjdHMgdGhhdCBleHBvcnQgc3lt
Ym9scy4NCiAjIFRoaXMgbGlzdCBjb21lcyBmcm9tICdncmVwIC1sIEVYUE9S
VF9TWU1CT0wgKi5baGNdJy4NCiANCi1leHBvcnQtb2JqcyAgICAgOj0JYnVz
bW91c2UubyBjb25zb2xlLm8ga2V5Ym9hcmQubyBzeXNycS5vIFwNCitleHBv
cnQtb2JqcyAgICAgOj0JYnVzbW91c2UubyBjb25zb2xlLm8ga2V5Ym9hcmQu
byBwY19rZXliLm8gc3lzcnEubyBcDQogCQkJbWlzYy5vIHB0eS5vIHJhbmRv
bS5vIHNlbGVjdGlvbi5vIHNlcmlhbC5vIFwNCiAJCQl0dHlfaW8ubw0KIA0K
ZGlmZiAtdXJOIDIuNC41LWNsZWFuL2RyaXZlcnMvY2hhci9wY19rZXliLmMg
bGludXgvZHJpdmVycy9jaGFyL3BjX2tleWIuYw0KLS0tIDIuNC41LWNsZWFu
L2RyaXZlcnMvY2hhci9wY19rZXliLmMJRnJpIEFwciAgNiAxMzo0Mjo1NSAy
MDAxDQorKysgbGludXgvZHJpdmVycy9jaGFyL3BjX2tleWIuYwlGcmkgSnVu
IDE1IDEzOjM0OjE4IDIwMDENCkBAIC0xMyw2ICsxMywxMSBAQA0KICAqIENv
ZGUgZml4ZXMgdG8gaGFuZGxlIG1vdXNlIEFDS3MgcHJvcGVybHkuDQogICog
Qy4gU2NvdHQgQW5hbmlhbiA8Y2FuYW5pYW5AYWx1bW5pLnByaW5jZXRvbi5l
ZHU+IDE5OTktMDEtMjkuDQogICoNCisgKiBBZGRlZCBvcHRpb25hbCBzY2Fu
Y29kZSBmaWx0ZXJpbmcsIHVzZWQgaW4ga2V5Ym9hcmRzIHdoaWNoDQorICog
KGluY29tcGF0aWJseSkgZXh0ZW5kIHRoZSBzdGFuZGFyZCBQUy8yIHNwZWNp
ZmljYXRpb24uDQorICogQWxzbyBhZGRlZCBzeW5jaHJvbml6ZWQgb3V0cHV0
IHdyaXRpbmcgdXNpbmcgYSBzZW1hcGhvcmUuDQorICogRGFuIFN0cmVldG1h
biA8ZGRzdHJlZXRAdXMuaWJtLmNvbT4gMjAwMS0wMy0xNA0KKyAqDQogICov
DQogDQogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPg0KQEAgLTMyLDYgKzM3
LDcgQEANCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxs
aW51eC9rYmRfa2Vybi5oPg0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5o
Pg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiANCiAjaW5jbHVkZSA8
YXNtL2tleWJvYXJkLmg+DQogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4NCkBA
IC02MCw2ICs2Niw3IEBADQogDQogc3RhdGljIHZvaWQga2JkX3dyaXRlX2Nv
bW1hbmRfdyhpbnQgZGF0YSk7DQogc3RhdGljIHZvaWQga2JkX3dyaXRlX291
dHB1dF93KGludCBkYXRhKTsNCitzdGF0aWMgdm9pZCBrYl93YWl0KHZvaWQp
Ow0KICNpZmRlZiBDT05GSUdfUFNNT1VTRQ0KIHN0YXRpYyB2b2lkIGF1eF93
cml0ZV9hY2soaW50IHZhbCk7DQogc3RhdGljIHZvaWQgX19hdXhfd3JpdGVf
YWNrKGludCB2YWwpOw0KQEAgLTY4LDcgKzc1LDcgQEANCiBzdGF0aWMgc3Bp
bmxvY2tfdCBrYmRfY29udHJvbGxlcl9sb2NrID0gU1BJTl9MT0NLX1VOTE9D
S0VEOw0KIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGhhbmRsZV9rYmRfZXZlbnQo
dm9pZCk7DQogDQotLyogdXNlZCBvbmx5IGJ5IHNlbmRfZGF0YSAtIHNldCBi
eSBrZXlib2FyZF9pbnRlcnJ1cHQgKi8NCisvKiB1c2VkIGJ5IHNlbmRfZGF0
YSBhbmQgc2VuZF9kYXRhX2J1ZmZlciAtIHNldCBieSBrZXlib2FyZF9pbnRl
cnJ1cHQgKi8NCiBzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgY2hhciByZXBs
eV9leHBlY3RlZDsNCiBzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgY2hhciBh
Y2tub3dsZWRnZTsNCiBzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgY2hhciBy
ZXNlbmQ7DQpAQCAtOTQsNiArMTAxLDEwNCBAQA0KICNkZWZpbmUgTUFYX1JF
VFJJRVMJNjAJCS8qIHNvbWUgYXV4IG9wZXJhdGlvbnMgdGFrZSBsb25nIHRp
bWUqLw0KICNlbmRpZiAvKiBDT05GSUdfUFNNT1VTRSAqLw0KIA0KKyNpZmRl
ZiBDT05GSUdfUENfS0VZQl9GSUxURVINCisvKiBVc2UgYW4gYXJyYXkgKGlu
c3RlYWQgb2YgYSBsaW5rZWQgbGlzdCkgdG8gc2F2ZSB0aW1lIGluX2ludGVy
cnVwdCgpICovDQorc3RhdGljIHN0cnVjdCBwY19rZXliX2ZpbHRlciAqZmls
dGVyc1tQQ19LRVlCX01BWF9GSUxURVJTXTsNCitzdGF0aWMgaW50IG51bV9m
aWx0ZXJzID0gMDsNCisNCitzdGF0aWMgREVDTEFSRV9NVVRFWChrYmRfb3V0
cHV0X3NlbWEpOw0KK3N0YXRpYyBzcGlubG9ja190IHBjX2tleWJfZmlsdGVy
X2xvY2sgPSBTUElOX0xPQ0tfVU5MT0NLRUQ7DQorDQorc3RhdGljIGludCBz
ZW5kX2RhdGFfYnVmZmVyKCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIHVuc2ln
bmVkIGludCBsZW4sIHVuc2lnbmVkIGludCAqeGZlcnJlZCwgdW5zaWduZWQg
aW50IHJldHJpZXMsIHVuc2lnbmVkIGludCB0aW1lb3V0ICkNCit7DQorCWNv
bnN0IHVuc2lnbmVkIGludCB0aW1lb3V0X2ppZmZpZXMgPSAoICh0aW1lb3V0
ICogSFopICsgOTk5ICkgLyAxMDAwOw0KKwlpbnQgaTsNCisJdW5zaWduZWQg
aW50IHhmZXIgPSAwOw0KKw0KKwlpZiAoeGZlcnJlZCkgKnhmZXJyZWQgPSAw
Ow0KKw0KKwlpZiAoZG93bl9pbnRlcnJ1cHRpYmxlKCZrYmRfb3V0cHV0X3Nl
bWEpKQ0KKwkJcmV0dXJuIC1FSU5UUjsNCisJZm9yIChpPTA7IGk8bGVuOyBp
KyspIHsNCisJCWRvIHsNCisJCQl0aW1lb3V0ID0gdGltZW91dF9qaWZmaWVz
Ow0KKwkJCWFja25vd2xlZGdlID0gcmVzZW5kID0gMDsNCisJCQlyZXBseV9l
eHBlY3RlZCA9IDE7DQorCQkJa2JkX3dyaXRlX291dHB1dF93KCAoaW50KWJ1
ZmZlcltpXSApOw0KKwkJCXdoaWxlICh0aW1lb3V0LS0gJiYgIXJlc2VuZCAm
JiAhYWNrbm93bGVkZ2UpIHsNCisJCQkJc2V0X2N1cnJlbnRfc3RhdGUoVEFT
S19JTlRFUlJVUFRJQkxFKTsNCisJCQkJaWYgKHNjaGVkdWxlX3RpbWVvdXQo
MSkgJiYgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsNCisJCQkJCXNldF9j
dXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7DQorCQkJCQl1cCgma2JkX291
dHB1dF9zZW1hKTsNCisJCQkJCXJldHVybiAtRUlOVFI7DQorCQkJCX0NCisJ
CQkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsNCisJCQl9DQor
I2lmZGVmIEtCRF9SRVBPUlRfVElNRU9VVFMNCisJCQlpZiAoMCA+PSB0aW1l
b3V0KQ0KKwkJCQlwcmludGsoIF9fRklMRV9fICI6IFRpbWVvdXQgLSBBVCBr
ZXlib2FyZCBub3QgcHJlc2VudD9cbiIgKTsNCisjZW5kaWYNCisJCX0gd2hp
bGUgKHJldHJpZXMtLSAmJiAhYWNrbm93bGVkZ2UgJiYgcmVzZW5kKTsNCisJ
CWlmIChhY2tub3dsZWRnZSkgew0KKwkJCXhmZXIrKzsNCisJCQlpZiAoeGZl
cnJlZCkgKnhmZXJyZWQgPSB4ZmVyOw0KKwkJfSBlbHNlIHsNCisjaWZkZWYg
S0JEX1JFUE9SVF9USU1FT1VUUw0KKwkJCWlmIChyZXNlbmQpDQorCQkJCXBy
aW50ayggX19GSUxFX18gIjogVG9vIG1hbnkgTkFDS3MgLSBOb2lzeSBrZXli
b2FyZCBjYWJsZT9cbiIgKTsNCisjZW5kaWYNCisJCQlicmVhazsNCisJCX0N
CisJfQ0KKwl1cCgma2JkX291dHB1dF9zZW1hKTsNCisNCisJcmV0dXJuIGxl
biA9PSB4ZmVyID8gMCA6IC1FVElNRURPVVQ7DQorfQ0KKyNlbmRpZiAvKiBD
T05GSUdfUENfS0VZQl9GSUxURVIgKi8NCisNCitpbnQgcmVnaXN0ZXJfcGNf
a2V5Yl9maWx0ZXIoIHN0cnVjdCBwY19rZXliX2ZpbHRlciAqZmlsdGVyICkN
Cit7DQorI2lmZGVmIENPTkZJR19QQ19LRVlCX0ZJTFRFUg0KKwl1bnNpZ25l
ZCBsb25nIGZsYWdzOw0KKwlpbnQgcmV0dmFsID0gMDsNCisNCisJc3Bpbl9s
b2NrX2lycXNhdmUoJnBjX2tleWJfZmlsdGVyX2xvY2ssIGZsYWdzKTsNCisJ
aWYgKFBDX0tFWUJfTUFYX0ZJTFRFUlMgPiBudW1fZmlsdGVycykgew0KKwkJ
ZmlsdGVyc1tudW1fZmlsdGVycysrXSA9IGZpbHRlcjsNCisJCWZpbHRlci0+
d3JpdGVfZGF0YSA9IHNlbmRfZGF0YV9idWZmZXI7DQorCX0gZWxzZSB7DQor
CQlyZXR2YWwgPSAtRURRVU9UOw0KKwl9DQorCXNwaW5fdW5sb2NrX2lycXJl
c3RvcmUoJnBjX2tleWJfZmlsdGVyX2xvY2ssIGZsYWdzKTsNCisJcmV0dXJu
IHJldHZhbDsNCisjZWxzZQ0KKwlyZXR1cm4gLUVOT1NZUzsNCisjZW5kaWYN
Cit9DQorDQordm9pZCB1bnJlZ2lzdGVyX3BjX2tleWJfZmlsdGVyKCBzdHJ1
Y3QgcGNfa2V5Yl9maWx0ZXIgKmZpbHRlciApDQorew0KKyNpZmRlZiBDT05G
SUdfUENfS0VZQl9GSUxURVINCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisJ
aW50IGksIGZvdW5kID0gMDsNCisNCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBj
X2tleWJfZmlsdGVyX2xvY2ssIGZsYWdzKTsNCisJZmlsdGVyLT53cml0ZV9k
YXRhID0gTlVMTDsNCisJZm9yIChpPTA7IGk8bnVtX2ZpbHRlcnM7IGkrKykg
ew0KKwkJaWYgKGZpbHRlcnNbaV0gPT0gZmlsdGVyKQ0KKwkJCWZvdW5kID0g
MTsNCisJCWlmIChmb3VuZCAmJiBpKzE8UENfS0VZQl9NQVhfRklMVEVSUykN
CisJCQlmaWx0ZXJzW2ldID0gZmlsdGVyc1tpKzFdOw0KKwl9DQorCWlmIChm
b3VuZCkNCisJCWZpbHRlcnNbbnVtX2ZpbHRlcnMtLV0gPSBOVUxMOw0KKwlz
cGluX3VubG9ja19pcnFyZXN0b3JlKCZwY19rZXliX2ZpbHRlcl9sb2NrLCBm
bGFncyk7DQorI2VuZGlmDQorfQ0KKw0KK0VYUE9SVF9TWU1CT0wocmVnaXN0
ZXJfcGNfa2V5Yl9maWx0ZXIpOw0KK0VYUE9SVF9TWU1CT0wodW5yZWdpc3Rl
cl9wY19rZXliX2ZpbHRlcik7DQorDQogLyoNCiAgKiBXYWl0IGZvciBrZXli
b2FyZCBjb250cm9sbGVyIGlucHV0IGJ1ZmZlciB0byBkcmFpbi4NCiAgKg0K
QEAgLTQyOCw2ICs1MzMsMTggQEANCiANCiBzdGF0aWMgaW5saW5lIHZvaWQg
aGFuZGxlX2tleWJvYXJkX2V2ZW50KHVuc2lnbmVkIGNoYXIgc2NhbmNvZGUp
DQogew0KKyNpZmRlZiBDT05GSUdfUENfS0VZQl9GSUxURVINCisJaW50IGk7
DQorDQorCXNwaW5fbG9jaygmcGNfa2V5Yl9maWx0ZXJfbG9jayk7DQorCWZv
ciAoaT0wOyBpPG51bV9maWx0ZXJzOyBpKyspIHsNCisJCWlmIChmaWx0ZXJz
W2ldLT5maWx0ZXJfc2NhbmNvZGUoICZzY2FuY29kZSApKSB7DQorCQkJc3Bp
bl91bmxvY2soJnBjX2tleWJfZmlsdGVyX2xvY2spOw0KKwkJCXJldHVybjsN
CisJCX0NCisJfQ0KKwlzcGluX3VubG9jaygmcGNfa2V5Yl9maWx0ZXJfbG9j
ayk7DQorI2VuZGlmIC8qIENPTkZJR19QQ19LRVlCX0ZJTFRFUiAqLw0KICNp
ZmRlZiBDT05GSUdfVlQNCiAJa2JkX2V4aXN0cyA9IDE7DQogCWlmIChkb19h
Y2tub3dsZWRnZShzY2FuY29kZSkpDQpAQCAtNTI3LDEwICs2NDQsMTcgQEAN
CiANCiB2b2lkIHBja2JkX2xlZHModW5zaWduZWQgY2hhciBsZWRzKQ0KIHsN
CisjaWZkZWYgQ09ORklHX1BDX0tFWUJfRklMVEVSDQorCWlmIChkb3duX2lu
dGVycnVwdGlibGUoJmtiZF9vdXRwdXRfc2VtYSkpDQorCQlyZXR1cm47DQor
I2VuZGlmDQogCWlmIChrYmRfZXhpc3RzICYmICghc2VuZF9kYXRhKEtCRF9D
TURfU0VUX0xFRFMpIHx8ICFzZW5kX2RhdGEobGVkcykpKSB7DQogCQlzZW5k
X2RhdGEoS0JEX0NNRF9FTkFCTEUpOwkvKiByZS1lbmFibGUga2JkIGlmIGFu
eSBlcnJvcnMgKi8NCiAJCWtiZF9leGlzdHMgPSAwOw0KIAl9DQorI2lmZGVm
IENPTkZJR19QQ19LRVlCX0ZJTFRFUg0KKwl1cCgma2JkX291dHB1dF9zZW1h
KTsNCisjZW5kaWYNCiB9DQogDQogLyoNCmRpZmYgLXVyTiAyLjQuNS1jbGVh
bi9pbmNsdWRlL2xpbnV4L3BjX2tleWIuaCBsaW51eC9pbmNsdWRlL2xpbnV4
L3BjX2tleWIuaA0KLS0tIDIuNC41LWNsZWFuL2luY2x1ZGUvbGludXgvcGNf
a2V5Yi5oCU1vbiBPY3QgMTEgMTM6MTU6NDAgMTk5OQ0KKysrIGxpbnV4L2lu
Y2x1ZGUvbGludXgvcGNfa2V5Yi5oCUZyaSBKdW4gMTUgMTM6MzQ6MTggMjAw
MQ0KQEAgLTYsNiArNiwxMSBAQA0KICAqCShjKSAxOTk3IE1hcnRpbiBNYXJl
cyA8bWpAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6Pg0KICAqLw0KIA0KKyNp
Zm5kZWYgX19QQ19LRVlCX0gNCisjZGVmaW5lIF9fUENfS0VZQl9IDQorDQor
I2lmZGVmIF9fS0VSTkVMX18NCisNCiAvKg0KICAqCUNvbmZpZ3VyYXRpb24g
U3dpdGNoZXMNCiAgKi8NCkBAIC0xMjgsMyArMTMzLDE3IEBADQogCXN0cnVj
dCBmYXN5bmNfc3RydWN0ICpmYXN5bmM7DQogCXVuc2lnbmVkIGNoYXIgYnVm
W0FVWF9CVUZfU0laRV07DQogfTsNCisNCisjZGVmaW5lIFBDX0tFWUJfTUFY
X0ZJTFRFUlMJCTENCisNCitzdHJ1Y3QgcGNfa2V5Yl9maWx0ZXIgew0KKwlp
bnQgKCpmaWx0ZXJfc2NhbmNvZGUpKCB1bnNpZ25lZCBjaGFyICpzY2FuY29k
ZSApOw0KKwlpbnQgKCp3cml0ZV9kYXRhKSggdW5zaWduZWQgY2hhciAqZGF0
YSwgdW5zaWduZWQgaW50IGxlbmd0aCwgdW5zaWduZWQgaW50ICp4ZmVycmVk
LCB1bnNpZ25lZCBpbnQgcmV0cmllcywgdW5zaWduZWQgaW50IHRpbWVvdXQg
KTsNCit9Ow0KKw0KK2ludCByZWdpc3Rlcl9wY19rZXliX2ZpbHRlciggc3Ry
dWN0IHBjX2tleWJfZmlsdGVyICpmaWx0ZXIgKTsNCit2b2lkIHVucmVnaXN0
ZXJfcGNfa2V5Yl9maWx0ZXIoIHN0cnVjdCBwY19rZXliX2ZpbHRlciAqZmls
dGVyICk7DQorDQorI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8NCisNCisjZW5k
aWYgLyogX19QQ19LRVlCX0ggKi8NCg==
--1124691196-729784957-992631837=:25518--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/