void DkProcessExit (PAL_NUM exitcode) { ENTER_PAL_CALL(DkProcessExit); _DkProcessExit(exitcode); _DkRaiseFailure(PAL_ERROR_NOTKILLABLE); LEAVE_PAL_CALL(); }
PAL_BOL DkInstructionCacheFlush (PAL_PTR addr, PAL_NUM size) { ENTER_PAL_CALL(DkInstructionCacheFlush); if (!addr || !size) { _DkRaiseFailure(PAL_ERROR_INVAL); LEAVE_PAL_CALL_RETURN(PAL_FALSE); } int ret = _DkInstructionCacheFlush((void *) addr, size); if (ret < 0) { _DkRaiseFailure(-ret); LEAVE_PAL_CALL_RETURN(PAL_FALSE); } LEAVE_PAL_CALL_RETURN(PAL_TRUE); }
PAL_BOL DkProcessSandboxCreate (PAL_STR manifest, PAL_FLG flags) { ENTER_PAL_CALL(DkProcessSandboxCreate); int ret = _DkProcessSandboxCreate(manifest, flags); if (ret < 0) { _DkRaiseFailure(-ret); LEAVE_PAL_CALL_RETURN(PAL_FALSE); } LEAVE_PAL_CALL_RETURN(PAL_TRUE); }
PAL_HANDLE DkProcessCreate (PAL_STR uri, PAL_FLG flags, PAL_STR * args) { ENTER_PAL_CALL(DkProcessCreate); log_stream(uri); PAL_HANDLE handle = NULL; int ret = _DkProcessCreate(&handle, uri, flags, args); if (ret < 0) { _DkRaiseFailure(-ret); handle = NULL; } LEAVE_PAL_CALL_RETURN(handle); }
PAL_PTR DkSegmentRegister (PAL_FLG reg, PAL_PTR addr) { ENTER_PAL_CALL(DkSegmentRegister); void * seg_addr = (void *) addr; int ret; if (addr) { ret = _DkSegmentRegisterSet(reg, seg_addr); } else { ret = _DkSegmentRegisterGet(reg, &seg_addr); } if (ret < 0) { _DkRaiseFailure(-ret); seg_addr = NULL; } LEAVE_PAL_CALL_RETURN((PAL_PTR) seg_addr); }
PAL_BOL DkCpuIdRetrieve (PAL_IDX leaf, PAL_IDX subleaf, PAL_IDX values[4]) { ENTER_PAL_CALL(DkCpuIdRetrieve); unsigned int vals[4]; int ret = _DkCpuIdRetrieve(leaf, subleaf, vals); if (ret < 0) { _DkRaiseFailure(-ret); LEAVE_PAL_CALL_RETURN(PAL_FALSE); } values[0] = vals[0]; values[1] = vals[1]; values[2] = vals[2]; values[3] = vals[3]; LEAVE_PAL_CALL_RETURN(PAL_TRUE); }