Mike,
The ThreadIbsta(), ThreadIberr(), and ThreadIbcntl() functions are designed so that customers who use multithreading in their applications have a thread-safe way to get the ibsta, iberr, and ibcntl global variables.
These functions are not provided in the Solaris version of the driver, but this does not mean that you cannot use the driver in a multithreaded appliction. You simply need to be aware that the ibsta, iberr, ibcntl globals are allocated on a per-process basis. Thus, you cannot depend on these globals to be valid for every thread all the time. If thread 1 makes a call to ibconfig and thread 2 makes a call to ibwrt then reads the ibsta global, you cannot be assured that the ibsta is the result of thread 2's ibwrt; it may be that thre
ad 1's ibconfig wrote to ibsta. To read ibsta, you can simply examine the return of the ib-style function since most of them return the value of ibsta anyway.
To your questions about whether there is another driver for Solaris, you do have the latest version for your configuration. I do not know offhand whether or not the Solaris driver itself takes advantage of Solaris's multithreading capability. If this information is still important to you, I can do some reasearch and possibly find out.
Hope this helps.
Scott B.
Applications Engineer
National Instruments