/* * Copyright 2014, General Dynamics C4 Systems * * SPDX-License-Identifier: GPL-2.0-only */ #include #include #include #include #include #include #include const register_t msgRegisters[] = { EDI, #ifndef CONFIG_KERNEL_MCS EBP #endif }; compile_assert( consistent_message_registers, sizeof(msgRegisters) / sizeof(msgRegisters[0]) == n_msgRegisters ); const register_t frameRegisters[] = { FaultIP, ESP, FLAGS, EAX, EBX, ECX, EDX, ESI, EDI, EBP }; compile_assert( consistent_frame_registers, sizeof(frameRegisters) / sizeof(frameRegisters[0]) == n_frameRegisters ); const register_t gpRegisters[] = { FS_BASE, GS_BASE }; compile_assert( consistent_gp_registers, sizeof(gpRegisters) / sizeof(gpRegisters[0]) == n_gpRegisters ); void Mode_initContext(user_context_t *context) { context->registers[EAX] = 0; context->registers[EBX] = 0; context->registers[ECX] = 0; context->registers[EDX] = 0; context->registers[ESI] = 0; context->registers[EDI] = 0; context->registers[EBP] = 0; context->registers[ESP] = 0; } word_t Mode_sanitiseRegister(register_t reg, word_t v) { return v; } #ifdef CONFIG_KERNEL_MCS word_t getNBSendRecvDest(void) { seL4_IPCBuffer *buffer = (seL4_IPCBuffer *) lookupIPCBuffer(false, NODE_STATE(ksCurThread)); if (buffer != NULL) { return buffer->userData; } else { return 0; } } #endif