示例#1
0
 /// <summary>
 /// Register an action to perform when a precise access occurs (one with exact address and size).
 /// If the action returns true, read/write tracking are skipped.
 /// </summary>
 /// <param name="action">Action to call on read or write</param>
 public void RegisterPreciseAction(PreciseRegionSignal action)
 {
     foreach (var regionHandle in _cpuRegionHandles)
     {
         regionHandle.RegisterPreciseAction(action);
     }
 }
示例#2
0
 public void RegisterPreciseAction(PreciseRegionSignal action)
 {
     foreach (var handle in _handles)
     {
         if (handle != null)
         {
             handle?.RegisterPreciseAction((address, size, write) => action(handle.Address, handle.Size, write));
         }
     }
 }
示例#3
0
        public void RegisterPreciseAction(ulong address, ulong size, PreciseRegionSignal action)
        {
            int startHandle = (int)((address - Address) / Granularity);
            int lastHandle  = (int)((address + (size - 1) - Address) / Granularity);

            for (int i = startHandle; i <= lastHandle; i++)
            {
                _handles[i].RegisterPreciseAction(action);
            }
        }
示例#4
0
 /// <summary>
 /// Register an action to perform when a precise access occurs (one with exact address and size).
 /// If the action returns true, read/write tracking are skipped.
 /// </summary>
 /// <param name="action">Action to call on read or write</param>
 public void RegisterPreciseAction(PreciseRegionSignal action)
 {
     _preciseAction = action;
 }
示例#5
0
 public void RegisterPreciseAction(PreciseRegionSignal action) => _impl.RegisterPreciseAction(action);
示例#6
0
 public void RegisterPreciseAction(ulong address, ulong size, PreciseRegionSignal action) => _impl.RegisterPreciseAction(address, size, action);