Trying to get trap/leave to work properly but the whole WINS stuff seems over complicated with a lot of assembly in the middle and it's not working on my compiler. When the throw happens the debugger complains about uncaught exception when I'm definitly inside a catch implemented by our TRAP.
I think I'm going to come up with a much simplified trap/leave implementation for SYMC. On my prototype all that stuff was working fine in like 20 lines of C++.
EXPORTS
__18TUsbcScChunkHeaderG6RChunk @ 1 NONAME R3UNUSED ; TUsbcScChunkHeader::TUsbcScChunkHeader(RChunk)
Close__15TEndpointBuffer @ 2 NONAME R3UNUSED ; TEndpointBuffer::Close(void)
FinalizeInterface__16RDevUsbcScClient @ 3 NONAME R3UNUSED ; RDevUsbcScClient::FinalizeInterface(void)
FinalizeInterface__16RDevUsbcScClientRP6RChunk @ 4 NONAME R3UNUSED ; RDevUsbcScClient::FinalizeInterface(RChunk *&)
GetBuffer__15TEndpointBufferRPvRUiRiR14TRequestStatusUi @ 5 NONAME ; TEndpointBuffer::GetBuffer(void *&, unsigned int &, int &, TRequestStatus &, unsigned int)
GetBuffer__18TUsbcScChunkHeaderiiRP24TUsbcScHdrEndpointRecord @ 6 NONAME ; TUsbcScChunkHeader::GetBuffer(int, int, TUsbcScHdrEndpointRecord *&)
GetDataTransferChunk__16RDevUsbcScClientRP6RChunk @ 7 NONAME R3UNUSED ; RDevUsbcScClient::GetDataTransferChunk(RChunk *&)
GetInBufferRange__15TEndpointBufferRPvRUi @ 8 NONAME R3UNUSED ; TEndpointBuffer::GetInBufferRange(void *&, unsigned int &)
GetInBufferRange__15TEndpointBufferRUiT1 @ 9 NONAME R3UNUSED ; TEndpointBuffer::GetInBufferRange(unsigned int &, unsigned int &)
GetNumberOfEndpoints__18TUsbcScChunkHeaderi @ 10 NONAME R3UNUSED ; TUsbcScChunkHeader::GetNumberOfEndpoints(int)
OpenEndpoint__16RDevUsbcScClientR15TEndpointBufferi @ 11 NONAME R3UNUSED ; RDevUsbcScClient::OpenEndpoint(TEndpointBuffer &, int)
StartNextOutAlternateSetting__16RDevUsbcScClienti @ 12 NONAME R3UNUSED ; RDevUsbcScClient::StartNextOutAlternateSetting(int)
WriteBuffer__15TEndpointBufferPvUiiR14TRequestStatus @ 13 NONAME ; TEndpointBuffer::WriteBuffer(void *, unsigned int, int, TRequestStatus &)
WriteBuffer__15TEndpointBufferUiUiiR14TRequestStatus @ 14 NONAME ; TEndpointBuffer::WriteBuffer(unsigned int, unsigned int, int, TRequestStatus &)
__15TEndpointBuffer @ 15 NONAME R3UNUSED ; TEndpointBuffer::TEndpointBuffer(void)
Dump__15TEndpointBuffer @ 16 NONAME R3UNUSED ; TEndpointBuffer::Dump(void)
Expire__15TEndpointBuffer @ 17 NONAME R3UNUSED ; TEndpointBuffer::Expire(void)
TakeBuffer__15TEndpointBufferRPvRUiRiR14TRequestStatusUi @ 18 NONAME ; TEndpointBuffer::TakeBuffer(void *&, unsigned int &, int &, TRequestStatus &, unsigned int)
Expire__15TEndpointBufferPv @ 19 NONAME R3UNUSED ; TEndpointBuffer::Expire(void *)