Beispiel #1
0
bool MountDevices (bool silent)
	{
	cbsilent = silent;
	
	if (vars.ios > 200 || vars.neek == NEEK_USB)
		devices_Mount (DEVMODE_CIOSX, 0 /*vars.neek*/, vars.usbtime, cb_Mount);
	else
		devices_Mount (DEVMODE_IOS, 0 /*vars.neek*/, vars.usbtime, cb_Mount);
	
	bool cfgSD = false, cfgUSB = false;
	
	// First try to mount SD
	if (devices_Get (DEV_SD))
		{
		// Try to load configuration file... maybe a user have choosen to use the SD as primary device for postLoader
		SetDefMount (DEV_SD);
		cfgSD = ConfigRead ();
		}
	
	// Contine with next device
	if (!extConfig.disableUSB)
		{
		if (devices_Get (DEV_USB) && !cfgSD)
			{
			SetDefMount (DEV_USB);
			cfgUSB  = ConfigRead ();
			}
		}

	if (cfgSD || cfgUSB) // we have a valid device
		return TRUE;

	return false;
	}
void BootConfigRead(void)
{
#ifdef EE_CONFNET
    DEBUG("CONFNET ");
    if (ConfigGet(EE_CONFNET) == sizeof(CONFNET)) {
        DEBUG("OK\n");
        ConfigRead(EE_CONFNET, &confnet, sizeof(CONFNET));
#ifdef EE_CONFBOOT
        DEBUG("CONFBOOT ");
        if (ConfigGet(EE_CONFBOOT) == sizeof(CONFBOOT)) {
            DEBUG(" OK\n");
            ConfigRead(EE_CONFBOOT, &confboot, sizeof(CONFBOOT));
        }
        else {
            DEBUG("No\n");
        }
#endif
    }
    else {
        DEBUG("No\n");
    }
#endif
}
Beispiel #3
0
static int
InitClient( cOpenHpiClientConf *c )
{
  assert( c->m_client_connection == 0 );

  c->m_num_sessions = 0;
  c->m_client_connection = 0;
  c->m_lock = lock_tmpl;
  c->m_queue = 0;

  int i;
  for( i = 0; i < 256; i++ )
       c->m_outstanding[i] = 0;

  c->m_num_outstanding = 0;
  c->m_current_seq = 0;
  c->m_thread_state = eOpenHpiClientThreadStateSuspend;
  c->m_thread_exit = 0;

#ifdef dOpenHpiClientWithConfig
  char *openhpi_client_conf = getenv( "OPENHPICLIENT_CONF" );

  if ( openhpi_client_conf == 0 )
       openhpi_client_conf = OH_CLIENT_DEFAULT_CONF;

  ConfigRead( openhpi_client_conf, config_table, c );
#endif

  c->m_client_connection = ClientConnectionOpen( c->m_server, c->m_port );

  if ( !c->m_client_connection )
       return 0;

  // start reader thread
  int rv = pthread_create( &c->m_thread, 0, ReaderThread, c );

  if ( rv )
       return 0;

  // wait till real thread start
  while( c->m_thread_state == eOpenHpiClientThreadStateSuspend )
       // wait 100 ms
       usleep( 10000 );

  return 1;
}
Beispiel #4
0
static void pageList(void) {

	char buff[(LCDCOL - 3) * 2];
	char buff2[LCDCOL * 2];
	uint8_t currs;
	uint8_t fstart;

	dispStaticDraw(0);	//рисуем статику

	switch (fileData[0]) {
	case T_FOLDER:	//обычная папка..
		if ((brCrumbs[level][1] & LCDINVBITS)== ((fileData[2]) & LCDINVBITS))currs = (fileData[2]) & LCDBITS;//Это максимальное положение курсора на последней странице
		else
		currs = LCDBITS;
		fstart = fileData[1] + (brCrumbs[level][1] & LCDINVBITS);//номер файла для старта вывода.
		for (uint8_t i = 0; i <= currs; i++) {//пишем из массива для статических папок
			text_print(i + 1, 0, (PGM_P) pgm_read_word(&fileNames[i + fstart]),
					((brCrumbs[level][1] & LCDBITS) == (i)) * 0xFF);
		}
		break;

		case T_DFOLDER:		//динамическая папка
		if ((brCrumbs[level][1] & LCDINVBITS) == ((fileData[2]) & LCDINVBITS))
		currs = (fileData[2]) & LCDBITS;//Это максимальное положение курсора на последней странице
		else
		currs = LCDBITS;
		strncpy_P(buff, (char*) pgm_read_word(&(fileNames[fileData[1]])),
				sizeof(buff));//читаем общее название
		buff[sizeof(buff) - 1] = '\0';
		for (uint8_t i = 0; i <= currs; i++) {
			snprintf(buff2, sizeof(buff2), "%s %d", buff,
					(brCrumbs[level][1] & LCDINVBITS) + i);
			buff_print(i + 1, 0, buff2,
					((brCrumbs[level][1] & LCDBITS) == (i)) * 0xFF);
		}
		break;

		case T_SFOLDER:		//папка выбора параметра
		{
			uint8_t config_folder_view = pgm_read_byte(
					&fileStruct[FILEREW * fileData[1] + 1]);//читаем байт сдвига.
			uint8_t config_folder_data = ConfigRead(
					/*brCrumbs[level][0]+*/config_folder_view);//чтение значения выбора
			if (config_folder_data > fileData[2])
			config_folder_data = fileData[2];
			if (config_folder_view < 0)
			config_folder_view = 0;
			if (brCrumbs[level][2] == 0) {
				brCrumbs[level][1] = config_folder_data;//ставим курсор в выбранную позицию.
				brCrumbs[level][2] = 1;
			}
			if ((brCrumbs[level][1] & LCDINVBITS) == ((fileData[2]) & LCDINVBITS))
			currs = (fileData[2]) & LCDBITS;//Это максимальное положение курсора на последней странице
			else
			currs = LCDBITS;
			fstart = fileData[1] + (brCrumbs[level][1] & LCDINVBITS);//номер файла для старта вывода.
			for (uint8_t i = 0; i <= currs; i++) { //пишем из массива для статических папок
				text_print(i + 1, 0, (PGM_P) pgm_read_word(&fileNames[i + fstart]),
						((brCrumbs[level][1] & LCDBITS) == (i)) * 0xFF);
			}
		}
		break;

	}
	dispHead(header);
	// stringSelect();
}
Beispiel #5
0
      .m_default.m_int = 13
    },
    {
      .m_name = "string",
      .m_type = eConfigTypeString,
      .m_offset = dConfigOffset( cTest, m_string ),
      .m_default.m_string = "default string"
    },
    {
      .m_type = eConfigTypeUnknown
    }
  };

  cTest t;
  
  int rv = ConfigRead( "config_000.conf", table, &t );

  if ( rv )
       return 1;

  if ( t.m_bool != 0 )
       return 1;

  if ( t.m_int != 14 )
       return 1;

  if ( strcmp( t.m_string, "test string" ) )
       return 1;

  return 0;
}