thread_data *__QNXAddThread( thread_data *tdata ) /***********************************************/ { void *tmp; tdata = __AllocInitThreadData( tdata ); // if tdata is NULL it doesn't matter what we do with it tmp = (void *)tdata; __setmagicvar( &tmp, _m_thread_data ); return( tdata ); }
extern void __initerrno( void ) { void *err_ptr; int old_errno; old_errno = *__get_errno_ptr(); err_ptr = &errno; __setmagicvar( &err_ptr, _m_errno_ptr ); errno = old_errno; }
void __QNXRemoveThread( void ) /****************************/ { void *tmp; thread_data *tdata; __getmagicvar( &tmp, _m_thread_data ); if( tmp != NULL ) { tdata = tmp; if( tdata->__allocated ) { lib_free( tdata ); } tmp = 0; __setmagicvar( &tmp, _m_thread_data ); } }