bool canStartDriver() { transferBuf_s s_transferBuf; int16_t rc = createMsqs( msqDataClient ); if ( rc != HAL_NO_ERR ) return false; s_transferBuf.i32_mtypePid = msqDataClient.i32_pid; s_transferBuf.ui16_command = COMMAND_REGISTER; s_transferBuf.s_startTimeClock.t_clock = getStartupTime(); rc = send_command( &s_transferBuf, &msqDataClient ); if ( rc == HAL_NO_ERR ) { if ( s_transferBuf.s_acknowledge.i32_dataContent != ACKNOWLEDGE_DATA_CONTENT_PIPE_ID ) { return false; } #ifdef USE_MUTUAL_EXCLUSION if( pipe2( breakWaitPipeFd, O_NONBLOCK ) != 0 ) { perror("pipe"); } #endif char pipe_name[255]; sprintf( pipe_name, "%s%d", PIPE_PATH, s_transferBuf.s_acknowledge.i32_data ); int fd = open( pipe_name, O_NONBLOCK | O_RDONLY ); if( fd == -1 ) { return false; } else { msqDataClient.i32_pipeHandle = fd; } } return true; }
StartupTimeStaticInitializer () { getStartupTime(); }
Boolean UNIX_ApplicationSystem::getStartupTime(CIMProperty &p) const { p = CIMProperty(PROPERTY_STARTUP_TIME, getStartupTime()); return true; }