[patch] fastcall-2.3.32-B6, SYSENTER/SYSEXIT support

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Fri, 10 Dec 1999 12:09:11 +0100 (CET)


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.

--79888902-2146931966-944821174=:1436
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.9912101144341.1851@chiara.csoma.elte.hu>

hi Artur,

On Fri, 10 Dec 1999, Artur Skawina wrote:

> [Ingo, i believe most of the issues mentioned below aren't handled by
> your patch, hence the cc.]

(those issues were mentioned in the discussion and i've fixed them
already. Nevertheless it's worthwile listing all the stumbling blocks in
one place)

the attached patch (and test-utility) also does the following things
additional things:

- handles 5 and 6 argument system calls too. (see how sys_mmap is
handled)

- is conditional on CPU capabilities, checks the CPU for fast syscall
capabilities correctly.

- does not generate code bloat if the kernel is compiled for a CPU that
cannot have a fast system call

- is 8 cycles faster :-) can certainly still be improved, working on it.

> RESTORING EFLAGS

yep, fixed. We definitely want X to use fast system calls.

> SIGNAL HANDLING
> SYSCALL RESTARTING

works just fine here without going into the slow iret path, this was just
a matter of generating a stack layout where pregs->eip and pregs->esp is
popped into %ecx and %edx by sysexit. signal handlers do not need fancy
register state, they need a good %esp and %eip, plus they need their
stackframe.

signals generated after interrupts _need_ to restore all registers
exactly, but after interrupts we are not in the fastcall path anyway, so
iret is used.

> EXEC

yep, exec is such a heavy function that it can be called int $80 just
fine.

> INTERRUPT FLAG

simply turned back on. Yep, Intel (or rather those guys up far north)
clearly messed up, and this stupidity costs 7 cycles latency for no good.
I cannot believe it, is Windows really disabling interrupts on system
entry or what?

> 5+ ARG SYSCALLS

see my suggestion in the first mail: we can create _two_ syscall tables.
I've done this in the attached patch and it works just fine.

Under Linux we have 6 system calls that have 5 or 6 parameters:

init_module EXTRA init_module 5
mmap - mmap 6
mount EXTRA mount 5
prctl EXTRA prctl 5
query_module EXTRA query_module 5
select - _newselect 5

fortunately most of these are rarely used system calls. The ones we worry
about are mmap() and select(). Fortunately mmap() already has a trampoline
in the x86 architecture, thus parameter preparation can be done cheaply
(see sys_mmap2_4arg()). The other system-calls have to be trampolined
similarly.

this method enables us to support these few system calls without slowing
down the fast-path!

> KERNEL STACK

> (1) it means a SEP capable cpu needs a different switch_to from one
> w/o sysenter. I'd like to have sysenter not dependendent on any
> compilation flags and this means extra if()s to check for SE
> support. (while fixups tricks may work on older cpus i wouldn't
> trust clones) If support for other methods emerge it could make
> things even more complex.
> (2) an MSR write takes at least 80 cycles.

not a problem i believe. fast system calls are an optimization, just like
eg. the 'Good APIC' flag is an optimization, the 'INVLPG' instruction is a
compilation-time flag as well - it's perfectly fine to have fast-syscall
support as a compilation flag i believe. Since it's not a mandatory
interface, no need to slow down the context-switch path for CPUs which
have no support for this.

> VM86 MODE

vm86() mode is clearly hard to handle, i believe it's acceptable to link
dosemu against the int $80 library of glibc. It's simply not possible to
return to a 16-bit CS with sysexit. The VM flag itself can be set though.

> getpid() using SYSENTER is now 150 cycles (including a small stub).

with my attached patch and testcode it's 142 cycles :-) [and yours is 150
cycles with my testcode as well.]

moon:~/fastcall> ./fastcall
(INT $0x80 based getpid(), got pid 322) latency:285 cycles
(SYSENTER based getpid(), got pid 322) latency:142 cycles

comments, reports, suggestions, flames^H^H^H^H^H^H welcome.

-- mingo

--79888902-2146931966-944821174=:1436
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="fastcall-2.3.32-B5"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9912101119340.1436@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="fastcall-2.3.32-B5"

LS0tIGxpbnV4L2luY2x1ZGUvYXNtLWkzODYvcHJvY2Vzc29yLmgub3JpZwlU
aHUgRGVjICA5IDA1OjIyOjIxIDE5OTkNCisrKyBsaW51eC9pbmNsdWRlL2Fz
bS1pMzg2L3Byb2Nlc3Nvci5oCVRodSBEZWMgIDkgMDc6MTk6NDcgMTk5OQ0K
QEAgLTExNCw3ICsxMTQsOSBAQA0KICNkZWZpbmUgY3B1X2hhc19wYWUgXA0K
IAkJKGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkgJiBYODZfRkVBVFVS
RV9QQUUpDQogI2RlZmluZSBjcHVfaGFzX3RzYyBcDQotCQkoY3B1X2RhdGFb
c21wX3Byb2Nlc3Nvcl9pZCgpXS54ODZfY2FwYWJpbGl0eSAmIFg4Nl9GRUFU
VVJFX1RTQykNCisJCShib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5ICYg
WDg2X0ZFQVRVUkVfVFNDKQ0KKyNkZWZpbmUgY3B1X2hhc19mYXN0Y2FsbCBc
DQorCQkoYm9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSAmIFg4Nl9GRUFU
VVJFX1NFUCkNCiANCiBleHRlcm4gY2hhciBpZ25vcmVfaXJxMTM7DQogDQot
LS0gbGludXgvaW5jbHVkZS9hc20taTM4Ni9idWdzLmgub3JpZwlUaHUgRGVj
ICA5IDA1OjIyOjE1IDE5OTkNCisrKyBsaW51eC9pbmNsdWRlL2FzbS1pMzg2
L2J1Z3MuaAlUaHUgRGVjICA5IDA3OjE5OjQ3IDE5OTkNCkBAIC0zOTgsMTAg
KzM5OCwxOCBAQA0KICAqIElmIHdlIGNvbmZpZ3VyZWQgb3Vyc2VsdmVzIGZv
ciBhIFRTQywgd2UnZCBiZXR0ZXIgaGF2ZSBvbmUhDQogICovDQogI2lmZGVm
IENPTkZJR19YODZfVFNDDQotCWlmICghKGJvb3RfY3B1X2RhdGEueDg2X2Nh
cGFiaWxpdHkgJiBYODZfRkVBVFVSRV9UU0MpKQ0KKwlpZiAoIWNwdV9oYXNf
dHNjKQ0KIAkJcGFuaWMoIktlcm5lbCBjb21waWxlZCBmb3IgUGVudGl1bSss
IHJlcXVpcmVzIFRTQyIpOw0KICNlbmRpZg0KIA0KKy8qDQorICogSWYgd2Ug
Y29uZmlndXJlZCBvdXJzZWx2ZXMgZm9yIGEgNjg2IENQVSwgd2UnZCBiZXR0
ZXIgaGF2ZQ0KKyAqIFNZU0VOVEVSL1NZU0VYSVQhDQorICovDQorI2lmZGVm
IENPTkZJR19YODZfRkFTVENBTEwNCisJaWYgKCFjcHVfaGFzX2Zhc3RjYWxs
KQ0KKwkJcGFuaWMoIktlcm5lbCBjb21waWxlZCBmb3IgUGVudGl1bSssIHJl
cXVpcmVzIGZhc3RjYWxsIik7DQorI2VuZGlmDQogLyoNCiAgKiBJZiB3ZSB3
ZXJlIHRvbGQgd2UgaGFkIGEgZ29vZCBBUElDIGZvciBTTVAsIHdlJ2QgYmV0
dGVyIGJlIGEgUFBybw0KICAqLw0KLS0tIGxpbnV4L2FyY2gvaTM4Ni9rZXJu
ZWwvcHJvY2Vzcy5jLm9yaWcJVGh1IERlYyAgOSAwNToyMjoyNCAxOTk5DQor
KysgbGludXgvYXJjaC9pMzg2L2tlcm5lbC9wcm9jZXNzLmMJVGh1IERlYyAg
OSAwODoxNToyNSAxOTk5DQpAQCAtNTQ3LDYgKzU0NywxNSBAQA0KIAkJCTog
Lyogbm8gb3V0cHV0ICovIFwNCiAJCQk6InIiICh0aHJlYWQtPmRlYnVncmVn
W3JlZ2lzdGVyXSkpDQogDQorI2lmIENPTkZJR19YODZfRkFTVENBTEwNCisj
ZGVmaW5lIExPQURfRkFTVFNZUyhwKSBcDQorCQlfX2FzbV9fIF9fdm9sYXRp
bGVfXygid3Jtc3IiIDogOiBcDQorCQkJImMiICgweDE3NSksICJhIiAoKGlu
dCkocCkgKyAyKlBBR0VfU0laRSksICJkIiAoMCkpDQorI2Vsc2UNCisjZGVm
aW5lIExPQURfRkFTVFNZUyhwKSBcDQorCQlkbyB7IH0gd2hpbGUgKDApDQor
I2VuZGlmDQorDQogLyoNCiAgKglzd2l0Y2hfdG8oeCx5bikgc2hvdWxkIHN3
aXRjaCB0YXNrcyBmcm9tIHggdG8geS4NCiAgKg0KQEAgLTU3OSw2ICs1ODgs
NyBAQA0KIA0KIAl1bmxhenlfZnB1KHByZXZfcCk7DQogDQorCUxPQURfRkFT
VFNZUyhuZXh0X3ApOw0KIAkvKg0KIAkgKiBSZWxvYWQgZXNwMCwgTERUIGFu
ZCB0aGUgcGFnZSB0YWJsZSBwb2ludGVyOg0KIAkgKi8NCi0tLSBsaW51eC9h
cmNoL2kzODYva2VybmVsL2VudHJ5LlMub3JpZwlUaHUgRGVjICA5IDA1OjIy
OjI0IDE5OTkNCisrKyBsaW51eC9hcmNoL2kzODYva2VybmVsL2VudHJ5LlMJ
VGh1IERlYyAgOSAwODo1MzozOCAxOTk5DQpAQCAtMiw2ICsyLDggQEANCiAg
KiAgbGludXgvYXJjaC9pMzg2L2VudHJ5LlMNCiAgKg0KICAqICBDb3B5cmln
aHQgKEMpIDE5OTEsIDE5OTIgIExpbnVzIFRvcnZhbGRzDQorICoNCisgKiAg
aW1wbGVtZW50ZWQgZmFzdCBzeXN0ZW0gY2FsbCBzdXBwb3J0LCBJbmdvIE1v
bG5hciA8bWluZ29AcmVkaGF0LmNvbT4NCiAgKi8NCiANCiAvKg0KQEAgLTQ1
LDYgKzQ3LDcgQEANCiAjaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4NCiAjZGVm
aW5lIEFTU0VNQkxZDQogI2luY2x1ZGUgPGFzbS9zbXAuaD4NCisjaW5jbHVk
ZSA8YXNtL3BhZ2UuaD4NCiANCiBFQlgJCT0gMHgwMA0KIEVDWAkJPSAweDA0
DQpAQCAtOTUsNyArOTgsNyBAQA0KIAltb3ZsICVkeCwlZHM7IFwNCiAJbW92
bCAlZHgsJWVzOw0KIA0KLSNkZWZpbmUgUkVTVE9SRV9BTEwJXA0KKyNkZWZp
bmUgUkVTVE9SRV9BTExfUkVHU1wNCiAJcG9wbCAlZWJ4OwlcDQogCXBvcGwg
JWVjeDsJXA0KIAlwb3BsICVlZHg7CVwNCkBAIC0xMDYsMTIgKzEwOSwyMiBA
QA0KIDE6CXBvcGwgJWRzOwlcDQogMjoJcG9wbCAlZXM7CVwNCiAJYWRkbCAk
NCwlZXNwOwlcDQotMzoJaXJldDsJCVwNCiAuc2VjdGlvbiAuZml4dXAsImF4
IjsJXA0KIDQ6CW1vdmwgJDAsKCVlc3ApOwlcDQogCWptcCAxYjsJCVwNCiA1
Ogltb3ZsICQwLCglZXNwKTsJXA0KIAlqbXAgMmI7CQlcDQorLnByZXZpb3Vz
OwkJXA0KKy5zZWN0aW9uIF9fZXhfdGFibGUsImEiO1wNCisJLmFsaWduIDQ7
CVwNCisJLmxvbmcgMWIsNGI7CVwNCisJLmxvbmcgMmIsNWI7CVwNCisucHJl
dmlvdXM7DQorDQorI2RlZmluZSBSRVNUT1JFX0FMTCBcDQorCVJFU1RPUkVf
QUxMX1JFR1MgXA0KKzM6CWlyZXQ7CQlcDQorLnNlY3Rpb24gLmZpeHVwLCJh
eCI7CVwNCiA2OglwdXNobCAlc3M7CVwNCiAJcG9wbCAlZHM7CVwNCiAJcHVz
aGwgJXNzOwlcDQpAQCAtMTIxLDE1ICsxMzQsMTM0IEBADQogLnByZXZpb3Vz
OwkJXA0KIC5zZWN0aW9uIF9fZXhfdGFibGUsImEiO1wNCiAJLmFsaWduIDQ7
CVwNCi0JLmxvbmcgMWIsNGI7CVwNCi0JLmxvbmcgMmIsNWI7CVwNCiAJLmxv
bmcgM2IsNmI7CVwNCiAucHJldmlvdXMNCiANCisjZGVmaW5lIFNBVkVfQUxM
X0ZBU1RTWVMgXA0KKwljbGQ7IFwNCisJcHVzaGwgJWVicDsgXA0KKwlzdWJs
ICQ4LCAlZXNwOyBcDQorCXB1c2hsICVlZGk7IFwNCisJc3VibCAkOCwgJWVz
cDsgXA0KKwlwdXNobCAlZWF4OyBcDQorCXB1c2hsICVlYnA7IFwNCisJcHVz
aGwgJWVkaTsgXA0KKwlwdXNobCAlZXNpOyBcDQorCXB1c2hsICVlZHg7IFwN
CisJcHVzaGwgJWVjeDsgXA0KKwlwdXNobCAlZWJ4OyBcDQorCW1vdmwgJChf
X0tFUk5FTF9EUyksJWVkeDsgXA0KKwltb3ZsICVkeCwlZHM7IFwNCisJbW92
bCAlZHgsJWVzOw0KKw0KKyNkZWZpbmUgUkVTVE9SRV9BTExfUkVHU19GQVNU
U1lTXA0KKwltb3ZsICQoX19VU0VSX0RTKSwlZWF4OyBcDQorCW1vdmwgMHgy
OCglZXNwKSwgJWVkeDsgXA0KKwltb3ZsIDB4MzgoJWVzcCksICVlY3g7IFwN
CisJbW92bCAlYXgsJWRzOwlcDQorCW1vdmwgJWF4LCVlczsJXA0KKwlwb3Bs
ICVlYng7CVwNCisJYWRkbCAkOCwlZXNwOwlcDQorCXBvcGwgJWVzaTsJXA0K
KwlhZGRsICQ4LCVlc3A7CVwNCisJcG9wbCAlZWF4Ow0KKw0KKyNkZWZpbmUg
UkVTVE9SRV9BTExfRkFTVFNZUyBcDQorCVJFU1RPUkVfQUxMX1JFR1NfRkFT
VFNZUyBcDQorMzoJc3lzZXhpdDsgXA0KKy5zZWN0aW9uIC5maXh1cCwiYXgi
OwlcDQorNjoJcHVzaGwgJXNzOwlcDQorCXBvcGwgJWRzOwlcDQorCXB1c2hs
ICVzczsJXA0KKwlwb3BsICVlczsJXA0KKwlwdXNobCAkMTE7CVwNCisJY2Fs
bCBkb19leGl0OwlcDQorLnByZXZpb3VzOwkJXA0KKy5zZWN0aW9uIF9fZXhf
dGFibGUsImEiO1wNCisJLmFsaWduIDQ7CVwNCisJLmxvbmcgM2IsNmI7CVwN
CisucHJldmlvdXMNCisNCisNCiAjZGVmaW5lIEdFVF9DVVJSRU5UKHJlZykg
XA0KIAltb3ZsICVlc3AsIHJlZzsgXA0KIAlhbmRsICQtODE5MiwgcmVnOw0K
IA0KKyNpZmRlZiBDT05GSUdfWDg2X0ZBU1RDQUxMDQorDQorRU5UUlkoZmFz
dF9zeXN0ZW1fY2FsbCkNCisNCisvKg0KKyAqICVlYnAgaGFzIHRoZSBjYWxs
ZXIncyBzdGFjaywgZmlyc3QgZW50cnkgb24gdGhlIHN0YWNrIGlzIHRoZQ0K
KyAqIHJldHVybiBlaXAgLi4uIGEgYml0IHVnbHkgYnV0IHdlIGhhdmUgdG8g
ZG8gaXQgdGhpcyB3YXkgZHVlDQorICogdG8gdGhlIChvbmx5PykgNSBwYXJh
bWV0ZXIgc3lzdGVtIGNhbGwgc2VsZWN0KCkuDQorICoNCisgKiBhbHRlcm5h
dGl2ZWx5LCBpZiB3ZSBjb3VsZCByZXN0cmljdCBhbGwgeDg2IHN5c3RlbSBj
YWxscyB0byBiZQ0KKyAqIDQtcGFyYW1ldGVyIG9ubHksIGFuZCBzZW5kIDUt
NiBwYXJhbWV0ZXIgc3lzdGVtIGNhbGxzIHRocm91Z2gNCisgKiBzcGVjaWFs
IHN0dWJzIHdoaWNoIGZldGNoIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmcm9t
IHRoZSBzdGFjaywNCisgKiB0aGVuIHdlIGNvdWxkIGZ1cnRoZXIgc3BlZWQg
dXAgdGhlIGNvbW1vbiBwYXRoLg0KKyAqLw0KKw0KKwlwdXNobCAlZWF4CQkJ
IyBzYXZlIG9yaWdfZWF4DQorCXN0aQkJCQkjIHVnaCEgU1lTRU5URVIgZGlz
YWJsZXMgSVJRcw0KKwlTQVZFX0FMTF9GQVNUU1lTDQorDQorCUdFVF9DVVJS
RU5UKCVlYngpDQorCWNtcGwgICQoTlJfc3lzY2FsbHMpLCVlYXgNCisJamFl
ICAgYmFkZmFzdHN5cw0KKwl0ZXN0bCAkMHgyMCxmbGFncyglZWJ4KQkJIyBQ
Rl9UUkFDRVNZUw0KKwlqbmUgdHJhY2VmYXN0c3lzDQorCWNhbGwgKlNZTUJP
TF9OQU1FKGZhc3RzeXNfY2FsbF90YWJsZSkoLCVlYXgsNCkNCisJbW92bCAl
ZWF4LEVBWCglZXNwKQkJIyBzYXZlIHRoZSByZXR1cm4gdmFsdWUNCisJLmds
b2JsIHJldF9mcm9tX2Zhc3RzeXNfY2FsbA0KK3JldF9mcm9tX2Zhc3RzeXNf
Y2FsbDoNCisJbW92bCBTWU1CT0xfTkFNRShiaF9tYXNrKSwlZWF4DQorCWFu
ZGwgU1lNQk9MX05BTUUoYmhfYWN0aXZlKSwlZWF4DQorCWpuZSBoYW5kbGVf
Ym90dG9tX2hhbGZfZmFzdHN5cw0KK3JldF93aXRoX3Jlc2NoZWR1bGVfZmFz
dHN5czoNCisJY21wbCAkMCxuZWVkX3Jlc2NoZWQoJWVieCkNCisJam5lIHJl
c2NoZWR1bGVfZmFzdHN5cw0KKwljbXBsICQwLHNpZ3BlbmRpbmcoJWVieCkN
CisJam5lIHNpZ25hbF9yZXR1cm5fZmFzdHN5cw0KK3Jlc3RvcmVfYWxsX2Zh
c3RzeXM6DQorCVJFU1RPUkVfQUxMX0ZBU1RTWVMNCisNCisJQUxJR04NCito
YW5kbGVfYm90dG9tX2hhbGZfZmFzdHN5czoNCisJY2FsbCBTWU1CT0xfTkFN
RShkb19ib3R0b21faGFsZikNCisJam1wIHJldF93aXRoX3Jlc2NoZWR1bGVf
ZmFzdHN5czsNCisNCisJQUxJR04NCityZXNjaGVkdWxlX2Zhc3RzeXM6DQor
CWNhbGwgU1lNQk9MX05BTUUoc2NoZWR1bGUpDQorCWptcCByZXRfd2l0aF9y
ZXNjaGVkdWxlX2Zhc3RzeXM7DQorDQorc2lnbmFsX3JldHVybl9mYXN0c3lz
Og0KKwlzdGkJCQkJIyB3ZSBjYW4gZ2V0IGhlcmUgZnJvbSBhbiBpbnRlcnJ1
cHQgaGFuZGxlcg0KKwltb3ZsICVlc3AsJWVheA0KKwl4b3JsICVlZHgsJWVk
eA0KKwljYWxsIFNZTUJPTF9OQU1FKGRvX3NpZ25hbCkNCisJam1wIHJlc3Rv
cmVfYWxsX2Zhc3RzeXMNCisNCit0cmFjZWZhc3RzeXM6DQorCW1vdmwgJC1F
Tk9TWVMsRUFYKCVlc3ApDQorCWNhbGwgU1lNQk9MX05BTUUoc3lzY2FsbF90
cmFjZSkNCisJbW92bCBPUklHX0VBWCglZXNwKSwlZWF4DQorCWNtcGwgJChO
Ul9zeXNjYWxscyksJWVheA0KKwlqYWUgdHJhY2VmYXN0c3lzX2V4aXQNCisJ
Y2FsbCAqU1lNQk9MX05BTUUoZmFzdHN5c19jYWxsX3RhYmxlKSgsJWVheCw0
KQ0KKwltb3ZsICVlYXgsRUFYKCVlc3ApCQkjIHNhdmUgdGhlIHJldHVybiB2
YWx1ZQ0KK3RyYWNlZmFzdHN5c19leGl0Og0KKwljYWxsIFNZTUJPTF9OQU1F
KHN5c2NhbGxfdHJhY2UpDQorCWptcCByZXRfZnJvbV9mYXN0c3lzX2NhbGwN
CitiYWRmYXN0c3lzOg0KKwltb3ZsICQtRU5PU1lTLEVBWCglZXNwKQ0KKwlq
bXAgcmV0X2Zyb21fZmFzdHN5c19jYWxsDQorDQorCUFMSUdODQorDQorI2Vu
ZGlmIC8qIENPTkZJR19YODZfRkFTVENBTEwgKi8NCisNCiBFTlRSWShsY2Fs
bDcpDQogCXB1c2hmbAkJCSMgV2UgZ2V0IGEgZGlmZmVyZW50IHN0YWNrIGxh
eW91dCB3aXRoIGNhbGwgZ2F0ZXMsDQogCXB1c2hsICVlYXgJCSMgd2hpY2gg
aGFzIHRvIGJlIGNsZWFuZWQgdXAgbGF0ZXIuLg0KQEAgLTE3MywxNSArMzA1
LDE0IEBADQogCWptcCByZXRfZnJvbV9zeXNfY2FsbA0KIA0KIA0KLQlBTElH
Tg0KLQkuZ2xvYmwJcmV0X2Zyb21fZm9yaw0KLXJldF9mcm9tX2Zvcms6DQor
RU5UUlkocmV0X2Zyb21fZm9yaykNCiAJcHVzaGwgJWVieA0KIAljYWxsIFNZ
TUJPTF9OQU1FKHNjaGVkdWxlX3RhaWwpDQogCWFkZGwgJDQsICVlc3ANCiAJ
R0VUX0NVUlJFTlQoJWVieCkNCiAJam1wCXJldF9mcm9tX3N5c19jYWxsDQog
DQorDQogLyoNCiAgKiBSZXR1cm4gdG8gdXNlciBtb2RlIGlzIG5vdCBhcyBj
b21wbGV4IGFzIGFsbCB0aGlzIGxvb2tzLA0KICAqIGJ1dCB3ZSB3YW50IHRo
ZSBkZWZhdWx0IHBhdGggZm9yIGEgc3lzdGVtIGNhbGwgcmV0dXJuIHRvDQpA
QCAtMjY5LDcgKzQwMCw3IEBADQogDQogCUFMSUdODQogcmVzY2hlZHVsZToN
Ci0JY2FsbCBTWU1CT0xfTkFNRShzY2hlZHVsZSkgICAgIyB0ZXN0DQorCWNh
bGwgU1lNQk9MX05BTUUoc2NoZWR1bGUpDQogCWptcCByZXRfZnJvbV9zeXNf
Y2FsbA0KIA0KIEVOVFJZKGRpdmlkZV9lcnJvcikNCkBAIC0zOTksNiArNTMw
LDIxNSBAQA0KIAlqbXAgZXJyb3JfY29kZQ0KIA0KIC5kYXRhDQorI2lmZGVm
IENPTkZJR19YODZfRkFTVENBTEwNCitFTlRSWShmYXN0c3lzX2NhbGxfdGFi
bGUpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19uaV9zeXNjYWxsKQkvKiAw
ICAtICBvbGQgInNldHVwKCkiIHN5c3RlbSBjYWxsKi8NCisJLmxvbmcgU1lN
Qk9MX05BTUUoc3lzX2V4aXQpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19m
b3JrKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfcmVhZCkNCisJLmxvbmcg
U1lNQk9MX05BTUUoc3lzX3dyaXRlKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShz
eXNfb3BlbikJCS8qIDUgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2Ns
b3NlKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfd2FpdHBpZCkNCisJLmxv
bmcgU1lNQk9MX05BTUUoc3lzX2NyZWF0KQ0KKwkubG9uZyBTWU1CT0xfTkFN
RShzeXNfbGluaykNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3VubGluaykJ
CS8qIDEwICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19leGVjdmUpDQor
CS5sb25nIFNZTUJPTF9OQU1FKHN5c19jaGRpcikNCisJLmxvbmcgU1lNQk9M
X05BTUUoc3lzX3RpbWUpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19ta25v
ZCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2NobW9kKQkJLyogMTUgKi8N
CisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2xjaG93bikNCisJLmxvbmcgU1lN
Qk9MX05BTUUoc3lzX25pX3N5c2NhbGwpCQkJCS8qIG9sZCBicmVhayBzeXNj
YWxsIGhvbGRlciAqLw0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc3RhdCkN
CisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2xzZWVrKQ0KKwkubG9uZyBTWU1C
T0xfTkFNRShzeXNfZ2V0cGlkKQkJLyogMjAgKi8NCisJLmxvbmcgU1lNQk9M
X05BTUUoc3lzX21vdW50KQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfb2xk
dW1vdW50KQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc2V0dWlkKQ0KKwku
bG9uZyBTWU1CT0xfTkFNRShzeXNfZ2V0dWlkKQ0KKwkubG9uZyBTWU1CT0xf
TkFNRShzeXNfc3RpbWUpCQkvKiAyNSAqLw0KKwkubG9uZyBTWU1CT0xfTkFN
RShzeXNfcHRyYWNlKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfYWxhcm0p
DQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19mc3RhdCkNCisJLmxvbmcgU1lN
Qk9MX05BTUUoc3lzX3BhdXNlKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNf
dXRpbWUpCQkvKiAzMCAqLw0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfbmlf
c3lzY2FsbCkJCQkJLyogb2xkIHN0dHkgc3lzY2FsbCBob2xkZXIgKi8NCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX25pX3N5c2NhbGwpCQkJCS8qIG9sZCBn
dHR5IHN5c2NhbGwgaG9sZGVyICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5
c19hY2Nlc3MpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19uaWNlKQ0KKwku
bG9uZyBTWU1CT0xfTkFNRShzeXNfbmlfc3lzY2FsbCkJLyogMzUgKi8JCS8q
IG9sZCBmdGltZSBzeXNjYWxsIGhvbGRlciAqLw0KKwkubG9uZyBTWU1CT0xf
TkFNRShzeXNfc3luYykNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2tpbGwp
DQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19yZW5hbWUpDQorCS5sb25nIFNZ
TUJPTF9OQU1FKHN5c19ta2RpcikNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lz
X3JtZGlyKQkJLyogNDAgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2R1
cCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3BpcGUpDQorCS5sb25nIFNZ
TUJPTF9OQU1FKHN5c190aW1lcykNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lz
X25pX3N5c2NhbGwpCQkJCS8qIG9sZCBwcm9mIHN5c2NhbGwgaG9sZGVyICov
DQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19icmspCQkvKiA0NSAqLw0KKwku
bG9uZyBTWU1CT0xfTkFNRShzeXNfc2V0Z2lkKQ0KKwkubG9uZyBTWU1CT0xf
TkFNRShzeXNfZ2V0Z2lkKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc2ln
bmFsKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfZ2V0ZXVpZCkNCisJLmxv
bmcgU1lNQk9MX05BTUUoc3lzX2dldGVnaWQpCQkvKiA1MCAqLw0KKwkubG9u
ZyBTWU1CT0xfTkFNRShzeXNfYWNjdCkNCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX3Vtb3VudCkJCQkJCS8qIHJlY3ljbGVkIG5ldmVyIHVzZWQgcGh5cygp
ICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19uaV9zeXNjYWxsKQkJCQkv
KiBvbGQgbG9jayBzeXNjYWxsIGhvbGRlciAqLw0KKwkubG9uZyBTWU1CT0xf
TkFNRShzeXNfaW9jdGwpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19mY250
bCkJCS8qIDU1ICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19uaV9zeXNj
YWxsKQkJCQkvKiBvbGQgbXB4IHN5c2NhbGwgaG9sZGVyICovDQorCS5sb25n
IFNZTUJPTF9OQU1FKHN5c19zZXRwZ2lkKQ0KKwkubG9uZyBTWU1CT0xfTkFN
RShzeXNfbmlfc3lzY2FsbCkJCQkJLyogb2xkIHVsaW1pdCBzeXNjYWxsIGhv
bGRlciAqLw0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfb2xkdW5hbWUpDQor
CS5sb25nIFNZTUJPTF9OQU1FKHN5c191bWFzaykJCS8qIDYwICovDQorCS5s
b25nIFNZTUJPTF9OQU1FKHN5c19jaHJvb3QpDQorCS5sb25nIFNZTUJPTF9O
QU1FKHN5c191c3RhdCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2R1cDIp
DQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19nZXRwcGlkKQ0KKwkubG9uZyBT
WU1CT0xfTkFNRShzeXNfZ2V0cGdycCkJCS8qIDY1ICovDQorCS5sb25nIFNZ
TUJPTF9OQU1FKHN5c19zZXRzaWQpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5
c19zaWdhY3Rpb24pDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19zZ2V0bWFz
aykNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3NzZXRtYXNrKQ0KKwkubG9u
ZyBTWU1CT0xfTkFNRShzeXNfc2V0cmV1aWQpCQkvKiA3MCAqLw0KKwkubG9u
ZyBTWU1CT0xfTkFNRShzeXNfc2V0cmVnaWQpDQorCS5sb25nIFNZTUJPTF9O
QU1FKHN5c19zaWdzdXNwZW5kKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNf
c2lncGVuZGluZykNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3NldGhvc3Ru
YW1lKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc2V0cmxpbWl0KQkvKiA3
NSAqLw0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfb2xkX2dldHJsaW1pdCkN
CisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2dldHJ1c2FnZSkNCisJLmxvbmcg
U1lNQk9MX05BTUUoc3lzX2dldHRpbWVvZmRheSkNCisJLmxvbmcgU1lNQk9M
X05BTUUoc3lzX3NldHRpbWVvZmRheSkNCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX2dldGdyb3VwcykJLyogODAgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX3NldGdyb3VwcykNCisJLmxvbmcgU1lNQk9MX05BTUUob2xkX3NlbGVj
dCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3N5bWxpbmspDQorCS5sb25n
IFNZTUJPTF9OQU1FKHN5c19sc3RhdCkNCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX3JlYWRsaW5rKQkJLyogODUgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX3VzZWxpYikNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3N3YXBvbikN
CisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3JlYm9vdCkNCisJLmxvbmcgU1lN
Qk9MX05BTUUob2xkX3JlYWRkaXIpDQorCS5sb25nIFNZTUJPTF9OQU1FKG9s
ZF9tbWFwKQkJLyogOTAgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX211
bm1hcCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3RydW5jYXRlKQ0KKwku
bG9uZyBTWU1CT0xfTkFNRShzeXNfZnRydW5jYXRlKQ0KKwkubG9uZyBTWU1C
T0xfTkFNRShzeXNfZmNobW9kKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNf
ZmNob3duKQkJLyogOTUgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2dl
dHByaW9yaXR5KQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc2V0cHJpb3Jp
dHkpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19uaV9zeXNjYWxsKQkJCQkv
KiBvbGQgcHJvZmlsIHN5c2NhbGwgaG9sZGVyICovDQorCS5sb25nIFNZTUJP
TF9OQU1FKHN5c19zdGF0ZnMpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19m
c3RhdGZzKQkJLyogMTAwICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19p
b3Blcm0pDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19zb2NrZXRjYWxsKQ0K
KwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc3lzbG9nKQ0KKwkubG9uZyBTWU1C
T0xfTkFNRShzeXNfc2V0aXRpbWVyKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShz
eXNfZ2V0aXRpbWVyKQkvKiAxMDUgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX25ld3N0YXQpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19uZXdsc3Rh
dCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX25ld2ZzdGF0KQ0KKwkubG9u
ZyBTWU1CT0xfTkFNRShzeXNfdW5hbWUpDQorCS5sb25nIFNZTUJPTF9OQU1F
KHN5c19pb3BsKQkJLyogMTEwICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5
c192aGFuZ3VwKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfbmlfc3lzY2Fs
bCkJLyogb2xkICJpZGxlIiBzeXN0ZW0gY2FsbCAqLw0KKwkubG9uZyBTWU1C
T0xfTkFNRShzeXNfdm04Nm9sZCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lz
X3dhaXQ0KQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc3dhcG9mZikJCS8q
IDExNSAqLw0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc3lzaW5mbykNCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX2lwYykNCisJLmxvbmcgU1lNQk9MX05B
TUUoc3lzX2ZzeW5jKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc2lncmV0
dXJuKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfY2xvbmUpCQkvKiAxMjAg
Ki8NCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3NldGRvbWFpbm5hbWUpDQor
CS5sb25nIFNZTUJPTF9OQU1FKHN5c19uZXd1bmFtZSkNCisJLmxvbmcgU1lN
Qk9MX05BTUUoc3lzX21vZGlmeV9sZHQpDQorCS5sb25nIFNZTUJPTF9OQU1F
KHN5c19hZGp0aW1leCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX21wcm90
ZWN0KQkJLyogMTI1ICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19zaWdw
cm9jbWFzaykNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2NyZWF0ZV9tb2R1
bGUpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19pbml0X21vZHVsZSkNCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX2RlbGV0ZV9tb2R1bGUpDQorCS5sb25n
IFNZTUJPTF9OQU1FKHN5c19nZXRfa2VybmVsX3N5bXMpCS8qIDEzMCAqLw0K
KwkubG9uZyBTWU1CT0xfTkFNRShzeXNfcXVvdGFjdGwpDQorCS5sb25nIFNZ
TUJPTF9OQU1FKHN5c19nZXRwZ2lkKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShz
eXNfZmNoZGlyKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfYmRmbHVzaCkN
CisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3N5c2ZzKQkJLyogMTM1ICovDQor
CS5sb25nIFNZTUJPTF9OQU1FKHN5c19wZXJzb25hbGl0eSkNCisJLmxvbmcg
U1lNQk9MX05BTUUoc3lzX25pX3N5c2NhbGwpCS8qIGZvciBhZnNfc3lzY2Fs
bCAqLw0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfc2V0ZnN1aWQpDQorCS5s
b25nIFNZTUJPTF9OQU1FKHN5c19zZXRmc2dpZCkNCisJLmxvbmcgU1lNQk9M
X05BTUUoc3lzX2xsc2VlaykJCS8qIDE0MCAqLw0KKwkubG9uZyBTWU1CT0xf
TkFNRShzeXNfZ2V0ZGVudHMpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19z
ZWxlY3QpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19mbG9jaykNCisJLmxv
bmcgU1lNQk9MX05BTUUoc3lzX21zeW5jKQ0KKwkubG9uZyBTWU1CT0xfTkFN
RShzeXNfcmVhZHYpCQkvKiAxNDUgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX3dyaXRldikNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2dldHNpZCkN
CisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2ZkYXRhc3luYykNCisJLmxvbmcg
U1lNQk9MX05BTUUoc3lzX3N5c2N0bCkNCisJLmxvbmcgU1lNQk9MX05BTUUo
c3lzX21sb2NrKQkJLyogMTUwICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5
c19tdW5sb2NrKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfbWxvY2thbGwp
DQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19tdW5sb2NrYWxsKQ0KKwkubG9u
ZyBTWU1CT0xfTkFNRShzeXNfc2NoZWRfc2V0cGFyYW0pDQorCS5sb25nIFNZ
TUJPTF9OQU1FKHN5c19zY2hlZF9nZXRwYXJhbSkgICAvKiAxNTUgKi8NCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX3NjaGVkX3NldHNjaGVkdWxlcikNCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX3NjaGVkX2dldHNjaGVkdWxlcikNCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX3NjaGVkX3lpZWxkKQ0KKwkubG9uZyBT
WU1CT0xfTkFNRShzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCkNCisJLmxv
bmcgU1lNQk9MX05BTUUoc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4pICAv
KiAxNjAgKi8NCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3NjaGVkX3JyX2dl
dF9pbnRlcnZhbCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX25hbm9zbGVl
cCkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX21yZW1hcCkNCisJLmxvbmcg
U1lNQk9MX05BTUUoc3lzX3NldHJlc3VpZCkNCisJLmxvbmcgU1lNQk9MX05B
TUUoc3lzX2dldHJlc3VpZCkJLyogMTY1ICovDQorCS5sb25nIFNZTUJPTF9O
QU1FKHN5c192bTg2KQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfcXVlcnlf
bW9kdWxlKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfcG9sbCkNCisJLmxv
bmcgU1lNQk9MX05BTUUoc3lzX25mc3NlcnZjdGwpDQorCS5sb25nIFNZTUJP
TF9OQU1FKHN5c19zZXRyZXNnaWQpCS8qIDE3MCAqLw0KKwkubG9uZyBTWU1C
T0xfTkFNRShzeXNfZ2V0cmVzZ2lkKQ0KKwkubG9uZyBTWU1CT0xfTkFNRShz
eXNfcHJjdGwpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19ydF9zaWdyZXR1
cm4pDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19ydF9zaWdhY3Rpb24pDQor
CS5sb25nIFNZTUJPTF9OQU1FKHN5c19ydF9zaWdwcm9jbWFzaykJLyogMTc1
ICovDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19ydF9zaWdwZW5kaW5nKQ0K
KwkubG9uZyBTWU1CT0xfTkFNRShzeXNfcnRfc2lndGltZWR3YWl0KQ0KKwku
bG9uZyBTWU1CT0xfTkFNRShzeXNfcnRfc2lncXVldWVpbmZvKQ0KKwkubG9u
ZyBTWU1CT0xfTkFNRShzeXNfcnRfc2lnc3VzcGVuZCkNCisJLmxvbmcgU1lN
Qk9MX05BTUUoc3lzX3ByZWFkKQkJLyogMTgwICovDQorCS5sb25nIFNZTUJP
TF9OQU1FKHN5c19wd3JpdGUpDQorCS5sb25nIFNZTUJPTF9OQU1FKHN5c19j
aG93bikNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2dldGN3ZCkNCisJLmxv
bmcgU1lNQk9MX05BTUUoc3lzX2NhcGdldCkNCisJLmxvbmcgU1lNQk9MX05B
TUUoc3lzX2NhcHNldCkgICAgICAgICAgIC8qIDE4NSAqLw0KKwkubG9uZyBT
WU1CT0xfTkFNRShzeXNfc2lnYWx0c3RhY2spDQorCS5sb25nIFNZTUJPTF9O
QU1FKHN5c19zZW5kZmlsZSkNCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX25p
X3N5c2NhbGwpCQkvKiBzdHJlYW1zMSAqLw0KKwkubG9uZyBTWU1CT0xfTkFN
RShzeXNfbmlfc3lzY2FsbCkJCS8qIHN0cmVhbXMyICovDQorCS5sb25nIFNZ
TUJPTF9OQU1FKHN5c192Zm9yaykgICAgICAgICAgICAvKiAxOTAgKi8NCisJ
LmxvbmcgU1lNQk9MX05BTUUoc3lzX2dldHJsaW1pdCkNCisJLmxvbmcgU1lN
Qk9MX05BTUUoc3lzX21tYXAyXzRhcmcpDQorCS5sb25nIFNZTUJPTF9OQU1F
KHN5c190cnVuY2F0ZTY0KQ0KKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfZnRy
dW5jYXRlNjQpDQorCS8qIDE5NSAqLw0KKw0KKwkvKg0KKwkgKiBOT1RFISEg
VGhpcyBkb2Vzbid0IGhhdmUgdG8gYmUgZXhhY3QgLSB3ZSBqdXN0IGhhdmUN
CisJICogdG8gbWFrZSBzdXJlIHdlIGhhdmUgX2Vub3VnaF8gb2YgdGhlICJz
eXNfbmlfc3lzY2FsbCINCisJICogZW50cmllcy4gRG9uJ3QgcGFuaWMgaWYg
eW91IG5vdGljZSB0aGF0IHRoaXMgaGFzbid0DQorCSAqIGJlZW4gc2hydW5r
IGV2ZXJ5IHRpbWUgd2UgYWRkIGEgbmV3IHN5c3RlbSBjYWxsLg0KKwkgKi8N
CisJLnJlcHQgTlJfc3lzY2FsbHMtMTk0DQorCQkubG9uZyBTWU1CT0xfTkFN
RShzeXNfbmlfc3lzY2FsbCkNCisJLmVuZHINCisjZW5kaWYgLyogQ09ORklH
X1g4Nl9GQVNUQ0FMTCAqLw0KIEVOVFJZKHN5c19jYWxsX3RhYmxlKQ0KIAku
bG9uZyBTWU1CT0xfTkFNRShzeXNfbmlfc3lzY2FsbCkJLyogMCAgLSAgb2xk
ICJzZXR1cCgpIiBzeXN0ZW0gY2FsbCovDQogCS5sb25nIFNZTUJPTF9OQU1F
KHN5c19leGl0KQ0KLS0tIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAu
Yy5vcmlnCVRodSBEZWMgIDkgMDU6MjI6MjQgMTk5OQ0KKysrIGxpbnV4L2Fy
Y2gvaTM4Ni9rZXJuZWwvc2V0dXAuYwlUaHUgRGVjICA5IDA1OjIyOjQ3IDE5
OTkNCkBAIC0xNDc5LDYgKzE0NzksMjYgQEANCiAJcmV0dXJuIHAgLSBidWZm
ZXI7DQogfQ0KIA0KKyNpZmRlZiBDT05GSUdfWDg2X0ZBU1RDQUxMDQorLyoN
CisgKiBTWVNFTlRFUi9TWVNFWElUIGZhc3Qgc3lzdGVtIGNhbGwgc3VwcG9y
dCBvbiBQUHJvKyBDUFVzLg0KKyAqIEs2KyBDUFVzIGhhdmUgdGhpcyB0b28g
LSBvbmx5IHRoZSBNU1JzIGRpZmZlci4NCisgKg0KKyAqIFRoaXMgZnVuY3Rp
b25zIHNldHMgdXAgdGhlIE1TUnMgd2hpY2ggc2hvdyB0aGUga2VybmVsIGVu
dHJ5cG9pbnQNCisgKiBmb3IgZmFzdCBzeXNjYWxscy4gU2VlIGVudHJ5LlMn
cyBmYXN0X3N5c3RlbV9jYWxsIGZvciBtb3JlLg0KKyAqLw0KK3N0YXRpYyBp
bmxpbmUgdm9pZCBmYXN0c3lzX2luaXQgKHZvaWQpDQorew0KKwlleHRlcm4g
Y2hhciBmYXN0X3N5c3RlbV9jYWxsOw0KKw0KKwlwcmludGsoImZhc3RzeXMg
aW5pdCBvbiBDUFUjJWQuXG4iLCBzbXBfcHJvY2Vzc29yX2lkKCkpOw0KKw0K
Kwl3cm1zcigweDE3NCwgMHgxMCwgMCk7DQorCXdybXNyKDB4MTc1LCAwLCAw
KTsNCisJd3Jtc3IoMHgxNzYsICZmYXN0X3N5c3RlbV9jYWxsLCAwKTsNCit9
DQorI2VuZGlmDQorDQogaW50IGNwdXNfaW5pdGlhbGl6ZWQgPSAwOw0KIHVu
c2lnbmVkIGxvbmcgY3B1X2luaXRpYWxpemVkID0gMDsNCiANCkBAIC0xNDg4
LDcgKzE1MDgsNyBAQA0KICAqIGFuZCBJRFQuIFdlIHJlbG9hZCB0aGVtIG5l
dmVydGhlbGVzcywgdGhpcyBmdW5jdGlvbiBhY3RzIGFzIGENCiAgKiAnQ1BV
IHN0YXRlIGJhcnJpZXInLCBub3RoaW5nIHNob3VsZCBnZXQgYWNyb3NzLg0K
ICAqLw0KLXZvaWQgY3B1X2luaXQgKHZvaWQpDQordm9pZCBfX2luaXQgY3B1
X2luaXQgKHZvaWQpDQogew0KIAlpbnQgbnIgPSBzbXBfcHJvY2Vzc29yX2lk
KCk7DQogCXN0cnVjdCB0c3Nfc3RydWN0ICogdCA9ICZpbml0X3Rzc1tucl07
DQpAQCAtMTUzOCw0ICsxNTU4LDggQEANCiAJY3VycmVudC0+ZmxhZ3MgJj0g
flBGX1VTRURGUFU7DQogCWN1cnJlbnQtPnVzZWRfbWF0aCA9IDA7DQogCXN0
dHMoKTsNCisNCisjaWZkZWYgQ09ORklHX1g4Nl9GQVNUQ0FMTA0KKwlmYXN0
c3lzX2luaXQoKTsNCisjZW5kaWYNCiB9DQotLS0gbGludXgvYXJjaC9pMzg2
L2tlcm5lbC9zeXNfaTM4Ni5jLm9yaWcJVGh1IERlYyAgOSAwNzoxMjoxOCAx
OTk5DQorKysgbGludXgvYXJjaC9pMzg2L2tlcm5lbC9zeXNfaTM4Ni5jCVRo
dSBEZWMgIDkgMDc6MTY6MjcgMTk5OQ0KQEAgLTc4LDYgKzc4LDI2IEBADQog
CXJldHVybiBkb19tbWFwMihhZGRyLCBsZW4sIHByb3QsIGZsYWdzLCBmZCwg
cGdvZmYpOw0KIH0NCiANCithc21saW5rYWdlIGxvbmcgc3lzX21tYXAyXzRh
cmcodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGxlbiwNCisJ
dW5zaWduZWQgbG9uZyBwcm90LCB1bnNpZ25lZCBsb25nICogdXNlcnN0YWNr
KQ0KK3sNCisJaW50IGVycjsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisJ
dW5zaWduZWQgbG9uZyBmZDsNCisJdW5zaWduZWQgbG9uZyBwZ29mZjsNCisN
CisJaWYgKHZlcmlmeV9hcmVhKFZFUklGWV9SRUFELCB1c2Vyc3RhY2ssIDMq
c2l6ZW9mKGxvbmcpKSkNCisJCXJldHVybiAtRUZBVUxUOw0KKw0KKwllcnIg
PSAwOw0KKwllcnIgfD0gX19nZXRfdXNlcihmbGFncywgdXNlcnN0YWNrKysp
Ow0KKwllcnIgfD0gX19nZXRfdXNlcihmZCwgdXNlcnN0YWNrKyspOw0KKwll
cnIgfD0gX19nZXRfdXNlcihwZ29mZiwgdXNlcnN0YWNrKTsNCisJaWYgKGVy
cikNCisJCXJldHVybiAtRUZBVUxUOw0KKwkNCisJcmV0dXJuIGRvX21tYXAy
KGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsIGZkLCBwZ29mZik7DQorfQ0KIC8q
DQogICogUGVyZm9ybSB0aGUgc2VsZWN0KG5kLCBpbiwgb3V0LCBleCwgdHYp
IGFuZCBtbWFwKCkgc3lzdGVtDQogICogY2FsbHMuIExpbnV4L2kzODYgZGlk
bid0IHVzZSB0byBiZSBhYmxlIHRvIGhhbmRsZSBtb3JlIHRoYW4NCi0tLSBs
aW51eC9hcmNoL2kzODYvY29uZmlnLmluLm9yaWcJVGh1IERlYyAgOSAwNToy
MjoyNCAxOTk5DQorKysgbGludXgvYXJjaC9pMzg2L2NvbmZpZy5pbglUaHUg
RGVjICA5IDA1OjIyOjQ3IDE5OTkNCkBAIC0zNSw2ICszNSw3IEBADQogZmkN
CiBpZiBbICIkQ09ORklHX002ODYiID0gInkiIF07IHRoZW4NCiAgICBkZWZp
bmVfYm9vbCBDT05GSUdfWDg2X0dPT0RfQVBJQyB5DQorICAgZGVmaW5lX2Jv
b2wgQ09ORklHX1g4Nl9GQVNUQ0FMTCB5DQogZmkNCiBpZiBbICIkQ09ORklH
X01LNyIgPSAieSIgXTsgdGhlbg0KICAgIGRlZmluZV9ib29sIENPTkZJR19Y
ODZfVFNDIHkNCg==
--79888902-2146931966-944821174=:1436
Content-Type: APPLICATION/OCTET-STREAM; NAME="fastcall2.tar.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9912101158220.1851@chiara.csoma.elte.hu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="fastcall2.tar.gz"

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
AHgAAA==
--79888902-2146931966-944821174=:1436--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/