From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C9AEEF.9A921F78" Date: Fri, 27 Mar 2009 08:20:47 -0700 Message-ID: <621112A569DAE948AD25CCDCF1C075331AB498@dolly.ntdom.cupdx> References: <3587eb7837ae411c3c512564d9997e1c@smgl.fr.eu.org><5ab04e072064bfe53f47b5a785bc41ec@quanstro.net><9ab217670903270552o64036bc6l822ca1f6e73ec82f@mail.gmail.com><18573e78207d9e808a283b21055026c5@coraid.com><9ab217670903270707t2014ead0v14920229d5f7a174@mail.gmail.com> <1aaf8be900d3496cca5353a9aa49bd3c@coraid.com> From: "Benjamin Huntsman" To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net> Subject: [9fans] porting sam Topicbox-Message-UUID: cb3d093e-ead4-11e9-9d60-3106f5b1d025 This is a multi-part message in MIME format. ------_=_NextPart_001_01C9AEEF.9A921F78 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable I figure I'm not the only person on this list who would find a newer = copy of sam for Windows useful... I know there's acme-sac, but I still find myself using the 9pm version = of sam for remote connections and such. So, I've been working on and off trying to get sam from plan9port going = on Windows. Currently, I'm using the Inferno hosted environment to do = the port. That may or may not have been a good idea. I'm now stuck at = the function bootterm, in io.c. Code below. I'm stuck at the point = where sam forks (or proc's) to launch samterm, since Windows provides = neither. emu uses Windows' CreateThread in it's kproc code. I'm = wondering what the best approach here would be, but in the style of some = of the other ported Inferno tools, I'm leaning toward implementing the = required functions in a "Nt.c" file and building it in. Using libkern = and a few other bits from draterm might work too... Thanks! -Ben void bootterm(char *machine, char **argv) { int ph2t[2], pt2h[2]; if(machine){ dup(remotefd0, 0); dup(remotefd1, 1); close(remotefd0); close(remotefd1); argv[0] =3D "samterm"; execvp(samterm, argv); fprint(2, "can't exec %s: %r\n", samterm); _exits("damn"); } if(pipe(ph2t)=3D=3D-1 || pipe(pt2h)=3D=3D-1) panic("pipe"); switch(fork()){ case 0: dup(ph2t[0], 0); dup(pt2h[1], 1); close(ph2t[0]); close(ph2t[1]); close(pt2h[0]); close(pt2h[1]); argv[0] =3D "samterm"; execvp(samterm, argv); fprint(2, "can't exec: "); perror(samterm); _exits("damn"); case -1: panic("can't fork samterm"); } dup(pt2h[0], 0); dup(ph2t[1], 1); close(ph2t[0]); close(ph2t[1]); close(pt2h[0]); close(pt2h[1]); } ------_=_NextPart_001_01C9AEEF.9A921F78 Content-Type: application/ms-tnef; name="winmail.dat" Content-Transfer-Encoding: base64 eJ8+IjAPAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy b3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEEgAEAFAAAAFs5ZmFuc10gcG9ydGluZyBz YW0AHQcBBYADAA4AAADZBwMAGwAIABQALwAFAE4BASCAAwAOAAAA2QcDABsACAAUAC8ABQBOAQEJ gAEAIQAAADEwQjZEM0ExQkJBREJENDM5NDlBNDZFNzUyQ0ZFQTE5AGUHAQOQBgCADAAAOQAAAAMA JgAAAAAAAwA2AAAAAABAADkAeB+Smu+uyQEeAD0AAQAAAAEAAAAAAAAAAgFHAAEAAAA2AAAAYz1V UzthPSA7cD1Db25jb3JkaWEgUG9ydGxhO2w9RE9MTFktMDkwMzI3MTUyMDQ3Wi0xMTEAAAAeAEkA AQAAACMAAABSZTogWzlmYW5zXSBhbm90aGVyIHdlYmZzIHF1ZXN0aW9uAABAAE4AAFBbPOmuyQEe AFoAAQAAABgAAAA5ZmFucy1ib3VuY2VzQDlmYW5zLm5ldAACAVsAAQAAAE0AAAAAAAAAgSsfpL6j EBmdbgDdAQ9UAgAAAAA5ZmFucy1ib3VuY2VzQDlmYW5zLm5ldABTTVRQADlmYW5zLWJvdW5jZXNA OWZhbnMubmV0AAAAAAIBXAABAAAAHQAAAFNNVFA6OUZBTlMtQk9VTkNFU0A5RkFOUy5ORVQAAAAA HgBdAAEAAAAPAAAAZXJpayBxdWFuc3Ryb20AAAIBXgABAAAAQAAAAAAAAACBKx+kvqMQGZ1uAN0B D1QCAAAAAGVyaWsgcXVhbnN0cm9tAFNNVFAAcXVhbnN0cm9AY29yYWlkLmNvbQACAV8AAQAAABkA AABTTVRQOlFVQU5TVFJPQENPUkFJRC5DT00AAAAAHgBmAAEAAAAFAAAAU01UUAAAAAAeAGcAAQAA ABgAAAA5ZmFucy1ib3VuY2VzQDlmYW5zLm5ldAAeAGgAAQAAAAUAAABTTVRQAAAAAB4AaQABAAAA FAAAAHF1YW5zdHJvQGNvcmFpZC5jb20AHgBwAAEAAAAUAAAAWzlmYW5zXSBwb3J0aW5nIHNhbQAC AXEAAQAAABsAAAABya7pRlDhThMNQaVNSLP7PlJYCRgXAABIZfEAHgB0AAEAAAAQAAAAOWZhbnNA OWZhbnMubmV0AB4AGgwBAAAAEgAAAEJlbmphbWluIEh1bnRzbWFuAAAAHgAdDgEAAAAUAAAAWzlm YW5zXSBwb3J0aW5nIHNhbQACAQkQAQAAAM0EAADJBAAAHgkAAExaRnUZ5W3XAwAKAHJjcGcxMjXi MgNDdGV4BUEBAwH3/wqAAqQD5AcTAoAP8wBQBFY/CFUHshElDlEDAQIAY2jhCsBzZXQyBgAGwxEl 9jMERhO3MBIsETMI7wn3tjsYHw4wNREiDGBjAFAzCwkBZDM2FlALpiBJUCBmaWcIcGUc4CeQbSBu bwVAdGgdYKECIGx5IHAEkHMCIGceMR3xBAAgbAQABUB3TGhvH8AIYGxkHQFuvSBQYR2wB9ASgQWg cB5w4G9mIHNhHaACEAXAUlcggW93BCB1FBBmvSAwLiMgCqIKgBzwax3AdwfgHgEYICcEIADQB4At wSHAYywgYnUFQBzwTx+gAxADICBzbXkUEGyXIaAiwAuAZx3zOXAdoPp2HqFpHtIhqBggBGAOsPUh MW4g4GMlsAIgJIEgkZpzGtBoI0UjVFNvJSCfHYAnoCUwCeEgAXJrJuKPHtEqAiGQIaB0cnkm430f 8GcUICG0A2EegAtgbjcnYBfBLfBvLHUiRS4g/xIgCHAYIAIwHmArch2gJsj4SW5mBJEf8B/gH6AJ gNIgCfB2aQNgbgeAAjDfLcIicB3zLyIwcVQT4AVA/wDAIXEFwDVCHcIT4Cu2IMDTL3AEcCBpAQBh MHEdhHcH4B+gGtBrILAd5CLwbt8pkyUwNwACQASQbSUgC4DxNzBvLmMwcgRxK9EXsP53N4U4Oy8g C4AfsiRBIbaqawQgKAWxcANgYyRw7iktwgtgORFoIbI51CbR/mMdYCJGPlEzQAEABCAg4O5pJCIw cSjgdSKyBCAiRe4nEiAYIDUQZTTwQ0E3IfU6QXQkcWs+UiExAQA3hf8gECCQBnEm8R/QOJUr4B+h /GFwPlEA0D9QPSMgFCvgzyUkOjEeAh+geWweISGh/wNwSYMeAyQiNHMy8TI2LdC9BvBzMTRJcABw LZR3CxF9NzBtC1Ao4DDhJuYYIHF+dTNQMvE5BgQgOjEgwCLyTjSwYyIdAUlxKgIlQL0DEGQm4kGQ OiEwcVUm0/kfgGJrBJIqAiDAMlAH4J1KlGJBkAQgLoNkckNh9znwJkAdIGgfsSxBS9IjJysjVDTx bj3gISNULUL3CfAqmiNUdi+ACzEjcjmW8igT0iAqAMEfQCDgJSDFWlQqCsBndikqlQAADyNjMIAw gDzScGgydJhbMl0lIAUwMmhdoecZMCqpXONmKFq1W/BceWFc4mR1cCgo1AVwMLklIDApXmVgr2Gx MSUg+jFiLmMXsBQQYVhkL2U7g2QfW7JbMF0gPVAA3T91ImI9DsAFkHZhQD93m1uzYj1mPlA80Sgy JSA0ImMAcCcFQGsiICUEczpusHJcXG4iNz/hP4RiLl8OwFQRKCJOZCHQb0BiKlx9XttwBwUgZWBd Yik9PS0x+CB8fB6Ac4NeAXQDW/X3YqYKsAMAY3FQc3JxuwPhynQT0Cg9sigpYBtuEPsUEGIAOmJP c7NpQWH/erX9XgIxXcFn/2UkexV9n36o/31Af29+pF4Cf0+CKoEfaP//ag9rH2wvbT9uRW7gcbt2 I/sEkANgcohWb/9xD3kadDD/ee12ZW4UPbI/ZnG/XKZ8t/97b3rXfU9+n5dvgP6CP5qPF4SacoYj VH2e0AAAAB4ANRABAAAAOwAAADw2MjExMTJBNTY5REFFOTQ4QUQyNUNDRENGMUMwNzUzMzFBQjQ5 OEBkb2xseS5udGRvbS5jdXBkeD4AAB4AORABAAAANgEAADwzNTg3ZWI3ODM3YWU0MTFjM2M1MTI1 NjRkOTk5N2UxY0BzbWdsLmZyLmV1Lm9yZz48NWFiMDRlMDcyMDY0YmZlNTNmNDdiNWE3ODViYzQx ZWNAcXVhbnN0cm8ubmV0Pjw5YWIyMTc2NzA5MDMyNzA1NTJvNjQwMzZiYzZsODIyY2ExZjZlNzNl YzgyZkBtYWlsLmdtYWlsLmNvbT48MTg1NzNlNzgyMDdkOWU4MDhhMjgzYjIxMDU1MDI2YzVAY29y YWlkLmNvbT48OWFiMjE3NjcwOTAzMjcwNzA3dDIwMTRlYWQwdjE0OTIwMjI5ZDVmN2ExNzRAbWFp bC5nbWFpbC5jb20+IDwxYWFmOGJlOTAwZDM0OTZjY2E1MzUzYTlhYTQ5YmQzY0Bjb3JhaWQuY29t PgAAAB4ARxABAAAADwAAAG1lc3NhZ2UvcmZjODIyAAALAPIQAQAAAB8A8xABAAAAMAAAAFsAOQBm AGEAbgBzAF0AIABwAG8AcgB0AGkAbgBnACAAcwBhAG0ALgBFAE0ATAAAAAsA9hAAAAAAQAAHMBh7 4GfqrskBQAAIMNCBlJrvrskBAwDeP69vAAADAPE/CQQAAB4A+D8BAAAAEgAAAEJlbmphbWluIEh1 bnRzbWFuAAAAAgH5PwEAAABWAAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAAAAAAAC9PPUNPTkNP UkRJQSBQT1JUTEFORC9PVT1DVVBEWC9DTj1SRUNJUElFTlRTL0NOPUJIVU5UU01BTgAAAB4A+j8B AAAAFQAAAFN5c3RlbSBBZG1pbmlzdHJhdG9yAAAAAAIB+z8BAAAAHgAAAAAAAADcp0DIwEIQGrS5 CAArL+GCAQAAAAAAAAAuAAAAAwD9P+QEAAADABlAAAAAAAMAGkAAAAAAAwAdQAAAAAADAB5AAAAA AB4AMEABAAAACgAAAEJIVU5UU01BTgAAAB4AMUABAAAACgAAAEJIVU5UU01BTgAAAB4AMkABAAAA GAAAADlmYW5zLWJvdW5jZXNAOWZhbnMubmV0AB4AM0ABAAAAFAAAAHF1YW5zdHJvQGNvcmFpZC5j b20AHgA4QAEAAAAKAAAAQkhVTlRTTUFOAAAAHgA5QAEAAAACAAAALgAAAAMAdkD/////CwApAAAA AAALACMAAAAAAAMABhDdBBJjAwAHEPkEAAADABAQAAAAAAMAERABAAAAHgAIEAEAAABlAAAASUZJ R1VSRUlNTk9UVEhFT05MWVBFUlNPTk9OVEhJU0xJU1RXSE9XT1VMREZJTkRBTkVXRVJDT1BZT0ZT QU1GT1JXSU5ET1dTVVNFRlVMSUtOT1dUSEVSRVNBQ01FLVNBQyxCVQAAAAACAX8AAQAAADsAAAA8 NjIxMTEyQTU2OURBRTk0OEFEMjVDQ0RDRjFDMDc1MzMxQUI0OThAZG9sbHkubnRkb20uY3VwZHg+ AADBaA== ------_=_NextPart_001_01C9AEEF.9A921F78--