Paul Hollinsky
1118428250
Device: Only allow one disk transaction at a time
...
Most drivers will not gracefully handle more than one transaction
2022-03-03 16:20:51 -05:00
Paul Hollinsky
8c774228bc
Disk: FAT: Fix Windows UNICODE compilation
2022-03-03 15:13:04 -05:00
Paul Hollinsky
478dfb3cb8
Platform: Windows: Create trampoline header
...
This way windows.h can be included if needed without a guard,
and we have a place to stub out defines for other platforms if
necessary.
2022-03-03 15:01:32 -05:00
Paul Hollinsky
8aa5bef7dc
Disk: Implement Extended Extractor Driver
...
This is the high speed driver used for RED 2, FIRE 3, and many
of the RAD-family devices.
2022-03-03 00:03:37 -05:00
Paul Hollinsky
453d3366af
Platform: Windows: Avoid windows.h
...
This way Windows.h doesn't pollute everything with random defines
2022-02-28 19:12:35 -05:00
Paul Hollinsky
caf5cca42f
Disk: Plasion: Fix bit-width issues
2022-02-28 19:11:39 -05:00
Paul Hollinsky
ae1b8d342e
Disk: Use std::chrono::seconds for CacheTime
...
This fixes an issue with MSVC
2022-02-28 19:11:27 -05:00
Paul Hollinsky
c314417277
Device: Find the VSA offset for Disk::Access::EntireDisk
2022-02-28 15:55:16 -05:00
Paul Hollinsky
1fadb85206
ThirdParty: Add FatFs
...
R0.14b
2022-02-28 15:54:38 -05:00
Paul Hollinsky
6bcd8e5637
Disk: Read driver for Plasion
2022-02-28 03:40:44 -05:00
Paul Hollinsky
4c9d6c5ee7
Disk: NeoMemory: Cache last read sector for one second
...
This prevents constant re-reads if reading in small chunks
2022-02-28 01:55:31 -05:00
Paul Hollinsky
4ef8fe8794
Disk: Predictable behavior for zero length reads
2022-02-28 01:54:21 -05:00
Paul Hollinsky
f8a46b7196
Device: Add logical disk size accessor
2022-02-28 01:49:50 -05:00
Paul Hollinsky
0b27e88da1
Disk: WriteDriver: Fix parameter shadowing
2022-02-25 01:14:57 -05:00
Paul Hollinsky
241502c2a2
Disk: Fix improper offset calculation
...
This would cause an underflow previously
2022-02-25 01:14:57 -05:00
Paul Hollinsky
242c7259ac
Disk: Proper error reporting for EOF
2022-02-25 01:14:57 -05:00
Paul Hollinsky
9d2d94d22b
Tests: Add disk driver tests
2022-02-25 01:14:57 -05:00
Paul Hollinsky
bb49ce039e
ThirdParty: Update included gtest
2022-02-25 01:14:57 -05:00
Paul Hollinsky
e52073c518
Tests: EthernetPacketizer: Fix typo
2022-02-25 01:14:57 -05:00
Paul Hollinsky
0dcd950092
Device: Add disk write driver framework
...
At the moment, no drivers are implemented, so all devices have Access::None.
2022-02-25 01:14:57 -05:00
Paul Hollinsky
80cd4ae052
Disk: Fix out of bounds accesses in base ReadDriver
2022-02-25 01:14:57 -05:00
Paul Hollinsky
f8bfb243fa
Disk: Implement NeoMemoryDiskReadDriver
2022-02-25 01:14:57 -05:00
Paul Hollinsky
fe4d5e0c15
Device: Add disk read driver framework
...
Allow access to the device's logical disk.
At the moment, no drivers are implemented, so all devices have Access::None.
2022-02-25 01:14:57 -05:00
Paul Hollinsky
9e6970fd39
Windows: DynamicLib: Slim down Windows.h
...
This is important as it ends up being included in icsneoc.h
2022-02-24 16:37:13 -05:00
Paul Hollinsky
6cd821be2c
Build: Don't add libusb include until after libftdi
...
This fixes GH-46 and a regression caused by 82954d9 where the project
would fail to build until configured a second time on Unix-y platforms.
LibFTDI adds libusb, so we need to make sure that's included first.
Windows does not use libusb so it does not need the include directory.
2022-02-24 16:03:02 -05:00
Paul Hollinsky
6cc0f08e2b
Settings: The device can report when defaults were applied
2022-02-24 15:50:39 -05:00
Paul Hollinsky
80362e7f81
Event Manager: Refactor
2022-02-24 15:49:21 -05:00
Paul Hollinsky
d7d9c15a9f
Tests: Resolve MSVC x86 warnings
2022-02-22 10:49:49 -05:00
Paul Hollinsky
c326397bea
Examples: C Interactive: Resolve warnings
2022-02-22 10:49:49 -05:00
Paul Hollinsky
af152fe54a
CI: Also set warnings as errors in C code
2022-02-22 10:49:49 -05:00
Paul Hollinsky
d051d20db6
CI: Add Windows 32-bit
2022-02-22 10:49:49 -05:00
Paul Hollinsky
d0d279fdad
Windows: Disable unaligned on x86
...
Closes GH-44
2022-02-22 10:49:49 -05:00
Paul Hollinsky
c32d027b2d
MessageCallback: Tolerate being created with nullptr filter
...
Communication does this in waitForMessageSync if a filter
is not passed in.
This fixes a crash in icsneoWaitForRxMessagesWithTimeOut
for the legacy API.
For good measure, creation with an empty std::function will
immediately throw an std::bad_function_call back at the
caller, rather than letting that happen on the callback thread.
I'm also making the members const here so they are provably
always non-null (and not empty, for the function).
2022-02-21 22:55:49 -05:00
Paul Hollinsky
ac7b2d5106
FlexRay: Automatically reconfigure for runtime-added message buffers
2022-02-21 21:40:46 -05:00
Paul Hollinsky
4dbb8f3956
FlexRay: Don't set default key slots to continuous
...
This way they will come out as NULL frames, which is likely
more appropriate for a default.
This only takes effect if you set a key slot, but then don't
configure a message buffer for it.
2022-02-21 21:40:46 -05:00
Paul Hollinsky
eace014494
FlexRay: Don't enforce key slot rules on non-keyslots
2022-02-21 21:40:46 -05:00
Paul Hollinsky
159c54b756
Legacy: Updates for the new neomessage_t API
2022-02-21 21:36:20 -05:00
Paul Hollinsky
416996b31d
CI: Warnings are errors
2022-02-21 21:36:20 -05:00
Paul Hollinsky
f37669139f
MSVC: Resolve warnings
2022-02-21 21:36:20 -05:00
Paul Hollinsky
7aedb673fd
Legacy: Fix icsneoGetVnetSimpleNetid
...
The NetID is written to the out* parameter, not returned.
2022-02-21 21:28:31 -05:00
Paul Hollinsky
52c7b5aaca
Legacy: Fix icsneoGetNetidforSlaveVNETs
...
The NetID is written to the out* parameter, not returned.
2022-02-21 21:28:31 -05:00
Paul Hollinsky
0f9bf83c89
Legacy: Formatting
2022-02-21 21:28:31 -05:00
Paul Hollinsky
dfd8768bbf
Legacy: Correct Ethernet message translation
...
* Fixes NetIDs over 255
* Fixes data lengths over 255
* Avoids writing unexpected messages to client
2022-02-21 21:28:31 -05:00
Paul Hollinsky
94e0ea1fe0
Legacy: Prevent incorrect access to NetID maps
2022-02-21 21:28:30 -05:00
Paul Hollinsky
58944a2523
Tests: Spaces to Tabs
2022-02-21 21:28:30 -05:00
Paul Hollinsky
be666e810d
CI: Add Windows
2022-02-21 21:28:30 -05:00
Paul Hollinsky
44e48182bf
Device: Don't try to deduce lock_guard template parameters
...
This improves compatibility with older C++ standards
2022-02-14 19:32:12 -05:00
Paul Hollinsky
4fd65d85c8
Windows: PCAP: Fix WinPCAP loading
...
Used when LIBICSNEO_NPCAP_INCLUDE_DIR is not defined
2022-02-14 19:24:46 -05:00
Paul Hollinsky
0ded5508c1
Windows: Fix build issues with EthPhyRegPacket
2022-02-14 19:20:50 -05:00
Paul Hollinsky
6d92b7a03a
Windows: PCAP: Fix a race which could cause transmit delays
...
If you had a chain of packets being sent all at once, the latter
section of packets could be delayed, theoretically infinitely.
If queue1 was filled and enqueued for transmit, then queue2
had packets enqueued in it while queue1 was still transmitting,
we'd try to fill queue2 further rather than waiting for queue1's
transmit to finish.
However, in that case, we wouldn't check if we could transmit
queue2 again until the next packet. If the user application
was waiting for the response from something in queue2
before pushing more packets, it could hang indefinitely.
This also fixes a subtle bug where hitting the "not safe to try
to fit any more packets in this queue" limit would cause a
packet to drop, as it would be dequeued and then tossed.
Closes GH-42
2022-02-04 01:14:08 -05:00