public void RegisterOperationEvent(KWritableEvent writableEvent) { if (_systemClockContextUpdateCallback != null) { _systemClockContextUpdateCallback.RegisterOperationEvent(writableEvent); } }
public KSessionRequest( KThread clientThread, ulong customCmdBuffAddr, ulong customCmdBuffSize, KWritableEvent asyncEvent = null) { ClientThread = clientThread; CustomCmdBuffAddr = customCmdBuffAddr; CustomCmdBuffSize = customCmdBuffSize; AsyncEvent = asyncEvent; BufferDescriptorTable = new KBufferDescriptorTable(); }
public KernelResult SendAsyncRequest(KWritableEvent asyncEvent, ulong customCmdBuffAddr = 0, ulong customCmdBuffSize = 0) { KThread currentThread = KernelStatic.GetCurrentThread(); KSessionRequest request = new KSessionRequest(currentThread, customCmdBuffAddr, customCmdBuffSize, asyncEvent); KernelContext.CriticalSection.Enter(); KernelResult result = _parent.ServerSession.EnqueueRequest(request); KernelContext.CriticalSection.Leave(); return(result); }
private KernelResult ClearEvent(int handle) { KernelResult result; KWritableEvent writableEvent = _process.HandleTable.GetObject <KWritableEvent>(handle); if (writableEvent == null) { KReadableEvent readableEvent = _process.HandleTable.GetObject <KReadableEvent>(handle); result = readableEvent?.Clear() ?? KernelResult.InvalidHandle; } else { result = writableEvent.Clear(); } return(result); }
private KernelResult SignalEvent(int handle) { KWritableEvent writableEvent = _process.HandleTable.GetObject <KWritableEvent>(handle); KernelResult result; if (writableEvent != null) { writableEvent.Signal(); result = KernelResult.Success; } else { result = KernelResult.InvalidHandle; } return(result); }
public void RegisterOperationEvent(KWritableEvent writableEvent) { Monitor.Enter(_operationEventList); _operationEventList.Add(writableEvent); Monitor.Exit(_operationEventList); }
public KEvent(Horizon system) { ReadableEvent = new KReadableEvent(system, this); WritableEvent = new KWritableEvent(this); }
public KEvent(KernelContext context) { ReadableEvent = new KReadableEvent(context, this); WritableEvent = new KWritableEvent(context, this); }