The branch main has been updated by imp:

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

commit bd4a4e46ceacd8dfc5a5469ec6edd8c92c53605a
Author:     Warner Losh <i...@freebsd.org>
AuthorDate: 2025-07-19 05:31:50 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2025-07-22 04:00:33 +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
---
 sbin/devd/devd.cc | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/sbin/devd/devd.cc b/sbin/devd/devd.cc
index d7a3fee57870..375ccd817146 100644
--- a/sbin/devd/devd.cc
+++ b/sbin/devd/devd.cc
@@ -153,6 +153,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);
@@ -867,6 +869,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) {
@@ -1322,6 +1326,7 @@ int
 main(int argc, char **argv)
 {
        int ch;
+       size_t len;
 
        check_devd_enabled();
        while ((ch = getopt(argc, argv, "df:l:nq")) != -1) {
@@ -1346,6 +1351,13 @@ main(int argc, char **argv)
                }
        }
 
+       len = sizeof(vm_guest);
+       if (sysctlbyname("kern.vm_guest", vm_guest, &len, NULL, 0) < 0) {
+               devdlog(LOG_ERR,
+                   "sysctlnametomib(kern.vm_guest) failed: %d\n",
+                   errno);
+       }
+
        cfg.parse();
        if (!no_daemon && daemonize_quick) {
                cfg.open_pidfile();

Reply via email to