From owner-freebsd-hackers Sun Mar 28 17:45:27 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from alpo.whistle.com (alpo.whistle.com [207.76.204.38]) by hub.freebsd.org (Postfix) with ESMTP id 2CC0714ED4 for ; Sun, 28 Mar 1999 17:45:25 -0800 (PST) (envelope-from julian@whistle.com) Received: from s204m82.isp.whistle.com (s204m82.isp.whistle.com [207.76.204.82] (may be forged)) by alpo.whistle.com (8.9.1a/8.9.1) with ESMTP id RAA50628; Sun, 28 Mar 1999 17:44:02 -0800 (PST) Date: Sun, 28 Mar 1999 17:43:45 -0800 (PST) From: Julian Elischer X-Sender: julian@s204m82.isp.whistle.com To: Alfred Perlstein Cc: hackers@FreeBSD.ORG, mckusick@mckusick.com Subject: Re: serial console AND remote gdb possible? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1692368948-922671825=:254" Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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. --0-1692368948-922671825=:254 Content-Type: TEXT/PLAIN; charset=US-ASCII Here's a patch that compiles cleanly, but that I can't check here (no 2nd machine at home). It purports to add support for running gdb out a different sio port from the one the console is running out. Select the port by adding 0x80 to the flags for that port. If no port is so selected it will default to the serial console. The gdb speed can be set with the definition of GDB_BAUD or after booting, with sysctl machdep.gdbspeed let me know how this works as I'm flying blind on this one.. :-) julian On Sun, 28 Mar 1999, Alfred Perlstein wrote: > On Sun, 28 Mar 1999, Julian Elischer wrote: > > > On Sat, 27 Mar 1999, Jordan K. Hubbard wrote: > > > > > > I've been trying several combinations of flags to get > > > > one serial port to be my DDB/system console and > > > > the other to be my remote GDB port. > > > > > > ddb/gdb go on the same port - you can't split functionalty along those > > > lines. > > > > > > - Jordan > > > > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > > with "unsubscribe freebsd-hackers" in the body of the message > > Well that's true for now, but kirk and I have been thinking about being > > able to specify a separate port for gdb.. > > > > in fact I think he may be working on it this weekend.. > > if not I may do it next week. > > Please just give me a spec on how you want to specify which port, > what i'm going to try is setting the port via flags, and perhaps > a variable passed in for the bootloeader. > > Should have this done by tonight. > > -Alfred > > > --0-1692368948-922671825=:254 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="sio_gdb.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="sio_gdb.diff" SW5kZXg6IHNpby5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls ZTogL2N2cy9mcmVlYnNkL3NyYy9zeXMvaTM4Ni9pc2Evc2lvLmMsdg0KcmV0 cmlldmluZyByZXZpc2lvbiAxLjIyOQ0KZGlmZiAtYyAtcjEuMjI5IHNpby5j DQoqKiogc2lvLmMJMTk5OS8wMy8wMyAxNDozODowNwkxLjIyOQ0KLS0tIHNp by5jCTE5OTkvMDMvMjkgMDE6MzU6NDENCioqKioqKioqKioqKioqKg0KKioq IDEzMSwxMzcgKioqKg0KICANCiAgI2RlZmluZQlDT01fQ09OU09MRShkZXYp CSgoZGV2KS0+aWRfZmxhZ3MgJiAweDEwKQ0KICAjZGVmaW5lCUNPTV9GT1JD RUNPTlNPTEUoZGV2KQkoKGRldiktPmlkX2ZsYWdzICYgMHgyMCkNCiEgI2Rl ZmluZQlDT01fTExDT05TT0xFKGRldikJKChkZXYpLT5pZF9mbGFncyAmIDB4 NDApDQogICNkZWZpbmUJQ09NX0xPU0VTT1VUSU5UUyhkZXYpCSgoZGV2KS0+ aWRfZmxhZ3MgJiAweDA4KQ0KICAjZGVmaW5lCUNPTV9OT0ZJRk8oZGV2KQkJ KChkZXYpLT5pZF9mbGFncyAmIDB4MDIpDQogICNkZWZpbmUgQ09NX1NUMTY2 NTBBKGRldikJKChkZXYpLT5pZF9mbGFncyAmIDB4MjAwMDApDQotLS0gMTMx LDEzOCAtLS0tDQogIA0KICAjZGVmaW5lCUNPTV9DT05TT0xFKGRldikJKChk ZXYpLT5pZF9mbGFncyAmIDB4MTApDQogICNkZWZpbmUJQ09NX0ZPUkNFQ09O U09MRShkZXYpCSgoZGV2KS0+aWRfZmxhZ3MgJiAweDIwKQ0KISAjZGVmaW5l CUNPTV9MTENPTlNPTEUoZGV2KQkoKGRldiktPmlkX2ZsYWdzICYgMHg0MCkg LyogZG9uJ3QgcHJvYmUgKi8NCiEgI2RlZmluZQlDT01fREVCVUdHRVIoZGV2 KQkoKGRldiktPmlkX2ZsYWdzICYgMHg4MCkgLyogZGVidWdnZXIgaGVyZSAq Lw0KICAjZGVmaW5lCUNPTV9MT1NFU09VVElOVFMoZGV2KQkoKGRldiktPmlk X2ZsYWdzICYgMHgwOCkNCiAgI2RlZmluZQlDT01fTk9GSUZPKGRldikJCSgo ZGV2KS0+aWRfZmxhZ3MgJiAweDAyKQ0KICAjZGVmaW5lIENPTV9TVDE2NjUw QShkZXYpCSgoZGV2KS0+aWRfZmxhZ3MgJiAweDIwMDAwKQ0KKioqKioqKioq KioqKioqDQoqKiogMzM4LDM0NyAqKioqDQotLS0gMzM5LDM1NCAtLS0tDQog IAlEX1RUWSwNCiAgfTsNCiAgDQorICNpZm5kZWYJR0RCX0JBVUQNCisgI2Rl ZmluZSBHREJfQkFVRCBDT05TUEVFRDsNCisgI2VuZGlmDQorIA0KICBzdGF0 aWMJaW50CWNvbWNvbnNvbGUgPSAtMTsNCiAgc3RhdGljCXZvbGF0aWxlIHNw ZWVkX3QJY29tZGVmYXVsdHJhdGUgPSBDT05TUEVFRDsNCisgc3RhdGljCXZv bGF0aWxlIHNwZWVkX3QJY29tZ2RicmF0ZSA9IENPTlNQRUVEOw0KICBzdGF0 aWMJdV9pbnQJY29tX2V2ZW50czsJLyogaW5wdXQgY2hhcnMgKyB3ZWlnaHRl ZCBvdXRwdXQgY29tcGxldGlvbnMgKi8NCiAgc3RhdGljCVBvcnRfdAlzaW9j bmlvYmFzZTsNCisgc3RhdGljCVBvcnRfdAlzaW9kYmlvYmFzZTsNCiAgc3Rh dGljCWJvb2xfdAlzaW9fcmVnaXN0ZXJlZDsNCiAgc3RhdGljCWludAlzaW9f dGltZW91dDsNCiAgc3RhdGljCWludAlzaW9fdGltZW91dHNfdW50aWxfbG9n Ow0KKioqKioqKioqKioqKioqDQoqKiogNDQyLDQ0NyAqKioqDQotLS0gNDQ5 LDQ3OSAtLS0tDQogIFNZU0NUTF9QUk9DKF9tYWNoZGVwLCBPSURfQVVUTywg Y29uc3BlZWQsIENUTFRZUEVfSU5UIHwgQ1RMRkxBR19SVywNCiAgCSAgICAw LCAwLCBzeXNjdGxfbWFjaGRlcF9jb21kZWZhdWx0cmF0ZSwgIkkiLCAiIik7 DQogIA0KKyAvKg0KKyAgKiBoYW5kbGUgc3lzY3RsIHJlYWQvd3JpdGUgcmVx dWVzdHMgZm9yIGRlYnVnZ2VyIHNwZWVkDQorICAqIA0KKyAgKi8NCisgDQor IHN0YXRpYyBpbnQNCisgc3lzY3RsX21hY2hkZXBfY29tZ2RicmF0ZSBTWVND VExfSEFORExFUl9BUkdTDQorIHsNCisgCWludCBlcnJvcjsNCisgCXNwZWVk X3QgbmV3c3BlZWQ7DQorIA0KKyAJbmV3c3BlZWQgPSBjb21nZGJyYXRlOw0K KyANCisgCWVycm9yID0gc3lzY3RsX2hhbmRsZV9vcGFxdWUob2lkcCwgJm5l d3NwZWVkLCBzaXplb2YgbmV3c3BlZWQsIHJlcSk7DQorIAlpZiAoZXJyb3Ig fHwgIXJlcS0+bmV3cHRyKQ0KKyAJCXJldHVybiAoZXJyb3IpOw0KKyANCisg CWNvbWdkYnJhdGUgPSBuZXdzcGVlZDsNCisgCXJldHVybiAoMCk7DQorIA0K KyB9DQorIA0KKyBTWVNDVExfUFJPQyhfbWFjaGRlcCwgT0lEX0FVVE8sIGdk YnNwZWVkLCBDVExUWVBFX0lOVCB8IENUTEZMQUdfUlcsDQorIAkgICAgMCwg MCwgc3lzY3RsX21hY2hkZXBfY29tZ2RicmF0ZSwgIkkiLCAiIik7DQorIA0K ICAjaWYgTkNBUkQgPiAwDQogIC8qDQogICAqCVBDLUNhcmQgKFBDTUNJQSkg c3BlY2lmaWMgY29kZS4NCioqKioqKioqKioqKioqKg0KKioqIDYyNyw2MzMg KioqKg0KICAJICogWFhYIHdoYXQgYWJvdXQgdGhlIFVBUlQgYnVnIGF2b2lk ZWQgYnkgd2FpdGluZyBpbiBjb21wYXJhbSgpPw0KICAJICogV2UgZG9uJ3Qg d2FudCB0byB0byB3YWl0IGxvbmcgZW5vdWdoIHRvIGRyYWluIGF0IDIgYnBz Lg0KICAJICovDQohIAlpZiAoaW9iYXNlID09IHNpb2NuaW9iYXNlKQ0KICAJ CURFTEFZKCgxNiArIDEpICogMTAwMDAwMCAvIChjb21kZWZhdWx0cmF0ZSAv IDEwKSk7DQogIAllbHNlIHsNCiAgCQlvdXRiKGlvYmFzZSArIGNvbV9jZmNy LCBDRkNSX0RMQUIgfCBDRkNSXzhCSVRTKTsNCi0tLSA2NTksNjY1IC0tLS0N CiAgCSAqIFhYWCB3aGF0IGFib3V0IHRoZSBVQVJUIGJ1ZyBhdm9pZGVkIGJ5 IHdhaXRpbmcgaW4gY29tcGFyYW0oKT8NCiAgCSAqIFdlIGRvbid0IHdhbnQg dG8gdG8gd2FpdCBsb25nIGVub3VnaCB0byBkcmFpbiBhdCAyIGJwcy4NCiAg CSAqLw0KISAJaWYgKChpb2Jhc2UgPT0gc2lvY25pb2Jhc2UpIHx8IChpb2Jh c2UgPT0gc2lvZGJpb2Jhc2UpKQ0KICAJCURFTEFZKCgxNiArIDEpICogMTAw MDAwMCAvIChjb21kZWZhdWx0cmF0ZSAvIDEwKSk7DQogIAllbHNlIHsNCiAg CQlvdXRiKGlvYmFzZSArIGNvbV9jZmNyLCBDRkNSX0RMQUIgfCBDRkNSXzhC SVRTKTsNCioqKioqKioqKioqKioqKg0KKioqIDEzMjQsMTMzMCAqKioqDQog IAl7DQogIAkJb3V0Yihpb2Jhc2UgKyBjb21faWVyLCAwKTsNCiAgCQl0cCA9 IGNvbS0+dHA7DQohIAkJaWYgKHRwLT50X2NmbGFnICYgSFVQQ0wNCiAgCQkg ICAgLyoNCiAgCQkgICAgICogWFhYIHdlIHdpbGwgbWlzcyBhbnkgY2Fycmll ciBkcm9wIGJldHdlZW4gaGVyZSBhbmQgdGhlDQogIAkJICAgICAqIG5leHQg b3Blbi4gIFBlcmhhcHMgd2Ugc2hvdWxkIHdhdGNoIERDRCBldmVuIHdoZW4g dGhlDQotLS0gMTM1NiwxMzYyIC0tLS0NCiAgCXsNCiAgCQlvdXRiKGlvYmFz ZSArIGNvbV9pZXIsIDApOw0KICAJCXRwID0gY29tLT50cDsNCiEgCQlpZiAo KHRwLT50X2NmbGFnICYgSFVQQ0wpDQogIAkJICAgIC8qDQogIAkJICAgICAq IFhYWCB3ZSB3aWxsIG1pc3MgYW55IGNhcnJpZXIgZHJvcCBiZXR3ZWVuIGhl cmUgYW5kIHRoZQ0KICAJCSAgICAgKiBuZXh0IG9wZW4uICBQZXJoYXBzIHdl IHNob3VsZCB3YXRjaCBEQ0QgZXZlbiB3aGVuIHRoZQ0KKioqKioqKioqKioq KioqDQoqKiogMTMzMiwxMzQxICoqKioNCiAgCQkgICAgICogdGhlIG5leHQg b3BlbiBiZWNhdXNlIGl0IG1pZ2h0IGdvIHVwIGFuZCBkb3duIHdoaWxlDQog IAkJICAgICAqIHdlJ3JlIG5vdCB3YXRjaGluZy4NCiAgCQkgICAgICovDQoh IAkJICAgIHx8ICFjb20tPmFjdGl2ZV9vdXQNCiAgCQkgICAgICAgJiYgIShj b20tPnByZXZfbW9kZW1fc3RhdHVzICYgTVNSX0RDRCkNCiEgCQkgICAgICAg JiYgIShjb20tPml0X2luLmNfY2ZsYWcgJiBDTE9DQUwpDQohIAkJICAgIHx8 ICEodHAtPnRfc3RhdGUgJiBUU19JU09QRU4pKSB7DQogIAkJCSh2b2lkKWNv bW1jdGwoY29tLCBUSU9DTV9EVFIsIERNQklDKTsNCiAgCQkJaWYgKGNvbS0+ ZHRyX3dhaXQgIT0gMCAmJiAhKGNvbS0+c3RhdGUgJiBDU19EVFJfT0ZGKSkg ew0KICAJCQkJdGltZW91dChzaW9kdHJ3YWtldXAsIGNvbSwgY29tLT5kdHJf d2FpdCk7DQotLS0gMTM2NCwxMzczIC0tLS0NCiAgCQkgICAgICogdGhlIG5l eHQgb3BlbiBiZWNhdXNlIGl0IG1pZ2h0IGdvIHVwIGFuZCBkb3duIHdoaWxl DQogIAkJICAgICAqIHdlJ3JlIG5vdCB3YXRjaGluZy4NCiAgCQkgICAgICov DQohIAkJICAgIHx8ICghY29tLT5hY3RpdmVfb3V0DQogIAkJICAgICAgICYm ICEoY29tLT5wcmV2X21vZGVtX3N0YXR1cyAmIE1TUl9EQ0QpDQohIAkJICAg ICAgICYmICEoY29tLT5pdF9pbi5jX2NmbGFnICYgQ0xPQ0FMKSkNCiEgCQkg ICAgfHwgKCEodHAtPnRfc3RhdGUgJiBUU19JU09QRU4pKSkgew0KICAJCQko dm9pZCljb21tY3RsKGNvbSwgVElPQ01fRFRSLCBETUJJQyk7DQogIAkJCWlm IChjb20tPmR0cl93YWl0ICE9IDAgJiYgIShjb20tPnN0YXRlICYgQ1NfRFRS X09GRikpIHsNCiAgCQkJCXRpbWVvdXQoc2lvZHRyd2FrZXVwLCBjb20sIGNv bS0+ZHRyX3dhaXQpOw0KKioqKioqKioqKioqKioqDQoqKiogMTk5NywyMDAz ICoqKioNCiAgDQogIAkvKiBjaGVjayByZXF1ZXN0ZWQgcGFyYW1ldGVycyAq Lw0KICAJZGl2aXNvciA9IHR0c3BlZWR0YWIodC0+Y19vc3BlZWQsIGNvbXNw ZWVkdGFiKTsNCiEgCWlmIChkaXZpc29yIDwgMCB8fCBkaXZpc29yID4gMCAm JiB0LT5jX2lzcGVlZCAhPSB0LT5jX29zcGVlZCkNCiAgCQlyZXR1cm4gKEVJ TlZBTCk7DQogIA0KICAJLyogcGFyYW1ldGVycyBhcmUgT0ssIGNvbnZlcnQg dGhlbSB0byB0aGUgY29tIHN0cnVjdCBhbmQgdGhlIGRldmljZSAqLw0KLS0t IDIwMjksMjAzNSAtLS0tDQogIA0KICAJLyogY2hlY2sgcmVxdWVzdGVkIHBh cmFtZXRlcnMgKi8NCiAgCWRpdmlzb3IgPSB0dHNwZWVkdGFiKHQtPmNfb3Nw ZWVkLCBjb21zcGVlZHRhYik7DQohIAlpZiAoKGRpdmlzb3IgPCAwKSB8fCAo KGRpdmlzb3IgPiAwKSAmJiAodC0+Y19pc3BlZWQgIT0gdC0+Y19vc3BlZWQp KSkNCiAgCQlyZXR1cm4gKEVJTlZBTCk7DQogIA0KICAJLyogcGFyYW1ldGVy cyBhcmUgT0ssIGNvbnZlcnQgdGhlbSB0byB0aGUgY29tIHN0cnVjdCBhbmQg dGhlIGRldmljZSAqLw0KKioqKioqKioqKioqKioqDQoqKiogMjUzOSwyNTQ0 ICoqKioNCi0tLSAyNTcxLDI1NzggLS0tLQ0KICAgKi8NCiAgI2luY2x1ZGUg PG1hY2hpbmUvY29ucy5oPg0KICANCisgI2RlZmluZSBHRVRTSU9DTkJBU0Uo ZGV2KSAoZGV2ID8gc2lvY25pb2Jhc2UgOiBzaW9kYmlvYmFzZSkNCisgDQog IHN0cnVjdCBzaW9jbnN0YXRlIHsNCiAgCXVfY2hhcglkbGJsOw0KICAJdV9j aGFyCWRsYmg7DQoqKioqKioqKioqKioqKioNCioqKiAyNTQ4LDI1NTYgKioq Kg0KICB9Ow0KICANCiAgc3RhdGljIHNwZWVkX3Qgc2lvY25nZXRzcGVlZCBf X1AoKFBvcnRfdCwgc3RydWN0IHNwZWVkdGFiICopKTsNCiEgc3RhdGljIHZv aWQgc2lvY25jbG9zZQlfX1AoKHN0cnVjdCBzaW9jbnN0YXRlICpzcCkpOw0K ISBzdGF0aWMgdm9pZCBzaW9jbm9wZW4JX19QKChzdHJ1Y3Qgc2lvY25zdGF0 ZSAqc3ApKTsNCiEgc3RhdGljIHZvaWQgc2lvY250eHdhaXQJX19QKCh2b2lk KSk7DQogIA0KICAvKg0KICAgKiBYWFg6IHNjaW9jbmdldCgpIGFuZCBzY2lv Y25wdXRjKCkgYXJlIG5vdCBkZWNsYXJlZCBzdGF0aWMsIGFzIHRoZXkgYXJl DQotLS0gMjU4MiwyNTkwIC0tLS0NCiAgfTsNCiAgDQogIHN0YXRpYyBzcGVl ZF90IHNpb2NuZ2V0c3BlZWQgX19QKChQb3J0X3QsIHN0cnVjdCBzcGVlZHRh YiAqKSk7DQohIHN0YXRpYyB2b2lkIHNpb2NuY2xvc2UJX19QKChkZXZfdCBk ZXYsIHN0cnVjdCBzaW9jbnN0YXRlICpzcCkpOw0KISBzdGF0aWMgdm9pZCBz aW9jbm9wZW4JX19QKChkZXZfdCBkZXYsIHN0cnVjdCBzaW9jbnN0YXRlICpz cCkpOw0KISBzdGF0aWMgdm9pZCBzaW9jbnR4d2FpdAlfX1AoKGRldl90IGRl dikpOw0KICANCiAgLyoNCiAgICogWFhYOiBzY2lvY25nZXQoKSBhbmQgc2Np b2NucHV0YygpIGFyZSBub3QgZGVjbGFyZWQgc3RhdGljLCBhcyB0aGV5IGFy ZQ0KKioqKioqKioqKioqKioqDQoqKiogMjU2NSwyNTcxICoqKioNCiAgQ09O U19EUklWRVIoc2lvLCBzaW9jbnByb2JlLCBzaW9jbmluaXQsIHNpb2NuZ2V0 Yywgc2lvY25jaGVja2MsIHNpb2NucHV0Yyk7DQogIA0KICBzdGF0aWMgdm9p ZA0KISBzaW9jbnR4d2FpdCgpDQogIHsNCiAgCWludAl0aW1vOw0KICANCi0t LSAyNTk5LDI2MDYgLS0tLQ0KICBDT05TX0RSSVZFUihzaW8sIHNpb2NucHJv YmUsIHNpb2NuaW5pdCwgc2lvY25nZXRjLCBzaW9jbmNoZWNrYywgc2lvY25w dXRjKTsNCiAgDQogIHN0YXRpYyB2b2lkDQohIHNpb2NudHh3YWl0KGRldikN CiEgZGV2X3QJCWRldjsNCiAgew0KICAJaW50CXRpbW87DQogIA0KKioqKioq KioqKioqKioqDQoqKiogMjU3NSwyNTgxICoqKioNCiAgCSAqIHRyYW5zbWl0 cy4NCiAgCSAqLw0KICAJdGltbyA9IDEwMDAwMDsNCiEgCXdoaWxlICgoaW5i KHNpb2NuaW9iYXNlICsgY29tX2xzcikgJiAoTFNSX1RTUkUgfCBMU1JfVFhS RFkpKQ0KICAJICAgICAgICE9IChMU1JfVFNSRSB8IExTUl9UWFJEWSkgJiYg LS10aW1vICE9IDApDQogIAkJOw0KICB9DQotLS0gMjYxMCwyNjE2IC0tLS0N CiAgCSAqIHRyYW5zbWl0cy4NCiAgCSAqLw0KICAJdGltbyA9IDEwMDAwMDsN CiEgCXdoaWxlICgoaW5iKEdFVFNJT0NOQkFTRShkZXYpICsgY29tX2xzcikg JiAoTFNSX1RTUkUgfCBMU1JfVFhSRFkpKQ0KICAJICAgICAgICE9IChMU1Jf VFNSRSB8IExTUl9UWFJEWSkgJiYgLS10aW1vICE9IDApDQogIAkJOw0KICB9 DQoqKioqKioqKioqKioqKioNCioqKiAyNjE3LDI2MjMgKioqKg0KICB9DQog IA0KICBzdGF0aWMgdm9pZA0KISBzaW9jbm9wZW4oc3ApDQogIAlzdHJ1Y3Qg c2lvY25zdGF0ZQkqc3A7DQogIHsNCiAgCWludAlkaXZpc29yOw0KLS0tIDI2 NTIsMjY1OSAtLS0tDQogIH0NCiAgDQogIHN0YXRpYyB2b2lkDQohIHNpb2Nu b3BlbihkZXYsIHNwKQ0KISAJZGV2X3QJCQlkZXY7DQogIAlzdHJ1Y3Qgc2lv Y25zdGF0ZQkqc3A7DQogIHsNCiAgCWludAlkaXZpc29yOw0KKioqKioqKioq KioqKioqDQoqKiogMjYzMCwyNjM5ICoqKioNCiAgCSAqIGFuZCBzZXQgb3Vy IGRlZmF1bHQgb25lcyAoY3M4IC1wYXJlbmIgc3BlZWQ9Y29tZGVmYXVsdHJh dGUpLg0KICAJICogV2UgY2FuJ3Qgc2F2ZSB0aGUgZmlmbyByZWdpc3RlciBz aW5jZSBpdCBpcyByZWFkLW9ubHkuDQogIAkgKi8NCiEgCWlvYmFzZSA9IHNp b2NuaW9iYXNlOw0KICAJc3AtPmllciA9IGluYihpb2Jhc2UgKyBjb21faWVy KTsNCiAgCW91dGIoaW9iYXNlICsgY29tX2llciwgMCk7CS8qIHNwbHR0eSgp IGRvZXNuJ3Qgc3RvcCBzaW9pbnRyKCkgKi8NCiEgCXNpb2NudHh3YWl0KCk7 DQogIAlzcC0+Y2ZjciA9IGluYihpb2Jhc2UgKyBjb21fY2Zjcik7DQogIAlv dXRiKGlvYmFzZSArIGNvbV9jZmNyLCBDRkNSX0RMQUIgfCBDRkNSXzhCSVRT KTsNCiAgCXNwLT5kbGJsID0gaW5iKGlvYmFzZSArIGNvbV9kbGJsKTsNCi0t LSAyNjY2LDI2NzUgLS0tLQ0KICAJICogYW5kIHNldCBvdXIgZGVmYXVsdCBv bmVzIChjczggLXBhcmVuYiBzcGVlZD1jb21kZWZhdWx0cmF0ZSkuDQogIAkg KiBXZSBjYW4ndCBzYXZlIHRoZSBmaWZvIHJlZ2lzdGVyIHNpbmNlIGl0IGlz IHJlYWQtb25seS4NCiAgCSAqLw0KISAJaW9iYXNlID0gR0VUU0lPQ05CQVNF KGRldik7DQogIAlzcC0+aWVyID0gaW5iKGlvYmFzZSArIGNvbV9pZXIpOw0K ICAJb3V0Yihpb2Jhc2UgKyBjb21faWVyLCAwKTsJLyogc3BsdHR5KCkgZG9l c24ndCBzdG9wIHNpb2ludHIoKSAqLw0KISAJc2lvY250eHdhaXQoZGV2KTsN CiAgCXNwLT5jZmNyID0gaW5iKGlvYmFzZSArIGNvbV9jZmNyKTsNCiAgCW91 dGIoaW9iYXNlICsgY29tX2NmY3IsIENGQ1JfRExBQiB8IENGQ1JfOEJJVFMp Ow0KICAJc3AtPmRsYmwgPSBpbmIoaW9iYXNlICsgY29tX2RsYmwpOw0KKioq KioqKioqKioqKioqDQoqKiogMjY0NCwyNjUwICoqKioNCiAgCSAqIGRhdGEg aW5wdXQgcmVnaXN0ZXIuICBUaGlzIGFsc28gcmVkdWNlcyB0aGUgZWZmZWN0 cyBvZiB0aGUNCiAgCSAqIFVNQzg2NjlGIGJ1Zy4NCiAgCSAqLw0KISAJZGl2 aXNvciA9IHR0c3BlZWR0YWIoY29tZGVmYXVsdHJhdGUsIGNvbXNwZWVkdGFi KTsNCiAgCWRsYmwgPSBkaXZpc29yICYgMHhGRjsNCiAgCWlmIChzcC0+ZGxi bCAhPSBkbGJsKQ0KICAJCW91dGIoaW9iYXNlICsgY29tX2RsYmwsIGRsYmwp Ow0KLS0tIDI2ODAsMjY4NiAtLS0tDQogIAkgKiBkYXRhIGlucHV0IHJlZ2lz dGVyLiAgVGhpcyBhbHNvIHJlZHVjZXMgdGhlIGVmZmVjdHMgb2YgdGhlDQog IAkgKiBVTUM4NjY5RiBidWcuDQogIAkgKi8NCiEgCWRpdmlzb3IgPSB0dHNw ZWVkdGFiKChkZXYgPyBjb21kZWZhdWx0cmF0ZSA6IGNvbWdkYnJhdGUpLCBj b21zcGVlZHRhYik7DQogIAlkbGJsID0gZGl2aXNvciAmIDB4RkY7DQogIAlp ZiAoc3AtPmRsYmwgIT0gZGxibCkNCiAgCQlvdXRiKGlvYmFzZSArIGNvbV9k bGJsLCBkbGJsKTsNCioqKioqKioqKioqKioqKg0KKioqIDI2NjIsMjY2OCAq KioqDQogIH0NCiAgDQogIHN0YXRpYyB2b2lkDQohIHNpb2NuY2xvc2Uoc3Ap DQogIAlzdHJ1Y3Qgc2lvY25zdGF0ZQkqc3A7DQogIHsNCiAgCVBvcnRfdAlp b2Jhc2U7DQotLS0gMjY5OCwyNzA1IC0tLS0NCiAgfQ0KICANCiAgc3RhdGlj IHZvaWQNCiEgc2lvY25jbG9zZShkZXYsIHNwKQ0KISAJZGV2X3QJCQlkZXY7 DQogIAlzdHJ1Y3Qgc2lvY25zdGF0ZQkqc3A7DQogIHsNCiAgCVBvcnRfdAlp b2Jhc2U7DQoqKioqKioqKioqKioqKioNCioqKiAyNjcwLDI2NzcgKioqKg0K ICAJLyoNCiAgCSAqIFJlc3RvcmUgdGhlIGRldmljZSBjb250cm9sIHJlZ2lz dGVycy4NCiAgCSAqLw0KISAJc2lvY250eHdhaXQoKTsNCiEgCWlvYmFzZSA9 IHNpb2NuaW9iYXNlOw0KICAJb3V0Yihpb2Jhc2UgKyBjb21fY2ZjciwgQ0ZD Ul9ETEFCIHwgQ0ZDUl84QklUUyk7DQogIAlpZiAoc3AtPmRsYmwgIT0gaW5i KGlvYmFzZSArIGNvbV9kbGJsKSkNCiAgCQlvdXRiKGlvYmFzZSArIGNvbV9k bGJsLCBzcC0+ZGxibCk7DQotLS0gMjcwNywyNzE0IC0tLS0NCiAgCS8qDQog IAkgKiBSZXN0b3JlIHRoZSBkZXZpY2UgY29udHJvbCByZWdpc3RlcnMuDQog IAkgKi8NCiEgCXNpb2NudHh3YWl0KGRldik7DQohIAlpb2Jhc2UgPSBHRVRT SU9DTkJBU0UoZGV2KTsNCiAgCW91dGIoaW9iYXNlICsgY29tX2NmY3IsIENG Q1JfRExBQiB8IENGQ1JfOEJJVFMpOw0KICAJaWYgKHNwLT5kbGJsICE9IGlu Yihpb2Jhc2UgKyBjb21fZGxibCkpDQogIAkJb3V0Yihpb2Jhc2UgKyBjb21f ZGxibCwgc3AtPmRsYmwpOw0KKioqKioqKioqKioqKioqDQoqKiogMjcxMCwy NzE5ICoqKioNCiAgCSAqIGRvbid0IG5lZWQgdG8gcHJvYmUuDQogIAkgKi8N CiAgCWNwLT5jbl9wcmkgPSBDTl9ERUFEOw0KISAJZm9yIChkdnAgPSBpc2Ff ZGV2dGFiX3R0eTsgZHZwLT5pZF9kcml2ZXIgIT0gTlVMTDsgZHZwKyspDQoh IAkJaWYgKGR2cC0+aWRfZHJpdmVyID09ICZzaW9kcml2ZXIgJiYgZHZwLT5p ZF9lbmFibGVkDQogIAkJICAgICYmIENPTV9DT05TT0xFKGR2cCkpIHsNCiAg CQkJc2lvY25pb2Jhc2UgPSBkdnAtPmlkX2lvYmFzZTsNCiAgCQkJcyA9IHNw bHR0eSgpOw0KICAJCQlpZiAoYm9vdGhvd3RvICYgUkJfU0VSSUFMKSB7DQog IAkJCQlib290X3NwZWVkID0gc2lvY25nZXRzcGVlZChzaW9jbmlvYmFzZSwN Ci0tLSAyNzQ3LDI3NjIgLS0tLQ0KICAJICogZG9uJ3QgbmVlZCB0byBwcm9i ZS4NCiAgCSAqLw0KICAJY3AtPmNuX3ByaSA9IENOX0RFQUQ7DQohIAlmb3Ig KGR2cCA9IGlzYV9kZXZ0YWJfdHR5OyBkdnAtPmlkX2RyaXZlciAhPSBOVUxM OyBkdnArKykgew0KISAJCWlmICgoZHZwLT5pZF9kcml2ZXIgPT0gJnNpb2Ry aXZlcikgJiYgKGR2cC0+aWRfZW5hYmxlZCkNCiAgCQkgICAgJiYgQ09NX0NP TlNPTEUoZHZwKSkgew0KICAJCQlzaW9jbmlvYmFzZSA9IGR2cC0+aWRfaW9i YXNlOw0KKyAJCQkvKiANCisgCQkJICogSWYgdGhpcyBpcyBhbHNvIHdoZXJl IHRoZSBkZWJ1Z2VyIGdvZXMsDQorIAkJCSAqIHRoZW4gc2V0IGl0IGhlcmUg dG8gc2F2ZSBkdXBsaWNhdGUgaW5pdGlhbGlzYXRpb25zLg0KKyAJCQkgKi8N CisgCQkJaWYgKCBDT01fREVCVUdHRVIoZHZwKSkNCisgCQkJCXNpb2RiaW9i YXNlID0gc2lvY25pb2Jhc2U7DQogIAkJCXMgPSBzcGx0dHkoKTsNCiAgCQkJ aWYgKGJvb3Rob3d0byAmIFJCX1NFUklBTCkgew0KICAJCQkJYm9vdF9zcGVl ZCA9IHNpb2NuZ2V0c3BlZWQoc2lvY25pb2Jhc2UsDQoqKioqKioqKioqKioq KioNCioqKiAyNzM5LDI3NDUgKioqKg0KICAJCQkgICAgICh1X2ludCkgQ09N QlJEKGNvbWRlZmF1bHRyYXRlKSA+PiA4KTsNCiAgCQkJb3V0YihzaW9jbmlv YmFzZSArIGNvbV9jZmNyLCBjZmNyKTsNCiAgDQohIAkJCXNpb2Nub3Blbigm c3ApOw0KICAJCQlzcGx4KHMpOw0KICAJCQlpZiAoIUNPTV9MTENPTlNPTEUo ZHZwKSkgew0KICAJCQkJY3AtPmNuX2RldiA9IG1ha2VkZXYoQ0RFVl9NQUpP UiwgZHZwLT5pZF91bml0KTsNCi0tLSAyNzgyLDI3ODggLS0tLQ0KICAJCQkg ICAgICh1X2ludCkgQ09NQlJEKGNvbWRlZmF1bHRyYXRlKSA+PiA4KTsNCiAg CQkJb3V0YihzaW9jbmlvYmFzZSArIGNvbV9jZmNyLCBjZmNyKTsNCiAgDQoh IAkJCXNpb2Nub3BlbihtYWtlZGV2KENERVZfTUFKT1IsIGR2cC0+aWRfdW5p dCksICZzcCk7DQogIAkJCXNwbHgocyk7DQogIAkJCWlmICghQ09NX0xMQ09O U09MRShkdnApKSB7DQogIAkJCQljcC0+Y25fZGV2ID0gbWFrZWRldihDREVW X01BSk9SLCBkdnAtPmlkX3VuaXQpOw0KKioqKioqKioqKioqKioqDQoqKiog Mjc0OSwyNzU0ICoqKioNCi0tLSAyNzkyLDI4MjggLS0tLQ0KICAJCQl9DQog IAkJCWJyZWFrOw0KICAJCX0NCisgCX0NCisgCS8qIA0KKyAJICogSWYgd2Ug c3RpbGwgZG9uJ3QgaGF2ZSBhIGRlYnVnZ2VyIHBvcnQsDQorIAkgKiBTY2Fu IGFsbCB0dHkgZGV2aWNlcyB0aWxsIHdlIGZpbmQgb25lIHRoYXQgd2FudHMg dG8gYmUgdGhlDQorIAkgKiBkZWJ1Z2dlciBwb3J0LiBJZiB3ZSBkb24ndCwg d2UnbGwgdXNlIHRoZSBjb25zb2xlIHBvcnQuDQorIAkgKi8NCisgCWlmICgh c2lvZGJpb2Jhc2UpIHsNCisgCQlmb3IgKGR2cCA9IGlzYV9kZXZ0YWJfdHR5 OyBkdnAtPmlkX2RyaXZlciAhPSBOVUxMOyBkdnArKykgew0KKyAJCQlpZiAo KGR2cC0+aWRfZHJpdmVyID09ICZzaW9kcml2ZXIpICYmIChkdnAtPmlkX2Vu YWJsZWQpDQorIAkJICAgIAkmJiBDT01fREVCVUdHRVIoZHZwKSkgew0KKyAJ CQkJc2lvZGJpb2Jhc2UgPSBkdnAtPmlkX2lvYmFzZTsNCisgCQkJCXMgPSBz cGx0dHkoKTsNCisgCQkJCWNmY3IgPSBpbmIoc2lvZGJpb2Jhc2UgKyBjb21f Y2Zjcik7DQorIAkJCQlvdXRiKHNpb2RiaW9iYXNlICsgY29tX2NmY3IsIENG Q1JfRExBQiB8IGNmY3IpOw0KKyAJCQkJb3V0YihzaW9kYmlvYmFzZSArIGNv bV9kbGJsLA0KKyAJCQkJCQlDT01CUkQoY29tZ2RicmF0ZSkgJiAweGZmKTsN CisgCQkJCW91dGIoc2lvZGJpb2Jhc2UgKyBjb21fZGxiaCwNCisgCQkJCQko dV9pbnQpIENPTUJSRChjb21nZGJyYXRlKSA+PiA4KTsNCisgCQkJCW91dGIo c2lvZGJpb2Jhc2UgKyBjb21fY2ZjciwgY2Zjcik7DQorIAkJDQorIAkJCQlz aW9jbm9wZW4obWFrZWRldigwLCAwKSwgJnNwKTsNCisgCQkJCXNwbHgocyk7 DQorIAkJCQlicmVhazsNCisgCQkJfQ0KKyAJCX0NCisgCX0NCisgCWlmICgh c2lvZGJpb2Jhc2UpDQorIAkJc2lvZGJpb2Jhc2UgPSBzaW9jbmlvYmFzZTsN CisgDQorIAlpZiAoc2lvZGJpb2Jhc2UgPT0gc2lvY25pb2Jhc2UpDQorIAkJ Y29tZ2RicmF0ZSA9IGNvbWRlZmF1bHRyYXRlOw0KICB9DQogIA0KICBzdGF0 aWMgdm9pZA0KKioqKioqKioqKioqKioqDQoqKiogMjc2NywyNzgwICoqKioN CiAgCWludAlzOw0KICAJc3RydWN0IHNpb2Nuc3RhdGUJc3A7DQogIA0KISAJ aW9iYXNlID0gc2lvY25pb2Jhc2U7DQogIAlzID0gc3BsdHR5KCk7DQohIAlz aW9jbm9wZW4oJnNwKTsNCiAgCWlmIChpbmIoaW9iYXNlICsgY29tX2xzcikg JiBMU1JfUlhSRFkpDQogIAkJYyA9IGluYihpb2Jhc2UgKyBjb21fZGF0YSk7 DQogIAllbHNlDQogIAkJYyA9IC0xOw0KISAJc2lvY25jbG9zZSgmc3ApOw0K ICAJc3BseChzKTsNCiAgCXJldHVybiAoYyk7DQogIH0NCi0tLSAyODQxLDI4 NTQgLS0tLQ0KICAJaW50CXM7DQogIAlzdHJ1Y3Qgc2lvY25zdGF0ZQlzcDsN CiAgDQohIAlpb2Jhc2UgPSBHRVRTSU9DTkJBU0UoZGV2KTsNCiAgCXMgPSBz cGx0dHkoKTsNCiEgCXNpb2Nub3BlbihkZXYsICZzcCk7DQogIAlpZiAoaW5i KGlvYmFzZSArIGNvbV9sc3IpICYgTFNSX1JYUkRZKQ0KICAJCWMgPSBpbmIo aW9iYXNlICsgY29tX2RhdGEpOw0KICAJZWxzZQ0KICAJCWMgPSAtMTsNCiEg CXNpb2NuY2xvc2UoZGV2LCAmc3ApOw0KICAJc3BseChzKTsNCiAgCXJldHVy biAoYyk7DQogIH0NCioqKioqKioqKioqKioqKg0KKioqIDI3ODksMjgwMSAq KioqDQogIAlpbnQJczsNCiAgCXN0cnVjdCBzaW9jbnN0YXRlCXNwOw0KICAN CiEgCWlvYmFzZSA9IHNpb2NuaW9iYXNlOw0KICAJcyA9IHNwbHR0eSgpOw0K ISAJc2lvY25vcGVuKCZzcCk7DQogIAl3aGlsZSAoIShpbmIoaW9iYXNlICsg Y29tX2xzcikgJiBMU1JfUlhSRFkpKQ0KICAJCTsNCiAgCWMgPSBpbmIoaW9i YXNlICsgY29tX2RhdGEpOw0KISAJc2lvY25jbG9zZSgmc3ApOw0KICAJc3Bs eChzKTsNCiAgCXJldHVybiAoYyk7DQogIH0NCi0tLSAyODYzLDI4NzUgLS0t LQ0KICAJaW50CXM7DQogIAlzdHJ1Y3Qgc2lvY25zdGF0ZQlzcDsNCiAgDQoh IAlpb2Jhc2UgPSBHRVRTSU9DTkJBU0UoZGV2KTsNCiAgCXMgPSBzcGx0dHko KTsNCiEgCXNpb2Nub3BlbihkZXYsICZzcCk7DQogIAl3aGlsZSAoIShpbmIo aW9iYXNlICsgY29tX2xzcikgJiBMU1JfUlhSRFkpKQ0KICAJCTsNCiAgCWMg PSBpbmIoaW9iYXNlICsgY29tX2RhdGEpOw0KISAJc2lvY25jbG9zZShkZXYs ICZzcCk7DQogIAlzcGx4KHMpOw0KICAJcmV0dXJuIChjKTsNCiAgfQ0KKioq KioqKioqKioqKioqDQoqKiogMjgwOSwyODE4ICoqKioNCiAgCXN0cnVjdCBz aW9jbnN0YXRlCXNwOw0KICANCiAgCXMgPSBzcGx0dHkoKTsNCiEgCXNpb2Nu b3Blbigmc3ApOw0KISAJc2lvY250eHdhaXQoKTsNCiEgCW91dGIoc2lvY25p b2Jhc2UgKyBjb21fZGF0YSwgYyk7DQohIAlzaW9jbmNsb3NlKCZzcCk7DQog IAlzcGx4KHMpOw0KICB9DQogIA0KLS0tIDI4ODMsMjg5MiAtLS0tDQogIAlz dHJ1Y3Qgc2lvY25zdGF0ZQlzcDsNCiAgDQogIAlzID0gc3BsdHR5KCk7DQoh IAlzaW9jbm9wZW4oZGV2LCAmc3ApOw0KISAJc2lvY250eHdhaXQoZGV2KTsN CiEgCW91dGIoR0VUU0lPQ05CQVNFKGRldikgKyBjb21fZGF0YSwgYyk7DQoh IAlzaW9jbmNsb3NlKGRldiwgJnNwKTsNCiAgCXNwbHgocyk7DQogIH0NCiAg DQo= --0-1692368948-922671825=:254-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message