Re: L4Ka. Regression with 4.7 and 4.8 ?
BERTRAND Joël <[email protected]> Sat, 22 Jun 2013 14:32:00 +0200
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <51C59940.3020009__8133.0947731205$1371904485$gmane$org@systella.fr> |
This is a multi-part message in MIME format.
--------------000907050602000700080009
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Hello,
I have bissected the code and found the faulty .o. I have attached
assembly output. idt.gcc46.s is the good one. If L4 is linked with
idt.gcc.47.s, it only reboots.
L4 sources are available here : git://github.com/l4ka/pistachio.git
Regards,
JKB
--------------000907050602000700080009
Content-Type: text/plain;
name="idt.gcc46.s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="idt.gcc46.s"
CS5maWxlCSJpZHQuY2MiCgkuc2VjdGlvbgkucm9kYXRhLnN0cjEuOCwiYU1TIixAcHJvZ2Jp
dHMsMQoJLmFsaWduIDgKLkxDMDoKCS5zdHJpbmcJIi9ob21lL2JlcnRyYW5kL29wZW52bXMv
bDQvcGlzdGFjaGlvL2tlcm5lbC9zcmMvZ2x1ZS92NC14ODYvaWR0LmNjIgoJLmFsaWduIDgK
LkxDMToKCS5zdHJpbmcJIkFzc2VydGlvbiBpbmRleCA8IElEVF9TSVpFIGZhaWxlZCBpbiBm
aWxlICVzLCBsaW5lICVkIChmbj0lcClcbiIKCS5zZWN0aW9uCS5pbml0LnN5c3RlbSwiYXgi
LEBwcm9nYml0cwoJLmFsaWduIDIKCS5wMmFsaWduIDQsLDE1CgkuZ2xvYmwJX1pONWlkdF90
OWluaXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJLnR5cGUJX1pONWlkdF90OWluaXRfZ2F0
ZUVtTlNfNnR5cGVfZUVQRnZ2RSwgQGZ1bmN0aW9uCl9aTjVpZHRfdDlpbml0X2dhdGVFbU5T
XzZ0eXBlX2VFUEZ2dkU6Ci5MRkI5NjoKCS5jZmlfc3RhcnRwcm9jCglzdWJxCSQ0MCwgJXJz
cAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJY21wcQkkMjU1LCAlcnNpCgltb3ZxCSVyYngs
IDgoJXJzcCkKCW1vdnEJJXJicCwgMTYoJXJzcCkKCW1vdnEJJXJjeCwgJXJieAoJLmNmaV9v
ZmZzZXQgNiwgLTMyCgkuY2ZpX29mZnNldCAzLCAtNDAKCW1vdnEJJXIxMiwgMjQoJXJzcCkK
CW1vdnEJJXIxMywgMzIoJXJzcCkKCW1vdnEJJXJzaSwgJXIxMgoJLmNmaV9vZmZzZXQgMTMs
IC0xNgoJLmNmaV9vZmZzZXQgMTIsIC0yNAoJbW92cQklcmRpLCAlcjEzCgltb3ZsCSVlZHgs
ICVlYnAKCWphCS5MOAouTDI6CgljbXBsCSQxLCAlZWJwCglqZQkuTDUKCWNtcGwJJDIsICVl
YnAKCWplCS5MNgoJdGVzdGwJJWVicCwgJWVicAoJLnAyYWxpZ24gNCwsMwoJam5lCS5MMQoJ
c2FscQkkNCwgJXIxMgoJbW92cQklcmJ4LCAlcmF4CglhZGRxCSVyMTIsICVyMTMKCXNocnEJ
JDE2LCAlcmF4Cgltb3Z3CSVieCwgMCglcjEzKQoJc2hycQkkMzIsICVyYngKCW1vdncJJWF4
LCA2KCVyMTMpCgltb3ZsCSVlYngsIDgoJXIxMykKCW1vdncJJDgsIDIoJXIxMykKCW1vdmIJ
JC0xMTQsIDUoJXIxMykKCW1vdmwJJDAsIDEyKCVyMTMpCgltb3ZiCSQwLCA0KCVyMTMpCi5M
MToKCW1vdnEJOCglcnNwKSwgJXJieAoJbW92cQkxNiglcnNwKSwgJXJicAoJbW92cQkyNCgl
cnNwKSwgJXIxMgoJbW92cQkzMiglcnNwKSwgJXIxMwoJYWRkcQkkNDAsICVyc3AKCS5jZmlf
cmVtZW1iZXJfc3RhdGUKCS5jZmlfZGVmX2NmYV9vZmZzZXQgOAoJLmNmaV9yZXN0b3JlIDEz
CgkuY2ZpX3Jlc3RvcmUgMTIKCS5jZmlfcmVzdG9yZSA2CgkuY2ZpX3Jlc3RvcmUgMwoJcmV0
CgkucDJhbGlnbiA0LCw3CgkucDJhbGlnbiAzCi5MNjoKCS5jZmlfcmVzdG9yZV9zdGF0ZQoJ
c2FscQkkNCwgJXIxMgoJbW92cQklcmJ4LCAlcmF4CglhZGRxCSVyMTIsICVyMTMKCXNocnEJ
JDE2LCAlcmF4Cgltb3Z3CSVieCwgMCglcjEzKQoJc2hycQkkMzIsICVyYngKCW1vdncJJWF4
LCA2KCVyMTMpCgltb3ZsCSVlYngsIDgoJXIxMykKCW1vdncJJDgsIDIoJXIxMykKCW1vdmIJ
JC0xMTMsIDUoJXIxMykKCW1vdmwJJDAsIDEyKCVyMTMpCgltb3ZiCSQwLCA0KCVyMTMpCglq
bXAJLkwxCgkucDJhbGlnbiA0LCw3CgkucDJhbGlnbiAzCi5MNToKCXNhbHEJJDQsICVyMTIK
CW1vdnEJJXJieCwgJXJheAoJYWRkcQklcjEyLCAlcjEzCglzaHJxCSQxNiwgJXJheAoJbW92
dwklYngsIDAoJXIxMykKCXNocnEJJDMyLCAlcmJ4Cgltb3Z3CSVheCwgNiglcjEzKQoJbW92
bAklZWJ4LCA4KCVyMTMpCgltb3Z3CSQ4LCAyKCVyMTMpCgltb3ZiCSQtMTgsIDUoJXIxMykK
CW1vdmwJJDAsIDEyKCVyMTMpCgltb3ZiCSQwLCA0KCVyMTMpCglqbXAJLkwxCi5MODoKCW1v
dnEJNDAoJXJzcCksICVyY3gKCW1vdmwJJDU0LCAlZWR4Cgltb3ZxCSQuTEMwLCAlcnNpCglt
b3ZxCSQuTEMxLCAlcmRpCgl4b3JsCSVlYXgsICVlYXgKCWNhbGwJcHJpbnRmCgl4b3JsCSVl
YXgsICVlYXgKI0FQUAojIDU0ICIvaG9tZS9iZXJ0cmFuZC9vcGVudm1zL2w0L3Bpc3RhY2hp
by9rZXJuZWwvc3JjL2dsdWUvdjQteDg2L2lkdC5jYyIgMQoJICAgaW50ICQzICAgICAgICAg
ICAgICAgICAgCiAgIGptcCAxZiAgICAgICAgICAgICAgICAgIAogICBtb3YgJDJmLCAlcmF4
ICAgICAgICAgICAgIAouc2VjdGlvbiAucm9kYXRhICAgICAgICAgICAKMjouYXNjaWkgIktE
IyBhc3NlcnQiICAgCi5ieXRlIDAgICAgICAgICAgICAgICAgICAgIAoucHJldmlvdXMgICAg
ICAgICAgICAgICAgICAKMTogICAgICAgICAgICAgICAgICAgICAgICAgCgojIDAgIiIgMgoj
Tk9fQVBQCglqbXAJLkwyCgkuY2ZpX2VuZHByb2MKLkxGRTk2OgoJLnNpemUJX1pONWlkdF90
OWluaXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RSwgLi1fWk41aWR0X3Q5aW5pdF9nYXRlRW1O
U182dHlwZV9lRVBGdnZFCgkudGV4dAoJLmFsaWduIDIKCS5wMmFsaWduIDQsLDE1CgkuZ2xv
YmwJX1pONWlkdF90OGFkZF9nYXRlRW1OU182dHlwZV9lRVBGdnZFCgkudHlwZQlfWk41aWR0
X3Q4YWRkX2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUsIEBmdW5jdGlvbgpfWk41aWR0X3Q4YWRk
X2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkU6Ci5MRkI5NzoKCS5jZmlfc3RhcnRwcm9jCglzdWJx
CSQ0MCwgJXJzcAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJY21wcQkkMjU1LCAlcnNpCglt
b3ZxCSVyYngsIDgoJXJzcCkKCW1vdnEJJXJicCwgMTYoJXJzcCkKCW1vdnEJJXJjeCwgJXJi
eAoJLmNmaV9vZmZzZXQgNiwgLTMyCgkuY2ZpX29mZnNldCAzLCAtNDAKCW1vdnEJJXIxMiwg
MjQoJXJzcCkKCW1vdnEJJXIxMywgMzIoJXJzcCkKCW1vdnEJJXJzaSwgJXIxMgoJLmNmaV9v
ZmZzZXQgMTMsIC0xNgoJLmNmaV9vZmZzZXQgMTIsIC0yNAoJbW92cQklcmRpLCAlcjEzCglt
b3ZsCSVlZHgsICVlYnAKCWphCS5MMTUKLkwxMDoKCWNtcGwJJDEsICVlYnAKCWplCS5MMTMK
CWNtcGwJJDIsICVlYnAKCWplCS5MMTQKCXRlc3RsCSVlYnAsICVlYnAKCS5wMmFsaWduIDQs
LDMKCWpuZQkuTDkKCXNhbHEJJDQsICVyMTIKCW1vdnEJJXJieCwgJXJheAoJYWRkcQklcjEy
LCAlcjEzCglzaHJxCSQxNiwgJXJheAoJbW92dwklYngsIDAoJXIxMykKCXNocnEJJDMyLCAl
cmJ4Cgltb3Z3CSVheCwgNiglcjEzKQoJbW92bAklZWJ4LCA4KCVyMTMpCgltb3Z3CSQ4LCAy
KCVyMTMpCgltb3ZiCSQtMTE0LCA1KCVyMTMpCgltb3ZsCSQwLCAxMiglcjEzKQoJbW92Ygkk
MCwgNCglcjEzKQouTDk6Cgltb3ZxCTgoJXJzcCksICVyYngKCW1vdnEJMTYoJXJzcCksICVy
YnAKCW1vdnEJMjQoJXJzcCksICVyMTIKCW1vdnEJMzIoJXJzcCksICVyMTMKCWFkZHEJJDQw
LCAlcnNwCgkuY2ZpX3JlbWVtYmVyX3N0YXRlCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDgKCS5j
ZmlfcmVzdG9yZSAxMwoJLmNmaV9yZXN0b3JlIDEyCgkuY2ZpX3Jlc3RvcmUgNgoJLmNmaV9y
ZXN0b3JlIDMKCXJldAoJLnAyYWxpZ24gNCwsNwoJLnAyYWxpZ24gMwouTDE0OgoJLmNmaV9y
ZXN0b3JlX3N0YXRlCglzYWxxCSQ0LCAlcjEyCgltb3ZxCSVyYngsICVyYXgKCWFkZHEJJXIx
MiwgJXIxMwoJc2hycQkkMTYsICVyYXgKCW1vdncJJWJ4LCAwKCVyMTMpCglzaHJxCSQzMiwg
JXJieAoJbW92dwklYXgsIDYoJXIxMykKCW1vdmwJJWVieCwgOCglcjEzKQoJbW92dwkkOCwg
MiglcjEzKQoJbW92YgkkLTExMywgNSglcjEzKQoJbW92bAkkMCwgMTIoJXIxMykKCW1vdmIJ
JDAsIDQoJXIxMykKCWptcAkuTDkKCS5wMmFsaWduIDQsLDcKCS5wMmFsaWduIDMKLkwxMzoK
CXNhbHEJJDQsICVyMTIKCW1vdnEJJXJieCwgJXJheAoJYWRkcQklcjEyLCAlcjEzCglzaHJx
CSQxNiwgJXJheAoJbW92dwklYngsIDAoJXIxMykKCXNocnEJJDMyLCAlcmJ4Cgltb3Z3CSVh
eCwgNiglcjEzKQoJbW92bAklZWJ4LCA4KCVyMTMpCgltb3Z3CSQ4LCAyKCVyMTMpCgltb3Zi
CSQtMTgsIDUoJXIxMykKCW1vdmwJJDAsIDEyKCVyMTMpCgltb3ZiCSQwLCA0KCVyMTMpCglq
bXAJLkw5Ci5MMTU6Cgltb3ZxCTQwKCVyc3ApLCAlcmN4Cgltb3ZsCSQ3MiwgJWVkeAoJbW92
cQkkLkxDMCwgJXJzaQoJbW92cQkkLkxDMSwgJXJkaQoJeG9ybAklZWF4LCAlZWF4CgljYWxs
CXByaW50ZgoJeG9ybAklZWF4LCAlZWF4CiNBUFAKIyA3MiAiL2hvbWUvYmVydHJhbmQvb3Bl
bnZtcy9sNC9waXN0YWNoaW8va2VybmVsL3NyYy9nbHVlL3Y0LXg4Ni9pZHQuY2MiIDEKCSAg
IGludCAkMyAgICAgICAgICAgICAgICAgIAogICBqbXAgMWYgICAgICAgICAgICAgICAgICAK
ICAgbW92ICQyZiwgJXJheCAgICAgICAgICAgICAKLnNlY3Rpb24gLnJvZGF0YSAgICAgICAg
ICAgCjI6LmFzY2lpICJLRCMgYXNzZXJ0IiAgIAouYnl0ZSAwICAgICAgICAgICAgICAgICAg
ICAKLnByZXZpb3VzICAgICAgICAgICAgICAgICAgCjE6ICAgICAgICAgICAgICAgICAgICAg
ICAgIAoKIyAwICIiIDIKI05PX0FQUAoJam1wCS5MMTAKCS5jZmlfZW5kcHJvYwouTEZFOTc6
Cgkuc2l6ZQlfWk41aWR0X3Q4YWRkX2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUsIC4tX1pONWlk
dF90OGFkZF9nYXRlRW1OU182dHlwZV9lRVBGdnZFCgkuYWxpZ24gMgoJLnAyYWxpZ24gNCws
MTUKCS5nbG9ibAlfWk41aWR0X3Q4YWN0aXZhdGVFdgoJLnR5cGUJX1pONWlkdF90OGFjdGl2
YXRlRXYsIEBmdW5jdGlvbgpfWk41aWR0X3Q4YWN0aXZhdGVFdjoKLkxGQjk4OgoJLmNmaV9z
dGFydHByb2MKCXN1YnEJJDE2LCAlcnNwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDI0Cgltb3Zx
CSVyZGksIDgoJXJzcCkKCW1vdncJJDQwOTYsIDYoJXJzcCkKI0FQUAojIDYwICIvaG9tZS9i
ZXJ0cmFuZC9vcGVudm1zL2w0L3Bpc3RhY2hpby9rZXJuZWwvc3JjL2FyY2gveDg2L3NlZ2Rl
c2MuaCIgMQoJbGlkdCA2KCVyc3ApCgojIDAgIiIgMgojTk9fQVBQCglhZGRxCSQxNiwgJXJz
cAoJLmNmaV9kZWZfY2ZhX29mZnNldCA4CglyZXQKCS5jZmlfZW5kcHJvYwouTEZFOTg6Cgku
c2l6ZQlfWk41aWR0X3Q4YWN0aXZhdGVFdiwgLi1fWk41aWR0X3Q4YWN0aXZhdGVFdgoJLnNl
Y3Rpb24JLmluaXQuY3B1LCJheCIsQHByb2diaXRzCgkuYWxpZ24gMgoJLnAyYWxpZ24gNCws
MTUKCS5nbG9ibAlfWk41aWR0X3RDMkV2CgkudHlwZQlfWk41aWR0X3RDMkV2LCBAZnVuY3Rp
b24KX1pONWlkdF90QzJFdjoKLkxGQjEwMDoKCS5jZmlfc3RhcnRwcm9jCglwdXNocQklcjEy
CgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2CgkuY2ZpX29mZnNldCAxMiwgLTE2Cgltb3ZxCSVy
ZGksICVyMTIKCXB1c2hxCSVyYnAKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMjQKCS5jZmlfb2Zm
c2V0IDYsIC0yNAoJbW92bAkkMjA0MywgJWVicAoJcHVzaHEJJXJieAoJLmNmaV9kZWZfY2Zh
X29mZnNldCAzMgoJLmNmaV9vZmZzZXQgMywgLTMyCgl4b3JsCSVlYngsICVlYngKCS5wMmFs
aWduIDQsLDcKCS5wMmFsaWduIDMKLkwxODoKCW1vdnEJJXJicCwgJXJheAoJeG9ybAklZWR4
LCAlZWR4Cgltb3ZxCSVyYngsICVyc2kKCXNhbHEJJDgsICVyYXgKCW1vdnEJJXIxMiwgJXJk
aQoJc3VicQkkOCwgJXJicAoJb3JiCSQtMjQsICVhbAoJbW92cQklcmF4LCBleGNfY2F0Y2hf
YWxsKCwlcmJ4LDgpCgltb3ZzbHEJJWVieCwgJXJheAoJaW5jcQklcmJ4CglsZWFxCWV4Y19j
YXRjaF9hbGwoLCVyYXgsOCksICVyY3gKCWNhbGwJX1pONWlkdF90OGFkZF9nYXRlRW1OU182
dHlwZV9lRVBGdnZFCgljbXBxCSQyNTYsICVyYngKCWpuZQkuTDE4Cgltb3ZxCSVyMTIsICVy
ZGkKCW1vdnEJJGV4Y19kZWJ1ZywgJXJjeAoJeG9ybAklZWR4LCAlZWR4Cgltb3ZsCSQxLCAl
ZXNpCgljYWxsCV9aTjVpZHRfdDlpbml0X2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUKCW1vdnEJ
JXIxMiwgJXJkaQoJbW92cQkkZXhjX25taSwgJXJjeAoJeG9ybAklZWR4LCAlZWR4Cgltb3Zs
CSQyLCAlZXNpCgljYWxsCV9aTjVpZHRfdDlpbml0X2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUK
CW1vdnEJJXIxMiwgJXJkaQoJbW92cQkkZXhjX2JyZWFrcG9pbnQsICVyY3gKCW1vdmwJJDEs
ICVlZHgKCW1vdmwJJDMsICVlc2kKCWNhbGwJX1pONWlkdF90OWluaXRfZ2F0ZUVtTlNfNnR5
cGVfZUVQRnZ2RQoJbW92cQklcjEyLCAlcmRpCgltb3ZxCSRleGNfaW52YWxpZF9vcGNvZGUs
ICVyY3gKCXhvcmwJJWVkeCwgJWVkeAoJbW92bAkkNiwgJWVzaQoJY2FsbAlfWk41aWR0X3Q5
aW5pdF9nYXRlRW1OU182dHlwZV9lRVBGdnZFCgltb3ZxCSVyMTIsICVyZGkKCW1vdnEJJGV4
Y19ub21hdGhfY29wcm9jLCAlcmN4Cgl4b3JsCSVlZHgsICVlZHgKCW1vdmwJJDcsICVlc2kK
CWNhbGwJX1pONWlkdF90OWluaXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJbW92cQklcjEy
LCAlcmRpCgltb3ZxCSRleGNfZ3AsICVyY3gKCXhvcmwJJWVkeCwgJWVkeAoJbW92bAkkMTMs
ICVlc2kKCWNhbGwJX1pONWlkdF90OWluaXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJcG9w
cQklcmJ4CgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDI0CgkuY2ZpX3Jlc3RvcmUgMwoJcG9wcQkl
cmJwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2CgkuY2ZpX3Jlc3RvcmUgNgoJbW92cQklcjEy
LCAlcmRpCgltb3ZxCSRleGNfcGFnZWZhdWx0LCAlcmN4Cgl4b3JsCSVlZHgsICVlZHgKCXBv
cHEJJXIxMgoJLmNmaV9kZWZfY2ZhX29mZnNldCA4CgkuY2ZpX3Jlc3RvcmUgMTIKCW1vdmwJ
JDE0LCAlZXNpCglqbXAJX1pONWlkdF90OWluaXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJ
LmNmaV9lbmRwcm9jCi5MRkUxMDA6Cgkuc2l6ZQlfWk41aWR0X3RDMkV2LCAuLV9aTjVpZHRf
dEMyRXYKCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAsImF4IixAcHJvZ2JpdHMKCS5wMmFsaWdu
IDQsLDE1CgkudHlwZQlfR0xPQkFMX19zdWJfSS41NTUzMl9pZHQsIEBmdW5jdGlvbgpfR0xP
QkFMX19zdWJfSS41NTUzMl9pZHQ6Ci5MRkIxMDM6CgkuY2ZpX3N0YXJ0cHJvYwoJbW92cQkk
aWR0LCAlcmRpCglqbXAJX1pONWlkdF90QzFFdgoJLmNmaV9lbmRwcm9jCi5MRkUxMDM6Cgku
c2l6ZQlfR0xPQkFMX19zdWJfSS41NTUzMl9pZHQsIC4tX0dMT0JBTF9fc3ViX0kuNTU1MzJf
aWR0Cgkuc2VjdGlvbgkuY3RvcnMuMTAwMDMsImF3IixAcHJvZ2JpdHMKCS5hbGlnbiA4Cgku
cXVhZAlfR0xPQkFMX19zdWJfSS41NTUzMl9pZHQKCS5nbG9ibAlpZHQKCS5zZWN0aW9uCS5k
YXRhLng4Ni5pZHQsImF3IixAcHJvZ2JpdHMKCS5hbGlnbiAzMgoJLnR5cGUJaWR0LCBAb2Jq
ZWN0Cgkuc2l6ZQlpZHQsIDQwOTYKaWR0OgoJLnplcm8JNDA5NgoJLmdsb2JsCV9aTjVpZHRf
dEMxRXYKCS5zZXQJX1pONWlkdF90QzFFdixfWk41aWR0X3RDMkV2CgkuaWRlbnQJIkdDQzog
KERlYmlhbiA0LjYuNC0yKSA0LjYuNCIKCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixA
cHJvZ2JpdHMK
--------------000907050602000700080009
Content-Type: text/plain;
name="idt.gcc47.s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="idt.gcc47.s"
CS5maWxlCSJpZHQuY2MiCgkuc2VjdGlvbgkucm9kYXRhLnN0cjEuOCwiYU1TIixAcHJvZ2Jp
dHMsMQoJLmFsaWduIDgKLkxDMDoKCS5zdHJpbmcJIi9ob21lL2JlcnRyYW5kL29wZW52bXMv
bDQvcGlzdGFjaGlvL2tlcm5lbC9zcmMvZ2x1ZS92NC14ODYvaWR0LmNjIgoJLmFsaWduIDgK
LkxDMToKCS5zdHJpbmcJIkFzc2VydGlvbiBpbmRleCA8IElEVF9TSVpFIGZhaWxlZCBpbiBm
aWxlICVzLCBsaW5lICVkIChmbj0lcClcbiIKCS5zZWN0aW9uCS5pbml0LnN5c3RlbSwiYXgi
LEBwcm9nYml0cwoJLmFsaWduIDIKCS5wMmFsaWduIDQsLDE1CgkuZ2xvYmwJX1pONWlkdF90
OWluaXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJLnR5cGUJX1pONWlkdF90OWluaXRfZ2F0
ZUVtTlNfNnR5cGVfZUVQRnZ2RSwgQGZ1bmN0aW9uCl9aTjVpZHRfdDlpbml0X2dhdGVFbU5T
XzZ0eXBlX2VFUEZ2dkU6Ci5MRkI5NjoKCS5jZmlfc3RhcnRwcm9jCglzdWJxCSQ0MCwgJXJz
cAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJY21wcQkkMjU1LCAlcnNpCgltb3ZxCSVyYngs
IDgoJXJzcCkKCW1vdnEJJXJicCwgMTYoJXJzcCkKCS5jZmlfb2Zmc2V0IDMsIC00MAoJLmNm
aV9vZmZzZXQgNiwgLTMyCgltb3ZxCSVyY3gsICVyYngKCW1vdnEJJXIxMiwgMjQoJXJzcCkK
CW1vdnEJJXIxMywgMzIoJXJzcCkKCS5jZmlfb2Zmc2V0IDEyLCAtMjQKCS5jZmlfb2Zmc2V0
IDEzLCAtMTYKCW1vdnEJJXJzaSwgJXIxMgoJbW92cQklcmRpLCAlcjEzCgltb3ZsCSVlZHgs
ICVlYnAKCWphCS5MOQouTDI6CgljbXBsCSQxLCAlZWJwCglqZQkuTDUKCWNtcGwJJDIsICVl
YnAKCWplCS5MNgoJdGVzdGwJJWVicCwgJWVicAoJLnAyYWxpZ24gNCwsMwoJam5lCS5MMQoJ
c2FscQkkNCwgJXIxMgoJbW92cQklcmJ4LCAlcmF4CglhZGRxCSVyMTMsICVyMTIKCXNocnEJ
JDE2LCAlcmF4Cgltb3Z3CSVieCwgKCVyMTIpCglzaHJxCSQzMiwgJXJieAoJbW92dwklYXgs
IDYoJXIxMikKCW1vdmwJJWVieCwgOCglcjEyKQoJbW92dwkkOCwgMiglcjEyKQoJbW92Ygkk
LTExNCwgNSglcjEyKQoJbW92bAkkMCwgMTIoJXIxMikKCW1vdmIJJDAsIDQoJXIxMikKLkwx
OgoJbW92cQk4KCVyc3ApLCAlcmJ4Cgltb3ZxCTE2KCVyc3ApLCAlcmJwCgltb3ZxCTI0KCVy
c3ApLCAlcjEyCgltb3ZxCTMyKCVyc3ApLCAlcjEzCglhZGRxCSQ0MCwgJXJzcAoJLmNmaV9y
ZW1lbWJlcl9zdGF0ZQoJLmNmaV9yZXN0b3JlIDEzCgkuY2ZpX3Jlc3RvcmUgMTIKCS5jZmlf
cmVzdG9yZSA2CgkuY2ZpX3Jlc3RvcmUgMwoJLmNmaV9kZWZfY2ZhX29mZnNldCA4CglyZXQK
CS5wMmFsaWduIDQsLDcKCS5wMmFsaWduIDMKLkw2OgoJLmNmaV9yZXN0b3JlX3N0YXRlCglz
YWxxCSQ0LCAlcjEyCgltb3ZxCSVyYngsICVyYXgKCWFkZHEJJXIxMywgJXIxMgoJc2hycQkk
MTYsICVyYXgKCW1vdncJJWJ4LCAoJXIxMikKCXNocnEJJDMyLCAlcmJ4Cgltb3Z3CSVheCwg
NiglcjEyKQoJbW92bAklZWJ4LCA4KCVyMTIpCgltb3Z3CSQ4LCAyKCVyMTIpCgltb3ZiCSQt
MTEzLCA1KCVyMTIpCgltb3ZsCSQwLCAxMiglcjEyKQoJbW92YgkkMCwgNCglcjEyKQoJam1w
CS5MMQoJLnAyYWxpZ24gNCwsNwoJLnAyYWxpZ24gMwouTDU6CglzYWxxCSQ0LCAlcjEyCglt
b3ZxCSVyYngsICVyYXgKCWFkZHEJJXIxMywgJXIxMgoJc2hycQkkMTYsICVyYXgKCW1vdncJ
JWJ4LCAoJXIxMikKCXNocnEJJDMyLCAlcmJ4Cgltb3Z3CSVheCwgNiglcjEyKQoJbW92bAkl
ZWJ4LCA4KCVyMTIpCgltb3Z3CSQ4LCAyKCVyMTIpCgltb3ZiCSQtMTgsIDUoJXIxMikKCW1v
dmwJJDAsIDEyKCVyMTIpCgltb3ZiCSQwLCA0KCVyMTIpCglqbXAJLkwxCi5MOToKCW1vdnEJ
NDAoJXJzcCksICVyY3gKCW1vdmwJJDU0LCAlZWR4Cgltb3ZxCSQuTEMwLCAlcnNpCgltb3Zx
CSQuTEMxLCAlcmRpCgl4b3JsCSVlYXgsICVlYXgKCWNhbGwJcHJpbnRmCgl4b3JsCSVlYXgs
ICVlYXgKI0FQUAojIDU0ICIvaG9tZS9iZXJ0cmFuZC9vcGVudm1zL2w0L3Bpc3RhY2hpby9r
ZXJuZWwvc3JjL2dsdWUvdjQteDg2L2lkdC5jYyIgMQoJICAgaW50ICQzICAgICAgICAgICAg
ICAgICAgCiAgIGptcCAxZiAgICAgICAgICAgICAgICAgIAogICBtb3YgJDJmLCAlcmF4ICAg
ICAgICAgICAgIAouc2VjdGlvbiAucm9kYXRhICAgICAgICAgICAKMjouYXNjaWkgIktEIyBh
c3NlcnQiICAgCi5ieXRlIDAgICAgICAgICAgICAgICAgICAgIAoucHJldmlvdXMgICAgICAg
ICAgICAgICAgICAKMTogICAgICAgICAgICAgICAgICAgICAgICAgCgojIDAgIiIgMgojTk9f
QVBQCglqbXAJLkwyCgkuY2ZpX2VuZHByb2MKLkxGRTk2OgoJLnNpemUJX1pONWlkdF90OWlu
aXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RSwgLi1fWk41aWR0X3Q5aW5pdF9nYXRlRW1OU182
dHlwZV9lRVBGdnZFCgkudGV4dAoJLmFsaWduIDIKCS5wMmFsaWduIDQsLDE1CgkuZ2xvYmwJ
X1pONWlkdF90OGFkZF9nYXRlRW1OU182dHlwZV9lRVBGdnZFCgkudHlwZQlfWk41aWR0X3Q4
YWRkX2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUsIEBmdW5jdGlvbgpfWk41aWR0X3Q4YWRkX2dh
dGVFbU5TXzZ0eXBlX2VFUEZ2dkU6Ci5MRkI5NzoKCS5jZmlfc3RhcnRwcm9jCglzdWJxCSQ0
MCwgJXJzcAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJY21wcQkkMjU1LCAlcnNpCgltb3Zx
CSVyYngsIDgoJXJzcCkKCW1vdnEJJXJicCwgMTYoJXJzcCkKCS5jZmlfb2Zmc2V0IDMsIC00
MAoJLmNmaV9vZmZzZXQgNiwgLTMyCgltb3ZxCSVyY3gsICVyYngKCW1vdnEJJXIxMiwgMjQo
JXJzcCkKCW1vdnEJJXIxMywgMzIoJXJzcCkKCS5jZmlfb2Zmc2V0IDEyLCAtMjQKCS5jZmlf
b2Zmc2V0IDEzLCAtMTYKCW1vdnEJJXJzaSwgJXIxMgoJbW92cQklcmRpLCAlcjEzCgltb3Zs
CSVlZHgsICVlYnAKCWphCS5MMTcKLkwxMToKCWNtcGwJJDEsICVlYnAKCWplCS5MMTQKCWNt
cGwJJDIsICVlYnAKCWplCS5MMTUKCXRlc3RsCSVlYnAsICVlYnAKCS5wMmFsaWduIDQsLDMK
CWpuZQkuTDEwCglzYWxxCSQ0LCAlcjEyCgltb3ZxCSVyYngsICVyYXgKCWFkZHEJJXIxMywg
JXIxMgoJc2hycQkkMTYsICVyYXgKCW1vdncJJWJ4LCAoJXIxMikKCXNocnEJJDMyLCAlcmJ4
Cgltb3Z3CSVheCwgNiglcjEyKQoJbW92bAklZWJ4LCA4KCVyMTIpCgltb3Z3CSQ4LCAyKCVy
MTIpCgltb3ZiCSQtMTE0LCA1KCVyMTIpCgltb3ZsCSQwLCAxMiglcjEyKQoJbW92YgkkMCwg
NCglcjEyKQouTDEwOgoJbW92cQk4KCVyc3ApLCAlcmJ4Cgltb3ZxCTE2KCVyc3ApLCAlcmJw
Cgltb3ZxCTI0KCVyc3ApLCAlcjEyCgltb3ZxCTMyKCVyc3ApLCAlcjEzCglhZGRxCSQ0MCwg
JXJzcAoJLmNmaV9yZW1lbWJlcl9zdGF0ZQoJLmNmaV9yZXN0b3JlIDEzCgkuY2ZpX3Jlc3Rv
cmUgMTIKCS5jZmlfcmVzdG9yZSA2CgkuY2ZpX3Jlc3RvcmUgMwoJLmNmaV9kZWZfY2ZhX29m
ZnNldCA4CglyZXQKCS5wMmFsaWduIDQsLDcKCS5wMmFsaWduIDMKLkwxNToKCS5jZmlfcmVz
dG9yZV9zdGF0ZQoJc2FscQkkNCwgJXIxMgoJbW92cQklcmJ4LCAlcmF4CglhZGRxCSVyMTMs
ICVyMTIKCXNocnEJJDE2LCAlcmF4Cgltb3Z3CSVieCwgKCVyMTIpCglzaHJxCSQzMiwgJXJi
eAoJbW92dwklYXgsIDYoJXIxMikKCW1vdmwJJWVieCwgOCglcjEyKQoJbW92dwkkOCwgMigl
cjEyKQoJbW92YgkkLTExMywgNSglcjEyKQoJbW92bAkkMCwgMTIoJXIxMikKCW1vdmIJJDAs
IDQoJXIxMikKCWptcAkuTDEwCgkucDJhbGlnbiA0LCw3CgkucDJhbGlnbiAzCi5MMTQ6Cglz
YWxxCSQ0LCAlcjEyCgltb3ZxCSVyYngsICVyYXgKCWFkZHEJJXIxMywgJXIxMgoJc2hycQkk
MTYsICVyYXgKCW1vdncJJWJ4LCAoJXIxMikKCXNocnEJJDMyLCAlcmJ4Cgltb3Z3CSVheCwg
NiglcjEyKQoJbW92bAklZWJ4LCA4KCVyMTIpCgltb3Z3CSQ4LCAyKCVyMTIpCgltb3ZiCSQt
MTgsIDUoJXIxMikKCW1vdmwJJDAsIDEyKCVyMTIpCgltb3ZiCSQwLCA0KCVyMTIpCglqbXAJ
LkwxMAouTDE3OgoJbW92cQk0MCglcnNwKSwgJXJjeAoJbW92bAkkNzIsICVlZHgKCW1vdnEJ
JC5MQzAsICVyc2kKCW1vdnEJJC5MQzEsICVyZGkKCXhvcmwJJWVheCwgJWVheAoJY2FsbAlw
cmludGYKCXhvcmwJJWVheCwgJWVheAojQVBQCiMgNzIgIi9ob21lL2JlcnRyYW5kL29wZW52
bXMvbDQvcGlzdGFjaGlvL2tlcm5lbC9zcmMvZ2x1ZS92NC14ODYvaWR0LmNjIiAxCgkgICBp
bnQgJDMgICAgICAgICAgICAgICAgICAKICAgam1wIDFmICAgICAgICAgICAgICAgICAgCiAg
IG1vdiAkMmYsICVyYXggICAgICAgICAgICAgCi5zZWN0aW9uIC5yb2RhdGEgICAgICAgICAg
IAoyOi5hc2NpaSAiS0QjIGFzc2VydCIgICAKLmJ5dGUgMCAgICAgICAgICAgICAgICAgICAg
Ci5wcmV2aW91cyAgICAgICAgICAgICAgICAgIAoxOiAgICAgICAgICAgICAgICAgICAgICAg
ICAKCiMgMCAiIiAyCiNOT19BUFAKCWptcAkuTDExCgkuY2ZpX2VuZHByb2MKLkxGRTk3OgoJ
LnNpemUJX1pONWlkdF90OGFkZF9nYXRlRW1OU182dHlwZV9lRVBGdnZFLCAuLV9aTjVpZHRf
dDhhZGRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJLmFsaWduIDIKCS5wMmFsaWduIDQsLDE1
CgkuZ2xvYmwJX1pONWlkdF90OGFjdGl2YXRlRXYKCS50eXBlCV9aTjVpZHRfdDhhY3RpdmF0
ZUV2LCBAZnVuY3Rpb24KX1pONWlkdF90OGFjdGl2YXRlRXY6Ci5MRkI5ODoKCS5jZmlfc3Rh
cnRwcm9jCglzdWJxCSQxNiwgJXJzcAoJLmNmaV9kZWZfY2ZhX29mZnNldCAyNAoJbW92cQkl
cmRpLCA4KCVyc3ApCgltb3Z3CSQ0MDk2LCA2KCVyc3ApCiNBUFAKIyA2MCAiL2hvbWUvYmVy
dHJhbmQvb3BlbnZtcy9sNC9waXN0YWNoaW8va2VybmVsL3NyYy9hcmNoL3g4Ni9zZWdkZXNj
LmgiIDEKCWxpZHQgNiglcnNwKQoKIyAwICIiIDIKI05PX0FQUAoJYWRkcQkkMTYsICVyc3AK
CS5jZmlfZGVmX2NmYV9vZmZzZXQgOAoJcmV0CgkuY2ZpX2VuZHByb2MKLkxGRTk4OgoJLnNp
emUJX1pONWlkdF90OGFjdGl2YXRlRXYsIC4tX1pONWlkdF90OGFjdGl2YXRlRXYKCS5zZWN0
aW9uCS5pbml0LmNwdSwiYXgiLEBwcm9nYml0cwoJLmFsaWduIDIKCS5wMmFsaWduIDQsLDE1
CgkuZ2xvYmwJX1pONWlkdF90QzJFdgoJLnR5cGUJX1pONWlkdF90QzJFdiwgQGZ1bmN0aW9u
Cl9aTjVpZHRfdEMyRXY6Ci5MRkIxMDA6CgkuY2ZpX3N0YXJ0cHJvYwoJcHVzaHEJJXIxMgoJ
LmNmaV9kZWZfY2ZhX29mZnNldCAxNgoJLmNmaV9vZmZzZXQgMTIsIC0xNgoJbW92cQklcmRp
LCAlcjEyCglwdXNocQklcmJwCgkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDI0CgkuY2ZpX29mZnNl
dCA2LCAtMjQKCW1vdmwJJDIwNDMsICVlYnAKCXB1c2hxCSVyYngKCS5jZmlfZGVmX2NmYV9v
ZmZzZXQgMzIKCS5jZmlfb2Zmc2V0IDMsIC0zMgoJeG9ybAklZWJ4LCAlZWJ4CgkucDJhbGln
biA0LCw3CgkucDJhbGlnbiAzCi5MMjE6Cgltb3ZxCSVyYnAsICVyYXgKCXhvcmwJJWVkeCwg
JWVkeAoJbW92cQklcmJ4LCAlcnNpCglzYWxxCSQ4LCAlcmF4Cgltb3ZxCSVyMTIsICVyZGkK
CXN1YnEJJDgsICVyYnAKCW9yYgkkLTI0LCAlYWwKCW1vdnEJJXJheCwgZXhjX2NhdGNoX2Fs
bCgsJXJieCw4KQoJbW92c2xxCSVlYngsICVyYXgKCWluY3EJJXJieAoJbGVhcQlleGNfY2F0
Y2hfYWxsKCwlcmF4LDgpLCAlcmN4CgljYWxsCV9aTjVpZHRfdDhhZGRfZ2F0ZUVtTlNfNnR5
cGVfZUVQRnZ2RQoJY21wcQkkMjU2LCAlcmJ4CglqbmUJLkwyMQoJbW92cQklcjEyLCAlcmRp
Cgltb3ZxCSRleGNfZGVidWcsICVyY3gKCXhvcmwJJWVkeCwgJWVkeAoJbW92bAkkMSwgJWVz
aQoJY2FsbAlfWk41aWR0X3Q5aW5pdF9nYXRlRW1OU182dHlwZV9lRVBGdnZFCgltb3ZxCSVy
MTIsICVyZGkKCW1vdnEJJGV4Y19ubWksICVyY3gKCXhvcmwJJWVkeCwgJWVkeAoJbW92bAkk
MiwgJWVzaQoJY2FsbAlfWk41aWR0X3Q5aW5pdF9nYXRlRW1OU182dHlwZV9lRVBGdnZFCglt
b3ZxCSVyMTIsICVyZGkKCW1vdnEJJGV4Y19icmVha3BvaW50LCAlcmN4Cgltb3ZsCSQxLCAl
ZWR4Cgltb3ZsCSQzLCAlZXNpCgljYWxsCV9aTjVpZHRfdDlpbml0X2dhdGVFbU5TXzZ0eXBl
X2VFUEZ2dkUKCW1vdnEJJXIxMiwgJXJkaQoJbW92cQkkZXhjX2ludmFsaWRfb3Bjb2RlLCAl
cmN4Cgl4b3JsCSVlZHgsICVlZHgKCW1vdmwJJDYsICVlc2kKCWNhbGwJX1pONWlkdF90OWlu
aXRfZ2F0ZUVtTlNfNnR5cGVfZUVQRnZ2RQoJbW92cQklcjEyLCAlcmRpCgltb3ZxCSRleGNf
bm9tYXRoX2NvcHJvYywgJXJjeAoJeG9ybAklZWR4LCAlZWR4Cgltb3ZsCSQ3LCAlZXNpCglj
YWxsCV9aTjVpZHRfdDlpbml0X2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUKCW1vdnEJJXIxMiwg
JXJkaQoJbW92cQkkZXhjX2dwLCAlcmN4Cgl4b3JsCSVlZHgsICVlZHgKCW1vdmwJJDEzLCAl
ZXNpCgljYWxsCV9aTjVpZHRfdDlpbml0X2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUKCXBvcHEJ
JXJieAoJLmNmaV9yZXN0b3JlIDMKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMjQKCXBvcHEJJXJi
cAoJLmNmaV9yZXN0b3JlIDYKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKCW1vdnEJJXIxMiwg
JXJkaQoJbW92cQkkZXhjX3BhZ2VmYXVsdCwgJXJjeAoJeG9ybAklZWR4LCAlZWR4Cglwb3Bx
CSVyMTIKCS5jZmlfcmVzdG9yZSAxMgoJLmNmaV9kZWZfY2ZhX29mZnNldCA4Cgltb3ZsCSQx
NCwgJWVzaQoJam1wCV9aTjVpZHRfdDlpbml0X2dhdGVFbU5TXzZ0eXBlX2VFUEZ2dkUKCS5j
ZmlfZW5kcHJvYwouTEZFMTAwOgoJLnNpemUJX1pONWlkdF90QzJFdiwgLi1fWk41aWR0X3RD
MkV2CgkuZ2xvYmwJX1pONWlkdF90QzFFdgoJLnNldAlfWk41aWR0X3RDMUV2LF9aTjVpZHRf
dEMyRXYKCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAsImF4IixAcHJvZ2JpdHMKCS5wMmFsaWdu
IDQsLDE1CgkudHlwZQlfR0xPQkFMX19zdWJfSS41NTUzMl9pZHQsIEBmdW5jdGlvbgpfR0xP
QkFMX19zdWJfSS41NTUzMl9pZHQ6Ci5MRkIxMDM6CgkuY2ZpX3N0YXJ0cHJvYwoJbW92cQkk
aWR0LCAlcmRpCglqbXAJX1pONWlkdF90QzFFdgoJLmNmaV9lbmRwcm9jCi5MRkUxMDM6Cgku
c2l6ZQlfR0xPQkFMX19zdWJfSS41NTUzMl9pZHQsIC4tX0dMT0JBTF9fc3ViX0kuNTU1MzJf
aWR0Cgkuc2VjdGlvbgkuaW5pdF9hcnJheS41NTUzMiwiYXciCgkuYWxpZ24gOAoJLnF1YWQJ
X0dMT0JBTF9fc3ViX0kuNTU1MzJfaWR0CgkuZ2xvYmwJaWR0Cgkuc2VjdGlvbgkuZGF0YS54
ODYuaWR0LCJhdyIsQHByb2diaXRzCgkuYWxpZ24gMzIKCS50eXBlCWlkdCwgQG9iamVjdAoJ
LnNpemUJaWR0LCA0MDk2CmlkdDoKCS56ZXJvCTQwOTYKCS5pZGVudAkiR0NDOiAoRGViaWFu
IDQuNy4zLTQpIDQuNy4zIgoJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0
cwo=
--------------000907050602000700080009
Content-Type: text/x-c++src;
name="idt.cc"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="idt.cc"
/*********************************************************************
*
* Copyright (C) 2002-2004, 2007-2008, 2010, Karlsruhe University
*
* File path: glue/v4-x86/idt.cc
* Description: v4 specific idt implementation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: idt.cc,v 1.11 2004/05/31 14:15:59 stoess Exp $
*
********************************************************************/
/* trap definition */
#include INC_ARCH(traps.h)
#include INC_ARCH(segdesc.h)
#include INC_GLUE(syscalls.h)
#include INC_GLUE(idt.h)
#include INC_GLUE(traphandler.h)
#include <debug.h>
#include <ctors.h>
/**
* idt: the global IDT (see: IA32 Vol 3)
*/
idt_t idt UNIT("x86.idt") CTORPRIO(CTORPRIO_GLOBAL, 3);
void SECTION(".init.system")
idt_t::init_gate(word_t index, idt_t::type_e type, void (*address)())
{
ASSERT(index < IDT_SIZE);
switch (type)
{
case interrupt:
descriptors[index].set(X86_KCS, address, x86_idtdesc_t::interrupt, 0);
break;
case syscall:
descriptors[index].set(X86_KCS, address, x86_idtdesc_t::interrupt, 3);
break;
case trap:
descriptors[index].set(X86_KCS, address, x86_idtdesc_t::trap, 0);
break;
}
}
void idt_t::add_gate(word_t index, idt_t::type_e type, void (*address)())
{
ASSERT(index < IDT_SIZE);
switch (type)
{
case interrupt:
descriptors[index].set(X86_KCS, address, x86_idtdesc_t::interrupt, 0);
break;
case syscall:
descriptors[index].set(X86_KCS, address, x86_idtdesc_t::interrupt, 3);
break;
case trap:
descriptors[index].set(X86_KCS, address, x86_idtdesc_t::trap, 0);
break;
}
}
/**
* idt_t::activate: activates the previously set up IDT
*/
void idt_t::activate()
{
x86_descreg_t idt((word_t) descriptors, sizeof(descriptors));
idt.setdescreg(x86_descreg_t::idtr);
}
idt_t::idt_t()
{
for (int i=0;i<IDT_SIZE;i++){
/*
* Synthesize call to exc_catch_common
*
* idt
* exc_catch_all[IDT_SIZE]
* exc_catch_common
*
* e8 = Near call with 4 byte offset (5 byte)
*
*/
exc_catch_all[i] = ( (sizeof(exc_catch_all) - i * sizeof(u64_t) - 5) << 8) | 0xe8;
add_gate(i, interrupt, (func_exc) &exc_catch_all[i]);
}
/* setup the exception gates */
#if defined(CONFIG_DEBUG)
init_gate(X86_EXC_DEBUG, interrupt, exc_debug);
init_gate(X86_EXC_NMI, interrupt, exc_nmi);
init_gate(X86_EXC_BREAKPOINT, syscall,exc_breakpoint);
#endif
init_gate(X86_EXC_INVALIDOPCODE, interrupt, exc_invalid_opcode);
init_gate(X86_EXC_NOMATH_COPROC, interrupt, exc_nomath_coproc);
init_gate(X86_EXC_GENERAL_PROTECTION, interrupt, exc_gp);
init_gate(X86_EXC_PAGEFAULT, interrupt, exc_pagefault);
// 15 reserved
#if defined(CONFIG_SUBARCH_X32)
// syscalls
init_gate(0x30, syscall, exc_user_sysipc);
init_gate(0x31, syscall, exc_user_syscall);
#endif
}
--------------000907050602000700080009
Content-Type: text/x-chdr;
name="idt.h"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="idt.h"
/*********************************************************************
*
* Copyright (C) 2002, 2007-2008, 2010, Karlsruhe University
*
* File path: glue/v4-x86/idt.h
* Description:
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: idt.h,v 1.10 2003/09/24 19:04:36 skoglund Exp $
*
********************************************************************/
#ifndef __GLUE_V4_X86__X32__IDT_H__
#define __GLUE_V4_X86__X32__IDT_H__
#include <debug.h>
#include INC_ARCH(segdesc.h)
#include INC_GLUE(config.h)
class idt_t
{
public:
enum type_e
{
interrupt = 0,
syscall = 1,
trap = 2
};
idt_t() SECTION(".init.cpu");
x86_idtdesc_t get_descriptor(word_t index);
void add_gate(word_t index, type_e type, void (*address)());
void activate();
private:
void init_gate(word_t index, type_e type, void (*address)());
x86_idtdesc_t descriptors[IDT_SIZE];
};
INLINE x86_idtdesc_t idt_t::get_descriptor(word_t index)
{
ASSERT(index < IDT_SIZE);
return descriptors[index];
}
extern idt_t idt;
#endif /* !__GLUE_V4_X86__X32__IDT_H__ */
--------------000907050602000700080009--