Print this page
11626 introduce /etc/versions/build
11627 clean up UUID code for ::status

*** 21,30 **** --- 21,31 ---- /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * Copyright 2017 Nexenta Systems, Inc. + * Copyright 2019 Joyent, Inc. */ #include <sys/types.h> #include <sys/inttypes.h> #include <sys/param.h>
*** 65,74 **** --- 66,80 ---- static char dacffile[] = DACFFILE; char *self_assembly = "/etc/system.d/.self-assembly"; char *systemfile = "/etc/system"; /* name of ascii system file */ + #define BUILDVERSION_LEN (4096) + + char *versionfile = "/etc/versions/build"; + char buildversion[BUILDVERSION_LEN]; + static struct sysparam *sysparam_hd; /* head of parameters list */ static struct sysparam *sysparam_tl; /* tail of parameters list */ static vmem_t *mod_sysfile_arena; /* parser memory */ char obp_bootpath[BO_MAXOBJNAME]; /* bootpath from obp */
*** 809,818 **** --- 815,826 ---- } void mod_read_system_file(int ask) { + struct _buf *file; + mod_sysfile_arena = vmem_create("mod_sysfile", NULL, 0, 8, segkmem_alloc, segkmem_free, heap_arena, 0, VM_SLEEP); if (ask) mod_askparams();
*** 836,845 **** --- 844,865 ---- (void) mod_sysctl(SYS_SET_KVAR, NULL); param_check(); if (ask == 0) setparams(); + + /* + * A convenient place to read in our build version string. + */ + + if ((file = kobj_open_file(versionfile)) != (struct _buf *)-1) { + if (kobj_read_file(file, buildversion, + sizeof (buildversion) - 1, 0) == -1) { + cmn_err(CE_WARN, "failed to read %s\n", versionfile); + } + kobj_close_file(file); + } } /* * Search for a specific module variable assignment in /etc/system. If * successful, 1 is returned and the value is stored in '*value'.