wok diff linld/stuff/src/LOAD.CPP @ rev 23999

syslinux/iso2exe: read isolinux.cfg
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jan 12 07:47:12 2021 +0000 (2021-01-12)
parents 3d19917d3a03
children 14ca5e18cfd9
line diff
     1.1 --- a/linld/stuff/src/LOAD.CPP	Sat Dec 12 10:41:29 2020 +0000
     1.2 +++ b/linld/stuff/src/LOAD.CPP	Tue Jan 12 07:47:12 2021 +0000
     1.3 @@ -60,8 +60,8 @@
     1.4                              //      The file-system on that floppy must be MINIX
     1.5                              //      If rd_load() succeeds it sets the root_dev
     1.6                              //      to the ramdisk for mounting it
     1.7 -    u16     vid_mode;       // 01FA Video mode control
     1.8 -    u16     root_dev;       // 01FC Default root device number
     1.9 +    u16     vidmode;        // 01FA Video mode control
    1.10 +    u16     rootdev;        // 01FC Default root device number
    1.11      u16     boot_flag;      // 01FE 0xAA55 magic number
    1.12      u16     jump;           // 0200 Jump instruction
    1.13      u32     header;         // 0202 Magic signature "HdrS"
    1.14 @@ -120,8 +120,6 @@
    1.15  static u8* rm_buf;	// @ = @rm_size + 2, see A20.ASM
    1.16  struct image_himem imgs[2];
    1.17  
    1.18 -static const char kernel_file_error[] = "Can't use kernel file";
    1.19 -#define not_kernel  "Not a kernel"
    1.20  void load_kernel() {
    1.21  
    1.22      struct	image_himem *m = &pm;
    1.23 @@ -133,7 +131,6 @@
    1.24  #define first1k		((first1k_t*)((u8 *)kernelparams-0x1F1))
    1.25  
    1.26      // Open kernel, read first kb, check it
    1.27 -    m->errmsg = kernel_file_error;
    1.28      open_image(m, kernel_name);
    1.29  
    1.30  do {
    1.31 @@ -151,20 +148,20 @@
    1.32      }
    1.33      if((kernelparams->setup_sects)>=(_32k/512) || // 0th sector not counted
    1.34  	 kernelparams->boot_flag != 0xAA55)
    1.35 -        die(not_kernel);
    1.36 +        die("Not a kernel");
    1.37      _rm_size=0x200*(kernelparams->setup_sects+1);
    1.38      m->size -= _rm_size;
    1.39      m->chunk_size -= _rm_size;
    1.40  
    1.41      // Read remaining rm loader
    1.42      if (readrm(m, _rm_size) == _rm_size) break;
    1.43 -    die(kernel_file_error);
    1.44 +    loadfailure();
    1.45  } while (0);
    1.46  
    1.47      // Tell rm loader some info
    1.48  
    1.49 -    if((int)vid_mode) kernelparams->vid_mode = vid_mode;
    1.50 -    if((int)root_dev) kernelparams->root_dev = root_dev;
    1.51 +    if((int)vid_mode) kernelparams->vidmode = vid_mode;
    1.52 +    if((int)root_dev) kernelparams->rootdev = root_dev;
    1.53  
    1.54      if(kernelparams->header == HdrS) { // starting linux 1.3.73
    1.55  	if(kernelparams->loadflags & 1) { // zImage as pre 1.3.73
    1.56 @@ -178,11 +175,7 @@
    1.57              hook_int15_88(); // break _ES
    1.58          }
    1.59          if (kernelparams->kernel_version)
    1.60 -#ifndef EXTRA
    1.61              puts((char *) first1k+kernelparams->kernel_version+0x200);
    1.62 -#else
    1.63 -            strcatb(version_string,(char *) first1k+kernelparams->kernel_version+0x200);
    1.64 -#endif
    1.65          kernelparams->type_of_loader = 0xff; // kernel do not know us (yet :-)
    1.66          if(kernelparams->version >= 0x201) {
    1.67              // * offset limit of the setup heap
    1.68 @@ -216,20 +209,17 @@
    1.69  // Read initrd if needed
    1.70  void load_initrd() {
    1.71      struct image_himem *m = &initrd;
    1.72 -    if (((int)initrd_name | m->fd) == 0) return; // !initrd_name && !m->fd
    1.73 +    if ((int)initrd_name == 0) return;
    1.74  #if defined(__BORLANDC__) && defined(NO386)
    1.75  #pragma option -3
    1.76      asm{
    1.77  	.386p
    1.78      }
    1.79  #endif
    1.80 -    m->errmsg = "Can't use initrd file";
    1.81 -
    1.82      open_image(m, initrd_name);
    1.83  
    1.84      if ((m->fallback=(memtop()-m->size)&(~PAGE_MASK))-m[-1].fallback < m[-1].size) {
    1.85 -        puts(m->errmsg);
    1.86 -        close(m->fd);
    1.87 +	loadfailure();
    1.88          return;
    1.89      }
    1.90