void hw_LockSemaphore(APTR sem);
hw_LockSemaphore() will wait until that thread releases
the semaphore again.
Note that hw_LockSemaphore() contains a nesting count. Every call to hw_LockSemaphore()
must be matched by a call to hw_UnLockSemaphore().