loader.c (63f9f2ff) loader.c (8c653870)
1/*
2 * Copyright (c) 2000 Daniel Capo Sobral
3 * Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
4 * Copyright 2020 RackTop Systems, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 416 unchanged lines hidden (view full) ---

425 (void) ficlStackPopInteger(ficlVmGetDataStack(pVM));
426 (void) ficlStackPopPointer(ficlVmGetDataStack(pVM));
427
428 fp = NULL;
429#endif
430 ficlStackPushPointer(ficlVmGetDataStack(pVM), fp);
431}
432
1/*
2 * Copyright (c) 2000 Daniel Capo Sobral
3 * Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
4 * Copyright 2020 RackTop Systems, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 416 unchanged lines hidden (view full) ---

425 (void) ficlStackPopInteger(ficlVmGetDataStack(pVM));
426 (void) ficlStackPopPointer(ficlVmGetDataStack(pVM));
427
428 fp = NULL;
429#endif
430 ficlStackPushPointer(ficlVmGetDataStack(pVM), fp);
431}
432
433/*
434 * isvirtualized? - Return whether the loader runs under a
435 * hypervisor.
436 *
437 * isvirtualized? ( -- addr len flag | flag )
438 */
439static void
440ficlIsvirtualizedQ(ficlVm *pVM)
441{
442 const char *hv;
443
444 FICL_STACK_CHECK(ficlVmGetDataStack(pVM), 0, 3);
445
446#ifdef _STANDALONE
447 hv = (archsw.arch_hypervisor != NULL)
448 ? (*archsw.arch_hypervisor)()
449 : NULL;
450#else
451 hv = NULL;
452#endif
453 if (hv != NULL) {
454 ficlStackPushPointer(ficlVmGetDataStack(pVM), (void *)hv);
455 ficlStackPushInteger(ficlVmGetDataStack(pVM), strlen(hv));
456 ficlStackPushInteger(ficlVmGetDataStack(pVM), FICL_TRUE);
457 } else {
458 ficlStackPushInteger(ficlVmGetDataStack(pVM), FICL_FALSE);
459 }
460}
461
433void
434ficlCcall(ficlVm *pVM)
435{
436 int (*func)(int, ...);
437 int result, p[10];
438 int nparam, i;
439
440 FICL_STACK_CHECK(ficlVmGetDataStack(pVM), 2, 0);

--- 641 unchanged lines hidden (view full) ---

1082 (void) ficlDictionarySetPrimitive(dp, "unsetenv", ficlUnsetenv,
1083 FICL_WORD_DEFAULT);
1084 (void) ficlDictionarySetPrimitive(dp, "copyin", ficlCopyin,
1085 FICL_WORD_DEFAULT);
1086 (void) ficlDictionarySetPrimitive(dp, "copyout", ficlCopyout,
1087 FICL_WORD_DEFAULT);
1088 (void) ficlDictionarySetPrimitive(dp, "findfile", ficlFindfile,
1089 FICL_WORD_DEFAULT);
462void
463ficlCcall(ficlVm *pVM)
464{
465 int (*func)(int, ...);
466 int result, p[10];
467 int nparam, i;
468
469 FICL_STACK_CHECK(ficlVmGetDataStack(pVM), 2, 0);

--- 641 unchanged lines hidden (view full) ---

1111 (void) ficlDictionarySetPrimitive(dp, "unsetenv", ficlUnsetenv,
1112 FICL_WORD_DEFAULT);
1113 (void) ficlDictionarySetPrimitive(dp, "copyin", ficlCopyin,
1114 FICL_WORD_DEFAULT);
1115 (void) ficlDictionarySetPrimitive(dp, "copyout", ficlCopyout,
1116 FICL_WORD_DEFAULT);
1117 (void) ficlDictionarySetPrimitive(dp, "findfile", ficlFindfile,
1118 FICL_WORD_DEFAULT);
1119 (void) ficlDictionarySetPrimitive(dp, "isvirtualized?",
1120 ficlIsvirtualizedQ, FICL_WORD_DEFAULT);
1090 (void) ficlDictionarySetPrimitive(dp, "ccall", ficlCcall,
1091 FICL_WORD_DEFAULT);
1092 (void) ficlDictionarySetPrimitive(dp, "uuid-from-string",
1093 ficlUuidFromString, FICL_WORD_DEFAULT);
1094 (void) ficlDictionarySetPrimitive(dp, "uuid-to-string",
1095 ficlUuidToString, FICL_WORD_DEFAULT);
1096 (void) ficlDictionarySetPrimitive(dp, "fb-setpixel", ficl_fb_setpixel,
1097 FICL_WORD_DEFAULT);

--- 27 unchanged lines hidden ---
1121 (void) ficlDictionarySetPrimitive(dp, "ccall", ficlCcall,
1122 FICL_WORD_DEFAULT);
1123 (void) ficlDictionarySetPrimitive(dp, "uuid-from-string",
1124 ficlUuidFromString, FICL_WORD_DEFAULT);
1125 (void) ficlDictionarySetPrimitive(dp, "uuid-to-string",
1126 ficlUuidToString, FICL_WORD_DEFAULT);
1127 (void) ficlDictionarySetPrimitive(dp, "fb-setpixel", ficl_fb_setpixel,
1128 FICL_WORD_DEFAULT);

--- 27 unchanged lines hidden ---