X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f X-Recipient: djgpp-workers AT delorie DOT com X-Yandex-Fwd: 1 X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1675102971; bh=b3+hlF+uvpqyhKImMvu5s2ZzNkgRj9gEWSNruwBEqmM=; h=In-Reply-To:References:To:Subject:Message-ID:Date:From; b=wf6SOzzhsLuwA7c1HPVT0oTojZs8oW99LVl69ImPdQr6hKVUVAFZGshVCKK1w0rU3 Ib0hvzm7tFeBLiUvcQYfBdh8y5VCtHZmWt1j4pf3WD7CmfRXbaBIoM/RlOrT0poDnh LwrZ7uMw6ExzshP2/g8FKXl91WF707yut+4bx/h4= Authentication-Results: myt6-bd59def10a3e.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru Content-Type: multipart/mixed; boundary="------------Kz4v7RpanWQ0iF6e9iyMegdc" Message-ID: <9e891f88-2c96-ce7b-43c7-752a9e4f1147@yandex.ru> Date: Mon, 30 Jan 2023 23:22:44 +0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: [PATCH v2] process: add _dos_exec5() Content-Language: en-US To: djgpp-workers AT delorie DOT com References: From: "stsp (stsp2 AT yandex DOT ru) [via djgpp-workers AT delorie DOT com]" In-Reply-To: Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk This is a multi-part message in MIME format. --------------Kz4v7RpanWQ0iF6e9iyMegdc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Changes in v2: - Found parameter shadowing by higher warning levels. So rename flags to flags2 in direct_exec_tail() which uses "flags" as a local var. Log msg: Same as _dos_exec() but with "flags" as 5th arg. The flags are passed to AL when calling int21/4Bh. In addition to an execution mode in AL, freedos defines the loadhigh flag 0x80. This allows to implement loadhigh properly. Without this patch it is possible to implement loadhigh by hands (by linking UMBs in a changing alloc strat), but in that case UMBs will remain linked in. --------------Kz4v7RpanWQ0iF6e9iyMegdc Content-Type: text/x-patch; charset=UTF-8; name="0001-process-add-_dos_exec5.patch" Content-Disposition: attachment; filename="0001-process-add-_dos_exec5.patch" Content-Transfer-Encoding: base64 RnJvbSAzMDFlY2ZkMzU4ZWU1N2Q1MjI3MjI3MTFmY2Q3ODdjODQzMDA1NzJkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNl Zm9yZ2UubmV0PgpEYXRlOiBNb24sIDIzIEphbiAyMDIzIDExOjAxOjI5ICswNTAwClN1Ympl Y3Q6IFtQQVRDSF0gcHJvY2VzczogYWRkIF9kb3NfZXhlYzUoKQoKU2FtZSBhcyBfZG9zX2V4 ZWMoKSBidXQgd2l0aCAiZmxhZ3MiIGFzIDV0aCBhcmcuClRoZSBmbGFncyBhcmUgcGFzc2Vk IHRvIEFMIHdoZW4gY2FsbGluZyBpbnQyMS80QmguCkluIGFkZGl0aW9uIHRvIGFuIGV4ZWN1 dGlvbiBtb2RlIGluIEFMLCBmcmVlZG9zIGRlZmluZXMgdGhlIGxvYWRoaWdoCmZsYWcgMHg4 MC4KClRoaXMgYWxsb3dzIHRvIGltcGxlbWVudCBsb2FkaGlnaCBwcm9wZXJseS4KV2l0aG91 dCB0aGlzIHBhdGNoIGl0IGlzIHBvc3NpYmxlIHRvIGltcGxlbWVudCBsb2FkaGlnaCBieSBo YW5kcwooYnkgbGlua2luZyBVTUJzIGluIGEgY2hhbmdpbmcgYWxsb2Mgc3RyYXQpLCBidXQg aW4gdGhhdCBjYXNlIFVNQnMKd2lsbCByZW1haW4gbGlua2VkIGluLgotLS0KIGluY2x1ZGUv cHJvY2Vzcy5oICAgICAgICAgICAgICB8ICAzICsrKwogc3JjL2xpYmMvZG9zL3Byb2Nlc3Mv ZG9zZXhlYy5jIHwgMjkgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL3Byb2Nlc3MuaCBiL2luY2x1ZGUvcHJvY2Vzcy5oCmluZGV4IGU1NzQ2N2Q0 Li42ZDQ1ZDNiOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wcm9jZXNzLmgKKysrIGIvaW5jbHVk ZS9wcm9jZXNzLmgKQEAgLTIyLDYgKzIyLDkgQEAgZXh0ZXJuICJDIiB7CiAjaWZuZGVmIF9Q T1NJWF9TT1VSQ0UKIAogaW50IF9kb3NfZXhlYyhjb25zdCBjaGFyICpwcm9ncmFtLCBjb25z dCBjaGFyICphcmdzLCBjaGFyICpjb25zdCBfZW52cFtdLCBjb25zdCBjaGFyICpfbGNtZCk7 CitpbnQgX2Rvc19leGVjNShjb25zdCBjaGFyICpwcm9ncmFtLCBjb25zdCBjaGFyICphcmdz LCBjaGFyICpjb25zdCBfZW52cFtdLCBjb25zdCBjaGFyICpfbGNtZCwKKyAgICB1bnNpZ25l ZCBjaGFyIGZsYWdzKTsKKyNkZWZpbmUgSEFWRV9ET1NfRVhFQzUgMQogCiBpbnQgZXhlY2wo Y29uc3QgY2hhciAqX3BhdGgsIGNvbnN0IGNoYXIgKl9hcmd2MCwgLi4uKTsKIGludCBleGVj bGUoY29uc3QgY2hhciAqX3BhdGgsIGNvbnN0IGNoYXIgKl9hcmd2MCwgLi4uIC8qLCBjaGFy ICpjb25zdCBfZW52cFtdICovKTsKZGlmZiAtLWdpdCBhL3NyYy9saWJjL2Rvcy9wcm9jZXNz L2Rvc2V4ZWMuYyBiL3NyYy9saWJjL2Rvcy9wcm9jZXNzL2Rvc2V4ZWMuYwppbmRleCBkNTQ3 YTMxZi4uYTdjZjg4ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9saWJjL2Rvcy9wcm9jZXNzL2Rvc2V4 ZWMuYworKysgYi9zcmMvbGliYy9kb3MvcHJvY2Vzcy9kb3NleGVjLmMKQEAgLTE3Myw3ICsx NzMsNyBAQCBzaXplX3QgX19jbWRsaW5lX3N0cl9sZW4gPSBzaXplb2YoX19jbWRsaW5lX3N0 cikgLSAxOwogc3RhdGljIGludAogZGlyZWN0X2V4ZWNfdGFpbF8xKGNvbnN0IGNoYXIgKnBy b2dyYW0sIGNvbnN0IGNoYXIgKmFyZ3MsCiAgICAgICAgICAgICAgICAgICAgY2hhciAqIGNv bnN0IGVudnBbXSwgY29uc3QgY2hhciAqcHJveHksIGludCBsZm4sCi0gICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqY21kbGluZV92YXIpCisgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqY21kbGluZV92YXIsIHVuc2lnbmVkIGNoYXIgZmxhZ3MpCiB7CiAgIF9fZHBt aV9yZWdzIHI7CiAgIHVuc2lnbmVkIGxvbmcgcHJvZ3JhbV9sYTsKQEAgLTQyOCw3ICs0Mjgs NyBAQCBkaXJlY3RfZXhlY190YWlsXzEoY29uc3QgY2hhciAqcHJvZ3JhbSwgY29uc3QgY2hh ciAqYXJncywKICAgcGFybS5mY2IyX29mZiA9IGZjYjJfbGEgJiAxNTsKICAgZG9zbWVtcHV0 KCZwYXJtLCBzaXplb2YocGFybSksIHBhcm1fbGEpOwogCi0gIHIueC5heCA9IDB4NEIwMDsK KyAgci54LmF4ID0gMHg0QjAwIHwgZmxhZ3M7CiAgIHIueC5kcyA9IHByb2dyYW1fbGEgLyAx NjsKICAgci54LmR4ID0gcHJvZ3JhbV9sYSAmIDE1OwogICByLnguZXMgPSBwYXJtX2xhIC8g MTY7CkBAIC00NzAsNyArNDcwLDcgQEAgZGlyZWN0X2V4ZWNfdGFpbF8xKGNvbnN0IGNoYXIg KnByb2dyYW0sIGNvbnN0IGNoYXIgKmFyZ3MsCiAKIHN0YXRpYyBpbnQgZGlyZWN0X2V4ZWNf dGFpbCAoY29uc3QgY2hhciAqcHJvZ3JhbSwgY29uc3QgY2hhciAqYXJncywKIAkJIGNoYXIg KiBjb25zdCBlbnZwW10sIGNvbnN0IGNoYXIgKnByb3h5LCBpbnQgbGZuLAotCQkgY29uc3Qg Y2hhciAqY21kbGluZV92YXIpCisJCSBjb25zdCBjaGFyICpjbWRsaW5lX3ZhciwgdW5zaWdu ZWQgY2hhciBmbGFnczIpCiB7CiAgIGludCBpLCByZXQ7CiAgIGludCBzZWwxLCBzZWwyOwpA QCAtNTcxLDcgKzU3MSw4IEBAIHN0YXRpYyBpbnQgZGlyZWN0X2V4ZWNfdGFpbCAoY29uc3Qg Y2hhciAqcHJvZ3JhbSwgY29uc3QgY2hhciAqYXJncywKICAgICB9CiAgIH0KIAotICByZXQg PSBkaXJlY3RfZXhlY190YWlsXzEocHJvZ3JhbSwgYXJncywgZW52cCwgcHJveHksIGxmbiwg Y21kbGluZV92YXIpOworICByZXQgPSBkaXJlY3RfZXhlY190YWlsXzEocHJvZ3JhbSwgYXJn cywgZW52cCwgcHJveHksIGxmbiwgY21kbGluZV92YXIsCisgICAgICBmbGFnczIpOwogCiAg IGlmICh3b3JrYXJvdW5kX2Rlc2NyaXB0b3JfbGVha3MpICAgLyogRnJlZSB0aGUgdW51c2Vk IG1hcCAqLwogICB7CkBAIC02MjIsNyArNjIzLDE3IEBAIF9kb3NfZXhlYyhjb25zdCBjaGFy ICpwcm9ncmFtLCBjb25zdCBjaGFyICphcmdzLCBjaGFyICogY29uc3QgZW52cFtdLAogICB0 YnVmX2JlZyA9IHRidWZfcHRyID0gX190YjsKICAgdGJ1Zl9sZW4gPSBfX3RiX3NpemU7CiAg IHRidWZfZW5kID0gdGJ1Zl9iZWcgKyB0YnVmX2xlbiAtIDE7Ci0gIHJldHVybiBkaXJlY3Rf ZXhlY190YWlsKHByb2dyYW0sIGFyZ3MsIGVudnAsIDAsIDIsIGNtZGxpbmVfdmFyKTsKKyAg cmV0dXJuIGRpcmVjdF9leGVjX3RhaWwocHJvZ3JhbSwgYXJncywgZW52cCwgMCwgMiwgY21k bGluZV92YXIsIDApOworfQorCitpbnQKK19kb3NfZXhlYzUoY29uc3QgY2hhciAqcHJvZ3Jh bSwgY29uc3QgY2hhciAqYXJncywgY2hhciAqIGNvbnN0IGVudnBbXSwKKwkgIGNvbnN0IGNo YXIgKmNtZGxpbmVfdmFyLCB1bnNpZ25lZCBjaGFyIGZsYWdzKQoreworICB0YnVmX2JlZyA9 IHRidWZfcHRyID0gX190YjsKKyAgdGJ1Zl9sZW4gPSBfX3RiX3NpemU7CisgIHRidWZfZW5k ID0gdGJ1Zl9iZWcgKyB0YnVmX2xlbiAtIDE7CisgIHJldHVybiBkaXJlY3RfZXhlY190YWls KHByb2dyYW0sIGFyZ3MsIGVudnAsIDAsIDIsIGNtZGxpbmVfdmFyLCBmbGFncyk7CiB9CiAK IHN0YXRpYyBjaGFyIEdPMzJfVjJfU1RSSU5HW10gPSAiZ28zMi12Mi5leGUiOwpAQCAtODIz LDcgKzgzNCw3IEBAIHN0YXRpYyBpbnQgZGlyZWN0X2V4ZWMoY29uc3QgY2hhciAqcHJvZ3Jh bSwgY2hhciAqKmFyZ3YsIGNoYXIgKiplbnZwKQogICB0YnVmX2JlZyA9IHRidWZfcHRyID0g X190YjsKICAgdGJ1Zl9sZW4gPSBfX3RiX3NpemU7CiAgIHRidWZfZW5kID0gdGJ1Zl9iZWcg KyB0YnVmX2xlbiAtIDE7Ci0gIHJldHVybiBkaXJlY3RfZXhlY190YWlsKHByb2dyYW0sIGFy Z3MsIGVudnAsIDAsIDIsIDApOworICByZXR1cm4gZGlyZWN0X2V4ZWNfdGFpbChwcm9ncmFt LCBhcmdzLCBlbnZwLCAwLCAyLCAwLCAwKTsKIH0KIAogc3RhdGljIGludCBkaXJlY3RfcGVf ZXhlYyhjb25zdCBjaGFyICpwcm9ncmFtLCBjaGFyICoqYXJndiwgY2hhciAqKmVudnApCkBA IC05NDQsNyArOTU1LDcgQEAgc3RhdGljIGludCBkaXJlY3RfcGVfZXhlYyhjb25zdCBjaGFy ICpwcm9ncmFtLCBjaGFyICoqYXJndiwgY2hhciAqKmVudnApCiAgICAgIGNvbnRlbnRzIG9m IHRoZSBjb21tYW5kIGxpbmUgaW50byB0aGUgQ01ETElORSB2YXJpYWJsZS4KICAgICAgZGly ZWN0X2V4ZWNfdGFpbCB3aWxsIHRha2UgY2FyZSBvZiB0aGUgZmluYWwgZGV0YWlscy4gKi8K ICAgcmV0dXJuIGRpcmVjdF9leGVjX3RhaWwocHJvZ3JhbSwgYXJncywgZW52cCwgMCwgMiwK LQkJCSAgYXJncCAtIGFyZ3MgPiBDTURMRU5fTElNSVQgPyB2YXJwIDogMCk7CisJCQkgIGFy Z3AgLSBhcmdzID4gQ01ETEVOX0xJTUlUID8gdmFycCA6IDAsIDApOwogfQogCiBzdGF0aWMg aW50IGdvMzJfZXhlYyhjb25zdCBjaGFyICpwcm9ncmFtLCBjaGFyICoqYXJndiwgY2hhciAq KmVudnApCkBAIC0xMTM0LDcgKzExNDUsNyBAQCBzdGF0aWMgaW50IGdvMzJfZXhlYyhjb25z dCBjaGFyICpwcm9ncmFtLCBjaGFyICoqYXJndiwgY2hhciAqKmVudnApCiAgICAgcGNtZCA9 IHByb3h5X2NtZGxpbmU7CiAgIH0KIAotICByZXR1cm4gZGlyZWN0X2V4ZWNfdGFpbChycGF0 aCwgcGNtZCwgZW52cCwgcHByb3h5LCBsZm4sIDApOworICByZXR1cm4gZGlyZWN0X2V4ZWNf dGFpbChycGF0aCwgcGNtZCwgZW52cCwgcHByb3h5LCBsZm4sIDAsIDApOwogfQogCiBpbnQK QEAgLTEyODIsNyArMTI5Myw3IEBAIF9fZG9zZXhlY19jb21tYW5kX2V4ZWMoY29uc3QgY2hh ciAqcHJvZ3JhbSwgY2hhciAqKmFyZ3YsIGNoYXIgKiplbnZwKQogICB0YnVmX2JlZyA9IHRi dWZfcHRyID0gX190YjsKICAgdGJ1Zl9sZW4gPSBfX3RiX3NpemU7CiAgIHRidWZfZW5kID0g dGJ1Zl9wdHIgKyB0YnVmX2xlbiAtIDE7Ci0gIHJldHVybiBkaXJlY3RfZXhlY190YWlsKGNv bXNwZWMsIGNtZGxpbmUsIGVudnAsIDAsIDIsIGNtZGxpbmVfdmFyKTsKKyAgcmV0dXJuIGRp cmVjdF9leGVjX3RhaWwoY29tc3BlYywgY21kbGluZSwgZW52cCwgMCwgMiwgY21kbGluZV92 YXIsIDApOwogfQogCiBzdGF0aWMgaW50IHNjcmlwdF9leGVjKGNvbnN0IGNoYXIgKnByb2dy YW0sIGNoYXIgKiphcmd2LCBjaGFyICoqZW52cCkKLS0gCjIuMzcuMgoK --------------Kz4v7RpanWQ0iF6e9iyMegdc--