diff options
| author | Dan McDonald <danmcd@joyent.com> | 2022-01-31 11:01:15 -0500 |
|---|---|---|
| committer | Dan McDonald <danmcd@joyent.com> | 2022-01-31 11:01:15 -0500 |
| commit | 7ab5ebfd113bd9e0be117e1d0b0891593529382e (patch) | |
| tree | 1ddbbeacda4faa28906a30b5a5127e002db41648 /usr/src/common | |
| parent | b61a8c8ab692442a9710e7766f9de1288a80f938 (diff) | |
| parent | c8f4a9f75f12adb1f76391a838d75f2b427becb6 (diff) | |
| download | illumos-joyent-7ab5ebfd113bd9e0be117e1d0b0891593529382e.tar.gz | |
[illumos-gate merge]
commit c8f4a9f75f12adb1f76391a838d75f2b427becb6
8555 vfstab(4) man incorrectly describes getvfsent(3C)
commit 8ac8a393f9ba5b2bf3aeabc50511c40334e9f5c8
14413 Convert vfstab(4) to mandoc
commit e8b9fe7cd6fc0b13bcf65e0380c48fcb99ac5700
6943 libmd(3lib) should mention new hash algorithms
commit b51a7e2003caa1eee7cfd998a535231eb646bb8d
14412 Convert libmd(3lib) to mandoc
commit 597b30361cb132283d94270df35d0536cf12895f
9855 list_next/list_prev needs a bit more detail
commit 9023fe694e5cc93a381708677f172a85f250caa5
14411 Convert list_create(9F) to mandoc
commit f3682895b2a97c009685f16e8a4e5d3dc80e11f2
14420 Need support for Intel I219 v16-v23
commit 89fbfe0d2fbdaef52447ae1ca77634c69a3cf220
14385 libnsl: mismatched bound
commit 618372bccd696950e1d234d0ad9c94c353882dee
14358 Cron should support randomized delay
commit 8c65387009c4cfaa0924c78065b46a4d4a178d41
14451 loader: want mechanism to test if we are virtualized
Conflicts:
usr/src/uts/intel/os/driver_aliases
Diffstat (limited to 'usr/src/common')
| -rw-r--r-- | usr/src/common/ficl/loader.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/usr/src/common/ficl/loader.c b/usr/src/common/ficl/loader.c index c1f5c5d0eb..515330f849 100644 --- a/usr/src/common/ficl/loader.c +++ b/usr/src/common/ficl/loader.c @@ -430,6 +430,35 @@ ficlFindfile(ficlVm *pVM) ficlStackPushPointer(ficlVmGetDataStack(pVM), fp); } +/* + * isvirtualized? - Return whether the loader runs under a + * hypervisor. + * + * isvirtualized? ( -- addr len flag | flag ) + */ +static void +ficlIsvirtualizedQ(ficlVm *pVM) +{ + const char *hv; + + FICL_STACK_CHECK(ficlVmGetDataStack(pVM), 0, 3); + +#ifdef _STANDALONE + hv = (archsw.arch_hypervisor != NULL) + ? (*archsw.arch_hypervisor)() + : NULL; +#else + hv = NULL; +#endif + if (hv != NULL) { + ficlStackPushPointer(ficlVmGetDataStack(pVM), (void *)hv); + ficlStackPushInteger(ficlVmGetDataStack(pVM), strlen(hv)); + ficlStackPushInteger(ficlVmGetDataStack(pVM), FICL_TRUE); + } else { + ficlStackPushInteger(ficlVmGetDataStack(pVM), FICL_FALSE); + } +} + void ficlCcall(ficlVm *pVM) { @@ -1087,6 +1116,8 @@ ficlSystemCompilePlatform(ficlSystem *pSys) FICL_WORD_DEFAULT); (void) ficlDictionarySetPrimitive(dp, "findfile", ficlFindfile, FICL_WORD_DEFAULT); + (void) ficlDictionarySetPrimitive(dp, "isvirtualized?", + ficlIsvirtualizedQ, FICL_WORD_DEFAULT); (void) ficlDictionarySetPrimitive(dp, "ccall", ficlCcall, FICL_WORD_DEFAULT); (void) ficlDictionarySetPrimitive(dp, "uuid-from-string", |
