DisplayDriverFactory::DisplayDriverFactory ()
    : m_impl (new Impl)
{
    add_driver ("stdout", stdout_driver_new);
#if defined(HAVE_SDL)
    add_driver ("sdl", sdl_driver_new);
    add_driver ("stdout_sdl", stdout_sdl_driver_new);
#endif
}
示例#2
0
struct iodriver *disksim_iodriver_loadparams(struct lp_block *b) {
  iodriver *result;

  if (disksim->iodriver_info == NULL) {
    disksim->iodriver_info = malloc (sizeof(iodriver_info_t));
    bzero ((char *)disksim->iodriver_info, sizeof(iodriver_info_t));
  }
  overallqueue = ioqueue_createdefaultqueue ();
   
  result = malloc(sizeof(iodriver));
  bzero(result, sizeof(iodriver));

  add_driver(result);



  result->name = strdup(b->name);

  //#include "modules/disksim_iodriver_param.c"
  lp_loadparams(result, b, &disksim_iodriver_mod);

  result->scale = 0.0;


  return result;
}
示例#3
0
void Line::set_num_of_vehicles( int n_vehicles )
{
	if (n_vehicles<0)
	{
		n_vehicles = 0;
	}
	int count = n_vehicles-num_of_vehicles();
	if (count > 0)
	{
		while (count-- > 0)
		{
			add_driver(
				*GenerateDriver(
				&Driver(Vehicle()),
				my_road_,index()));
		}
		reorder();
	} 
	else
	{
		while (count++ < 0)
		{
			drivers_->pop_back();
		}
		reorder();
	}
	
}
示例#4
0
static int add_drivers()
{
	int size;
	int n = 0;

	/* initialize hash table */
	if (getcfg(cfg_file, "device_driver_table_size", &size, 
				GETCFG_INT32) != 0)
		size = DRIVER_TABLE_SIZE;
	driver_table = hash_init(size, hash_func_driver);
	if (driver_table == NULL)
		return -1;

	/* load device drivers into hash table */
	char path[PATH_MAX], prefix[32];
	getcfg(cfg_file, "device_lib_path", path, GETCFG_STR);
	getcfg(cfg_file, "device_lib_name_prefix", prefix, GETCFG_STR);

	char *names = lookup_so(path, prefix);
	if (names == NULL) {
		syslog(LOG_ERR, "nono driver found");
		return -1;
	}

	buf_t *pb = openbuf(names, strlen(names));
	if (pb == NULL) {
		free(names);
		return -1;
	}

	char *line;
	while ((line = readbuf(pb, "\n")) != NULL) {
		if (add_driver(line) == 0)
			n++;
	}
	closebuf(pb);
	free(names);

	if (n == 0) {
		syslog(LOG_ERR, "none driver loaded");
		return -1;
	}

	return 0;
}
示例#5
0
/* load the specified file, and create the driver struct */
SDL_bool dr_load_driver(char *filename) {
    FILE *f;
    LIST *i;


    f=fopen(filename,"r");
    if (!f) {
	printf("Couldn't find %s\n",filename);
	return SDL_FALSE;
    }
    while(goto_next_driver(f)==SDL_TRUE) {
	add_driver(f);
    }

    //list_foreach(driver_list,print_driver);

    fclose(f);
    return SDL_TRUE;
}
示例#6
0
struct iodriver *disksim_iodriver_loadparams(struct lp_block *b) {
  iodriver *result;

  if (disksim->iodriver_info == NULL) {
    disksim->iodriver_info = (struct iodriver_info *)calloc (1, sizeof(iodriver_info_t));
  }
  OVERALLQUEUE = ioqueue_createdefaultqueue ();
   
  result = (iodriver *)calloc(1, sizeof(iodriver));

  add_driver(result);



  result->name = strdup(b->name);

  //#include "modules/disksim_iodriver_param.c"
  lp_loadparams(result, b, &disksim_iodriver_mod);

  result->scale = 0.0;


  return result;
}
示例#7
0
void Line::time_for_add_driver() {
	add_driver(*GenerateDriver(&Driver(Vehicle()),my_road_,index_,REAL_METERS));
	reorder();
	processed_count_=0;
}
示例#8
0
文件: main.c 项目: bernhardbreuss/OS
void main(void) {
	/* logger_init() */
	/*uart_get(3, &uart3);
	uart_protocol_format_t protocol;
	protocol.baudrate = 0x001A; //115.2Kbps		138;	//9.6 Kbps
	protocol.stopbit = 0x0;		//1 stop bit
	protocol.datalen = 0x3;		//length 8
	protocol.use_parity = 0x0;
	uart_init(&uart3, 0x00, protocol);
	//irq_add_handler(UART3_INTCPS_MAPPING_ID, &uart3_irq_handler);

	logger_debug("\r\n\r\nSystem initialize ...");
	logger_logmode();*/

	ram_manager_init();
	mmu_table_t* page_table = mmu_init();

	/* init led stuff */
	turnoff_rgb();

	process_manager_init(page_table);

	binaries[0] = osx_init(&BINARY_driver_manager, &mem_elf_read);
	driver_manager = process_manager_start_process_bybinary(binaries[0], PROCESS_PRIORITY_HIGH, PROCESS_DRIVER_MANAGER_NAME);

	/* add drivers to the driver manager */
	binaries[1] = osx_init(&BINARY_gpio, &mem_elf_read);
//	add_driver(binaries[1], "GPIO", GPIO5);

	/* add drivers to the driver manager */
	binaries[4] = osx_init(&BINARY_uart, &mem_elf_read);
//	add_driver(binaries[4], "UART 21", UART1);
	add_driver(binaries[4], "UART 22", UART2);
//	add_driver(binaries[4], "UART 23", UART3);

	binaries[2] = osx_init(&BINARY_led0_user, &mem_elf_read);

	//process_manager_start_process_bybinary(binaries[2], PROCESS_PRIORITY_HIGH, "LED(fast) 21 100 100");
	//process_manager_start_process_bybinary(binaries[2], PROCESS_PRIORITY_HIGH, "LED(slow) 22 1000");

	dmx_uart_set_send_mode(); //TODO: remove

	//binaries[3] = osx_init(&BINARY_uart2_user, &mem_elf_read);
	//process_manager_start_process_bybinary(binaries[3], PROCESS_PRIORITY_HIGH, "UART2_user_proc");

	//binaries[3] = osx_init(&BINARY_dmx, &mem_elf_read);
	// TODO: add_driver(binaries[3], "DMX", DMX);
	//process_manager_start_process_bybinary(binaries[3], PROCESS_PRIORITY_HIGH, "DMX");

	binaries[3] = osx_init(&BINARY_tty, &mem_elf_read);
	process_manager_start_process_bybinary(binaries[3], PROCESS_PRIORITY_HIGH, "tty 23");

	binaries[5] = osx_init(&BINARY_cpu_info, &mem_elf_read);
	process_manager_start_process_bybinary(binaries[5], PROCESS_PRIORITY_HIGH, "CPU_INFO");

	binaries[6] = osx_init(&BINARY_dmx, &mem_elf_read);
	add_driver(binaries[6], "DMX 5", DMX);

//	binaries[7] = osx_init(&BINARY_dmx_user, &mem_elf_read);
//	process_manager_start_process_bybinary(binaries[7], PROCESS_PRIORITY_HIGH, "DMX_User_app 5");

	binaries[8] = osx_init(&BINARY_dmx_control, &mem_elf_read);
	process_manager_start_process_bybinary(binaries[8], PROCESS_PRIORITY_HIGH, "DMX_Control 5");

	logger_debug("System started ...");

	system_main_loop();
}