wok-6.x diff linld/stuff/src/LINLD.CPP @ rev 23992
linld: skip xmm_alloc
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Dec 12 10:41:29 2020 +0000 (2020-12-12) |
parents | 78bc4b109dd6 |
children | 34d90fb03f57 |
line diff
1.1 --- a/linld/stuff/src/LINLD.CPP Sat Jul 25 08:45:16 2020 +0000 1.2 +++ b/linld/stuff/src/LINLD.CPP Sat Dec 12 10:41:29 2020 +0000 1.3 @@ -24,7 +24,9 @@ 1.4 die("Syntax:" NL 1.5 "LINLD [image=file] [initrd=files] [vga=mode] [root=num] [mem=max] [cl=cmdline]" NL 1.6 "vga mode: ask,extended,normal or dec/oct/hex number" NL 1.7 +#ifdef WITH_XMM_ALLOC 1.8 "-f force" NL 1.9 +#endif 1.10 "-64 for cpu64 only" NL 1.11 "Defaults:" NL 1.12 "\timage=bzImage" NL 1.13 @@ -36,7 +38,11 @@ 1.14 "Use cl=@filename to get it from a file" 1.15 #if 1 1.16 NL NL "Examples:" NL 1.17 - "\tLINLD -f -b 64m " 1.18 + "\tLINLD " 1.19 +#ifdef WITH_XMM_ALLOC 1.20 + "-f " 1.21 +#endif 1.22 + "-b 64m " 1.23 "initrd=rootfs4.gz,rootfs3.gz,rootfs2.gz,rootfs1.gz " 1.24 "\"cl=root=/dev/null video=-32\"" 1.25 NL NL "\tLINLD image=memtest" 1.26 @@ -55,32 +61,34 @@ 1.27 // Parse command line 1.28 #ifdef USE_ARGSTR 1.29 if (!argv[1]) syntax(); 1.30 + const char **clp = &cmdline; 1.31 for (;;) { 1.32 - const char **clp = &cmdline; 1.33 argv++; 1.34 - if (!*argv) goto boot; 1.35 + if (!*argv) break; 1.36 if ((*(u16 *)*argv|2) == 0x362F) { // -64 /64 1.37 if (cpuhaslm() == 0) exit(); 1.38 + continue; 1.39 } 1.40 +#ifdef WITH_XMM_ALLOC 1.41 if ((*(u16 *)*argv|0x2002) == 0x662F) { // -F /f 1.42 skip_alloc--; 1.43 + continue; 1.44 } 1.45 - else if (argstr(*argv,"cl|image|initrd",clp) != -1); 1.46 - else if (fileexist(*argv) != -1) 1.47 +#endif 1.48 + if (argstr(*argv,"cl|image|initrd",clp) != -1 && **argv == 'c') continue; 1.49 + if (fileexist(*argv) != -1) { 1.50 kernel_name=*argv; 1.51 - else if (argnum(*argv,"root|vga|mem|-b",&root_dev) != -1); 1.52 - else { 1.53 - *clp = (const char *) buf_cmdline + 1; 1.54 - do strcatb((const char *) buf_cmdline,*argv++); while (*argv); 1.55 - boot: 1.56 - puts(*clp); 1.57 - set_cmdline(*clp); 1.58 - load_kernel(); 1.59 - puts(version_string); 1.60 - load_initrd(); 1.61 - boot_kernel(); 1.62 - } 1.63 + continue; 1.64 + } 1.65 + argnum(*argv,"root|vga|mem|-b",&root_dev); 1.66 + *clp = (const char *) buf_cmdline + 1; 1.67 + strcatb((const char *) buf_cmdline,*argv); 1.68 } 1.69 + puts(*clp); 1.70 + set_cmdline(*clp); 1.71 + load_kernel(); 1.72 + load_initrd(); 1.73 + boot_kernel(); 1.74 #else 1.75 if (!argv[1]) syntax(); 1.76 while (1) { 1.77 @@ -104,9 +112,11 @@ 1.78 case 0x362F: // -64 /64 1.79 if (cpuhaslm() == 0) exit(); 1.80 goto next; 1.81 +#ifdef WITH_XMM_ALLOC 1.82 case 0x662F: // -F /f 1.83 skip_alloc--; 1.84 goto next; 1.85 +#endif 1.86 case 0x622F: // -B /b 1.87 argv++; 1.88 ((u16 *)&base_himem)[1] = (u16)(strtol(*argv)>>16);