wok diff linld/stuff/src/HIMEM.CPP @ rev 23996

linld: add iso support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jan 08 20:15:35 2021 +0000 (2021-01-08)
parents 3d19917d3a03
children bc4b94310a29
line diff
     1.1 --- a/linld/stuff/src/HIMEM.CPP	Sat Dec 12 10:41:29 2020 +0000
     1.2 +++ b/linld/stuff/src/HIMEM.CPP	Fri Jan 08 20:15:35 2021 +0000
     1.3 @@ -6,20 +6,13 @@
     1.4  #include "crtl.h"
     1.5  #include "common.h"
     1.6  
     1.7 -#ifdef WITH_XMM_ALLOC
     1.8 -u16 skip_alloc;
     1.9 -#endif
    1.10 -static u32 buf;
    1.11 +extern u32 himem_buf;
    1.12  
    1.13  void load_image(struct image_himem *m) {
    1.14      m->remaining = m->size;
    1.15      m->buf = m->fallback;	// set no_exit btw: die() won't return to DOS
    1.16 -    u32* bufv= &buf;
    1.17 -#ifdef WITH_XMM_ALLOC
    1.18 -    if(((u16 *)&m->fallback)[1] >= (skip_alloc|0x10)) { // >= _1m ?
    1.19 -#else
    1.20 +    u32* bufv= &himem_buf;
    1.21      if(((u16 *)&m->fallback)[1] >= 0x10) { // >= _1m ?
    1.22 -#endif
    1.23  	if(vcpi) {
    1.24  	    bufv = (u32 *)malloc_bufv_or_die(m);	// update m->bufv
    1.25  	}
    1.26 @@ -29,15 +22,15 @@
    1.27  	}
    1.28  #endif
    1.29      }
    1.30 -    buf = m->buf;
    1.31 +    himem_buf = m->buf;
    1.32      do {
    1.33          u16 size;
    1.34  	if(s16(size = read_image(m)) -1 < 0) break;
    1.35          storepage(bufv);
    1.36 -	if (bufv != &buf) next(bufv);
    1.37 -        buf += size;
    1.38 +	if (bufv != &himem_buf) next(bufv);
    1.39 +        himem_buf += size;
    1.40      } while (*bufv);
    1.41 -    if(m->remaining) die("Read error");
    1.42 +    if(m->remaining) loadfailure();
    1.43      close(m->fd2close);
    1.44  }
    1.45  
    1.46 @@ -57,9 +50,9 @@
    1.47  	pusha
    1.48  # endif
    1.49      }
    1.50 +    vm2rm();
    1.51      struct image_himem *m = &pm;
    1.52      u32 *q;
    1.53 -    vm2rm();
    1.54      if(((u16 *)&m->fallback)[1] >= 0x10) // >=	_1m ?
    1.55  	((u16 *)&m->fallback)[1] = 0x10;
    1.56      q = m->bufv;