NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'



Perhaps:

RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
retrieving revision 1.80
diff -u -p -u -r1.80 boot2.c
--- boot2.c     26 Apr 2025 20:17:36 -0000      1.80
+++ boot2.c     28 Apr 2025 20:47:31 -0000
@@ -126,6 +126,7 @@ static const char *default_part_name;
 
 char *sprint_bootsel(const char *);
 static void bootit(const char *, int);
+static void bootit2(const char *, size_t, int);
 void boot2(int, uint64_t);
 
 void   command_help(char *);
@@ -473,6 +474,14 @@ command_quit(char *arg)
        panic("Could not reboot!");
 }
 
+static void
+bootit2(char *path, size_t plen, int howto)
+{
+       bootit(path, howto);
+       snprintf(path, plen, "%s.gz", path);
+       bootit(path, howto | AB_VERBOSE);
+}
+
 void
 command_boot(char *arg)
 {
@@ -483,7 +492,13 @@ command_boot(char *arg)
                return;
 
        if (filename != NULL) {
-               bootit(filename, howto);
+               char path[512];
+               if (strchr(filename, '/') == NULL) {
+                       snprintf(path, sizeof(path}, "%s/kernel", filename);
+                       bootit2(path, sizeof(path), howto);
+               }
+               snprintf(path, sizeof(path}, "%s", filename);
+               bootit2(path, sizeof(path), howto);
        } else {
                int i;
 


> On Apr 28, 2025, at 4:20 PM, Paul Goyette via gnats <gnats-admin%netbsd.org@localhost> wrote:
> 
> The following reply was made to PR kern/59374; it has been noted by GNATS.
> 
> From: Paul Goyette <paul%whooppee.com@localhost>
> To: Christos Zoulas <christos%zoulas.com@localhost>
> Cc: gnats-bugs%netbsd.org@localhost, kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, 
>    netbsd-bugs%netbsd.org@localhost
> Subject: Re: kern/59374: KERNEL_DIR: support passing directories from 'boot'
> Date: Mon, 28 Apr 2025 13:18:08 -0700 (PDT)
> 
> On Mon, 28 Apr 2025, Paul Goyette wrote:
> 
>> On Mon, 28 Apr 2025, Christos Zoulas wrote:
>> 
>>> Not easy to do because it can't simply stat the name because we are
>>> accessing the disks using bios. The best we can do is probably
>>> try name/kernel, name/kernel.gz and then try name.
>> 
>> That sounds workable.
> 
> Does this work for you?
> 
> Index: boot2.c
> ===================================================================
> RCS file: /cvsroot/src/sys/arch/i386/stand/boot/boot2.c,v
> retrieving revision 1.80
> diff -u -p -r1.80 boot2.c
> --- boot2.c	26 Apr 2025 20:17:36 -0000	1.80
> +++ boot2.c	28 Apr 2025 20:16:01 -0000
> @@ -477,13 +477,34 @@ void
>   command_boot(char *arg)
>   {
>   	char *filename;
> +	char path[512];
>   	int howto;
> 
>   	if (!parseboot(arg, &filename, &howto))
>   		return;
> 
>   	if (filename != NULL) {
> -		bootit(filename, howto);
> +		if ((strrchr(filename, '/') == '\0') {
> +
> +			/* filename/kernel */
> +			strcpy(path, filename);
> +			strcat(path, "/kernel");
> +			bootit(path, howto);
> +
> +			/* filename/kernel.gz */
> +			strcat(path, ".gz");
> +			bootit(path, howto || AB_VERBOSE);
> +
> +			/* filename */
> +			bootit(filename, howto);
> +
> +			/* filename.gz */
> +			strcpy(path, filename);
> +			strcat(path, ".gz");
> +			bootit(path, howto || AB_VERBOSE);
> +
> +		} else
> +			bootit(filename, howto);
>   	} else {
>   		int i;
> 
> 
> +---------------------+--------------------------+----------------------+
> | Paul Goyette (.sig) | PGP Key fingerprint:     | E-mail addresses:    |
> | (Retired)           | 1B11 1849 721C 56C8 F63A | paul%whooppee.com@localhost    |
> | Software Developer  | 6E2E 05FD 15CE 9F2D 5102 | pgoyette%netbsd.org@localhost  |
> | & Network Engineer  |                          | pgoyette99%gmail.com@localhost |
> +---------------------+--------------------------+----------------------+
> 

Attachment: signature.asc
Description: Message signed with OpenPGP



Home | Main Index | Thread Index | Old Index