static PHB_IOUSR s_iousrAddNew( const char * pszPrefix ) { PHB_IOUSR pIO = NULL; int iCount; HB_IOUSR_LOCK(); iCount = s_iCount; while( --iCount >= 0 ) { if( hb_stricmp( pszPrefix, s_ioUsrs[ iCount ]->prefix ) == 0 ) break; } if( iCount < 0 ) { if( s_iCount == 0 ) hb_vmAtQuit( s_iousrFreeAll, NULL ); pIO = ( PHB_IOUSR ) hb_xgrabz( sizeof( HB_IOUSR ) ); pIO->prefix = hb_strdup( pszPrefix ); pIO->prefix_len = ( int ) strlen( pszPrefix ); s_ioUsrs[ s_iCount++ ] = pIO; } HB_IOUSR_UNLOCK(); return pIO; }
static void socket_init( void ) { if( ! s_fInit ) { hb_socketInit(); hb_vmAtQuit( socket_exit, NULL ); s_fInit = HB_TRUE; } }
static void memfsInit( void ) { /* HB_CRITICAL_INIT( s_mtx ); */ s_error = 0; s_fs.ulInodeCount = 0; s_fs.ulInodeAlloc = HB_MEMFS_INITSIZE; s_fs.pInodes = ( PHB_MEMFS_INODE * ) hb_xgrab( sizeof( PHB_MEMFS_INODE ) * s_fs.ulInodeAlloc ); s_fs.ulFileAlloc = HB_MEMFS_INITSIZE; s_fs.pFiles = ( PHB_MEMFS_FILE * ) hb_xgrabz( sizeof( PHB_MEMFS_FILE ) * s_fs.ulFileAlloc ); s_fs.ulFileLast = 0; hb_vmAtQuit( memfsExit, NULL ); }
static void s_signalHandlersInit() { #if defined( HB_THREAD_SUPPORT ) && ( defined( HB_OS_UNIX ) || defined( HB_OS_UNIX ) ) pthread_t res; HB_STACK * pStack; s_serviceSetHBSig(); pStack = hb_threadCreateStack( 0 ); pthread_create( &res, NULL, s_signalListener, pStack ); #else s_serviceSetHBSig(); #endif s_pHooks = hb_itemArrayNew( 0 ); hb_vmAtQuit( hb_service_exit, NULL ); }
HB_BOOL hb_oleAxInit( void ) { hb_oleInit(); if( s_hLib == NULL ) { PHB_AX_WININIT pAtlAxWinInit; s_hLib = hbwapi_LoadLibrarySystem( TEXT( "atl.dll" ) ); if( ( unsigned long ) ( HB_PTRDIFF ) s_hLib <= 32 ) { s_hLib = NULL; return HB_FALSE; } pAtlAxWinInit = ( PHB_AX_WININIT ) HB_WINAPI_GETPROCADDRESS( s_hLib, "AtlAxWinInit" ); s_pAtlAxGetControl = ( PHB_AX_GETCTRL ) HB_WINAPI_GETPROCADDRESS( s_hLib, "AtlAxGetControl" ); if( pAtlAxWinInit ) ( *pAtlAxWinInit )(); hb_vmAtQuit( hb_oleAxExit, NULL ); } return HB_TRUE; }