git: bbe75ea73442 - stable/14 - devd: Add vm_guest variable

From: Eugene Grosbein <eugen_at_FreeBSD.org>
Date: Sat, 26 Jul 2025 07:08:44 UTC
The branch stable/14 has been updated by eugen:

URL: https://cgit.FreeBSD.org/src/commit/?id=bbe75ea73442651b8e6277984b817308663193b6

commit bbe75ea73442651b8e6277984b817308663193b6
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-07-19 05:31:50 +0000
Commit:     Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2025-07-26 07:07:44 +0000

    devd: Add vm_guest variable
    
    Fetch vm_guest on startup in case we're running under a hypervisor.
    
    Co-authored-by: eugen@
    PR: 287873
    Sponsored by:           Netflix
    
    (cherry picked from commit bd4a4e46ceacd8dfc5a5469ec6edd8c92c53605a)
---
 sbin/devd/devd.cc | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc
index 28aab82803c8..e4abf0e33fae 100644
--- a/sbin/devd/devd.cc
+++ b/sbin/devd/devd.cc
@@ -154,6 +154,8 @@ static volatile sig_atomic_t romeo_must_die = 0;
 
 static const char *configfile = CF;
 
+static	char	vm_guest[80];
+
 static void devdlog(int priority, const char* message, ...)
 	__printflike(2, 3);
 static void event_loop(void);
@@ -868,6 +870,8 @@ process_event(char *buffer)
 	cfg.set_variable("timestamp", timestr);
 	free(timestr);
 
+	cfg.set_variable("vm_guest", vm_guest);
+
 	// Match doesn't have a device, and the format is a little
 	// different, so handle it separately.
 	switch (type) {
@@ -1323,6 +1327,7 @@ int
 main(int argc, char **argv)
 {
 	int ch;
+	size_t len;
 
 	check_devd_enabled();
 	while ((ch = getopt(argc, argv, "df:l:nq")) != -1) {
@@ -1347,6 +1352,12 @@ main(int argc, char **argv)
 		}
 	}
 
+	len = sizeof(vm_guest);
+	if (sysctlbyname("kern.vm_guest", vm_guest, &len, NULL, 0) < 0) {
+		devdlog(LOG_ERR,
+		    "sysctlbyname(kern.vm_guest) failed: %d\n", errno);
+	}
+
 	cfg.parse();
 	if (!no_daemon && daemonize_quick) {
 		cfg.open_pidfile();