public NetworkHandler() { networkObjects = new Dictionary<string, NetObj>(); updating = false; receivedBytes = new byte[INITIAL_BUFFER_SIZE]; reliableInOrderMsgs = new List<byte>(); unreliableInOrderMsgs = new List<byte>(); reliableUnOrderMsgs = new List<byte>(); unreliableUnOrderMsgs = new List<byte>(); transferSize = TransferSize.UShort; networkObjSize = sizeof(ushort); switch (transferSize) { case TransferSize.Byte: maxNetworkObjSize = byte.MaxValue; break; case TransferSize.UShort: maxNetworkObjSize = ushort.MaxValue; break; case TransferSize.Int: maxNetworkObjSize = int.MaxValue; break; } started = false; }
public SocketNetworkHandler() { networkObjects = new Dictionary <string, NetObj>(); updating = false; receivedBytes = new byte[INITIAL_BUFFER_SIZE]; transferSize = TransferSize.UShort; networkObjSize = sizeof(ushort); switch (transferSize) { case TransferSize.Byte: maxNetworkObjSize = byte.MaxValue; break; case TransferSize.UShort: maxNetworkObjSize = ushort.MaxValue; break; case TransferSize.Int: maxNetworkObjSize = int.MaxValue; break; } started = false; }
private TransferType SizeToType(TransferSize size) { switch (size) { case TransferSize.Bits32: return(TransferType.DoubleWord); case TransferSize.Bits16: return(TransferType.Word); case TransferSize.Bits8: default: return(TransferType.Byte); } }
private void IssueCopy(ulong sourceAddress, ulong destinationAddress, uint size, bool incrementReadAddress, bool incrementWriteAddress, TransferSize sourceTransferType, TransferSize destinationTransferType) { var request = new Request( sourceAddress, destinationAddress, (int)size, SizeToType(sourceTransferType), SizeToType(destinationTransferType), incrementReadAddress, incrementWriteAddress ); parent.engine.IssueCopy(request); }
public void EmitSingleDataTransfer(ConditionCode conditionCode, Indexing indexing, OffsetDirection offsetDirection, TransferSize transferSize, WriteBack writeBack, TransferType transferType, int firstRegister, int destinationRegister, ShiftType secondShiftType, int secondRegister) { Debug.Assert(destinationRegister <= 0xF); Debug.Assert(firstRegister <= 0xF); Debug.Assert(secondRegister <= 0xF); uint value = 0; value |= (uint)(GetConditionCode(conditionCode) << 28); value |= (uint)(1 << 26); value |= (uint)(1 << 25); value |= (uint)((indexing == Indexing.Post ? 0 : 1) << 24); value |= (uint)((transferSize == TransferSize.Word ? 0 : 1) << 23); value |= (uint)((offsetDirection == OffsetDirection.Down ? 0 : 1) << 22); value |= (uint)((writeBack == WriteBack.NoWriteBack ? 0 : 1) << 21); value |= (uint)((transferType == TransferType.Store ? 0 : 1) << 20); value |= (uint)(destinationRegister << 12); value |= (uint)(firstRegister << 16); value |= (uint)(GetShiftTypeCode(secondShiftType) << 4); value |= (uint)secondRegister; Write(value); }
public static uint EmitSingleDataTransfer(ConditionCode conditionCode, Indexing indexing, OffsetDirection offsetDirection, TransferSize transferSize, WriteBack writeBack, TransferType transferType, int firstRegister, int destinationRegister, ShiftType secondShiftType, int secondRegister) { Debug.Assert(destinationRegister <= 0xF); Debug.Assert(firstRegister <= 0xF); Debug.Assert(secondRegister <= 0xF); uint value = 0; value |= (uint)(GetConditionCode(conditionCode) << 28); value |= 1 << 26; value |= 1 << 25; value |= (uint)((indexing == Indexing.Post ? 0 : 1) << 24); value |= (uint)((transferSize == TransferSize.Word ? 0 : 1) << 23); value |= (uint)((offsetDirection == OffsetDirection.Down ? 0 : 1) << 22); value |= (uint)((writeBack == WriteBack.NoWriteBack ? 0 : 1) << 21); value |= (uint)((transferType == TransferType.Store ? 0 : 1) << 20); value |= (uint)(destinationRegister << 12); value |= (uint)(firstRegister << 16); value |= (uint)(GetShiftTypeCode(secondShiftType) << 4); value |= (uint)secondRegister; return(value); }
public void EmitSingleDataTransfer(ConditionCode conditionCode, Indexing indexing, OffsetDirection offsetDirection, TransferSize transferSize, WriteBack writeBack, TransferType transferType, int firstRegister, int destinationRegister, uint immediate) { Debug.Assert(destinationRegister <= 0xF); Debug.Assert(firstRegister <= 0xF); Debug.Assert(immediate <= 0xFFF); uint value = 0; value |= (uint)(GetConditionCode(conditionCode) << 28); value |= (uint)(1 << 26); value |= (uint)(1 << 25); value |= (uint)((indexing == Indexing.Post ? 0 : 1) << 24); value |= (uint)((transferSize == TransferSize.Word ? 0 : 1) << 23); value |= (uint)((offsetDirection == OffsetDirection.Down ? 0 : 1) << 22); value |= (uint)((writeBack == WriteBack.NoWriteBack ? 0 : 1) << 21); value |= (uint)((transferType == TransferType.Store ? 0 : 1) << 20); value |= (uint)(destinationRegister << 12); value |= (uint)(firstRegister << 16); value |= (uint)immediate; Write(value); }