summaryrefslogtreecommitdiffstats
path: root/usr.bin/doscmd/xms.c
diff options
context:
space:
mode:
authorluoqi <luoqi@FreeBSD.org>1998-09-24 01:11:45 +0000
committerluoqi <luoqi@FreeBSD.org>1998-09-24 01:11:45 +0000
commit1e573349aa92ca5d53bb58f7463678e2ec7cfbe1 (patch)
tree26afea8f219ccd1d8927bc3da4d2fe813aa22f88 /usr.bin/doscmd/xms.c
parentc51ade1afecd96fa41382fce71c9447db8ce023e (diff)
downloadFreeBSD-src-1e573349aa92ca5d53bb58f7463678e2ec7cfbe1.zip
FreeBSD-src-1e573349aa92ca5d53bb58f7463678e2ec7cfbe1.tar.gz
ELFize. In fact, doscmd is ELF natural -- there is no need for a loader
since ELF executables are loaded well above the low memory region that DOS operates in.
Diffstat (limited to 'usr.bin/doscmd/xms.c')
-rw-r--r--usr.bin/doscmd/xms.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/usr.bin/doscmd/xms.c b/usr.bin/doscmd/xms.c
index 81ba91b..b016a0a 100644
--- a/usr.bin/doscmd/xms.c
+++ b/usr.bin/doscmd/xms.c
@@ -25,7 +25,7 @@
* (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: xms.c,v 1.2 1997/08/15 23:41:25 jlemon Exp $
+ * $Id: xms.c,v 1.3 1997/09/30 22:04:06 jlemon Exp $
*/
/*
@@ -70,7 +70,7 @@ static short HMA_a20 = -1;
static int HMA_fd_off, HMA_fd_on;
/* high memory mapfiles */
-static char *memfile = "/tmp/doscmd.XXXXXX";
+static char memfile[] = "/tmp/doscmd.XXXXXX";
/* Upper memory block (UMB) management */
UMB_block *UMB_freelist = NULL;
@@ -358,6 +358,16 @@ void initHMA()
lseek(HMA_fd_on, 64 * 1024 - 1, 0);
write(HMA_fd_on, "", 1);
+ if (mmap((caddr_t)0x000000, 0x100000,
+ PROT_EXEC | PROT_READ | PROT_WRITE,
+ MAP_ANON | MAP_FIXED | MAP_INHERIT | MAP_SHARED,
+ -1, 0) < 0) {
+ perror("Error mapping HMA, HMA disabled: ");
+ HMA_a20 = -1;
+ close(HMA_fd_off);
+ close(HMA_fd_on);
+ return;
+ }
if (mmap((caddr_t)0x000000, 64 * 1024,
PROT_EXEC | PROT_READ | PROT_WRITE,
MAP_FILE | MAP_FIXED | MAP_INHERIT | MAP_SHARED,
OpenPOWER on IntegriCloud