![]() |
![]() |
![]() |
![]() |
![]() |
|||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
![]() |
osTestHost
Syntax #include <ultra64.h> void osReadHost(void *vAddr, s32 nbytes); void osWriteHost(void *vAddr, s32 nbytes); s32 osTestHost(void); * osTestHost routine is not supported. * osAckRamromRead and osAckRamromWrite are used to form associations with uhReadRamrom and uhWriteRamrom, but there currently is no need to use them. (They are ignored.) ExplanationThese routines are used to transfer data between the 64 game and the host application. These are written into the 64 program, and function paired with the uj** function, which is declared in The osReadHost routine receives nbytes of data sent by uhWriteGame on the host side at the address vAddr in RDRAM. The osWriteHost routine transfers nbytes of data from the address vAddr in RDRAM to uhReadGame on the host side. For more precise synchronization, accurately match the numbers of bytes transferred in the paired functions osReadHost and uhWriteGame, and osWriteHost and uhReadGame. For example, if osReadHost is executed on the game side, the thread on the game side is interrupted until uhWriteGame is executed on the host side. Conversely, if uhWriteGame is executed, the program is blocked on the host side until osReadHost is executed on the game side. Align the DRAM virtual address on 8 bytes (64 bit). Also make the transfer size nbytes a multiple of 4. (Due to a 4 bytes restriction on the host side) Please be aware of the "endian" differences when data transferred from a host-side program on an Intel machine are to be used by a 64 program, or when data transferred from a 64 program are to be used by a host-side program on an Intel machine. Cautions
See Also |