JTAG hardware access involves 7 simple macros, 6 of them to switch TMS, TDI and TCK low or high and a single one to query the status on the TDO line of the target device. In addition XsvfInit() is called during startup, which can be used to do any additionally required hardware initialization.
Access to the XSVF data is subdivided into several routines. In general, one simple routine would have been sufficient, which simply returns the next data byte. But there are two reasons for defining separate routines for reading different data types. The first is, that more specific debug output can be generated within these routines. The second reason is related to the byte order used on different platforms to store multibyte values. For example, XSVF stores delay times in a four byte value representing a number of microseconds. The most significant byte comes first, which is called big endian format. Most microcontrollers however use little endian, where the least significant byte comes first. The Nut/OS implementation calls ntohl() and ntohs() for conversion, which are well known functions used in TCP/IP implementations. You need to write your own byte swapping routines, if your host system is little endian and doesn't provide similar functions.
Execution delay isn't really critical as long as you don't under-run the specified time.
You may start rewriting XsvfGetByte() and call this routine from within all other XsvfGet functions.