[linprocfs] add sys/kernel/random/boot_id

This file holds a UUID that is invariant for every boot. In our case, it is
invariant per mount.

PR:	262369
Reported by:	sodynet1@gmail.com
Approved by:	dchagin@
Differential Revision:	https://reviews.freebsd.org/D34860
This commit is contained in:
Fernando Apesteguía 2022-03-08 15:19:53 +01:00
parent 4496aecb56
commit 0f2041a5b0

View File

@ -1887,6 +1887,24 @@ linprocfs_douuid(PFS_FILL_ARGS)
return(0);
}
/*
* Filler function for proc/sys/kernel/random/boot_id
*/
static int
linprocfs_doboot_id(PFS_FILL_ARGS)
{
static bool firstboot = 1;
static struct uuid uuid;
if (firstboot) {
kern_uuidgen(&uuid, 1);
firstboot = 0;
}
sbuf_printf_uuid(sb, &uuid);
sbuf_printf(sb, "\n");
return(0);
}
/*
* Filler function for proc/pid/auxv
*/
@ -2097,6 +2115,8 @@ linprocfs_init(PFS_INIT_ARGS)
dir = pfs_create_dir(dir, "random", NULL, NULL, NULL, 0);
pfs_create_file(dir, "uuid", &linprocfs_douuid,
NULL, NULL, NULL, PFS_RD);
pfs_create_file(dir, "boot_id", &linprocfs_doboot_id,
NULL, NULL, NULL, PFS_RD);
/* /proc/sys/vm/.... */
dir = pfs_create_dir(sys, "vm", NULL, NULL, NULL, 0);