private static uint Cmd_RegisterInterrupt(SysCallContext *context, SystemMessage *args) { var proc = Scheduler.GetCurrentThread().Process; if (proc.Service != null) { IDTManager.SetInterruptHandler(args->Arg1, InterruptHandlers.Service, proc.Service); } return(0); }
internal static uint RegisterInterrupt(ref SysCallContext context, ref SystemMessage args) { var proc = Scheduler.GetCurrentThread().Process; if (proc.Service != null) { IDTManager.SetInterruptHandler(args.Arg1, InterruptHandlers.Service, proc.Service); } return(0); }
public static void Setup() { KernelMessage.WriteLine("Initialize SysCall Manager"); IDTManager.SetInterruptHandler(FunctionIRQ, FunctionInterruptHandler); IDTManager.SetPrivilegeLevel(FunctionIRQ, 0x03); IDTManager.SetInterruptHandler(ActionIRQ, ActionInterruptHandler); IDTManager.SetPrivilegeLevel(ActionIRQ, 0x03); IDTManager.Flush(); Commands = new SysCallHandlerInfo[256]; SetCommands(); }