/** * Decode a base16 encoding of `len' bytes of `data' into the buffer `dst'. * * @param dst destination buffer * @param size length of destination * @param data start of data to decode * @param len amount of encoded data to decode * * @return the amount of bytes decoded into the destination. */ size_t base16_decode(char *dst, size_t size, const void *data, size_t len) { const unsigned char *p = data; char *q = dst; size_t i; if G_UNLIKELY(0 == hex2int_inline('a')) misc_init(); /* Auto-initialization of hex2int_inline() */ len /= 2; len = 2 * (size < len ? size : len); i = 0; while (i < len) { int high, low; high = hex2int_inline(p[i++]); if (high < 0) return (size_t) -1; low = hex2int_inline(p[i++]); if (low < 0) return (size_t) -1; *q++ = (high << 4) | low; } return q - dst; }
int __init chr_dev_init(void) { if (devfs_register_chrdev(MEM_MAJOR,"mem",&memory_fops)) printk("unable to get major %d for memory devs\n", MEM_MAJOR); memory_devfs_register(); rand_initialize(); #ifdef CONFIG_I2C i2c_init_all(); #endif #if defined (CONFIG_FB) fbmem_init(); #endif #if defined (CONFIG_PROM_CONSOLE) prom_con_init(); #endif #if defined (CONFIG_MDA_CONSOLE) mda_console_init(); #endif tty_init(); #ifdef CONFIG_M68K_PRINTER lp_m68k_init(); #endif misc_init(); #if CONFIG_QIC02_TAPE qic02_tape_init(); #endif #ifdef CONFIG_FTAPE ftape_init(); #endif #if defined(CONFIG_S390_TAPE) && defined(CONFIG_S390_TAPE_CHAR) tapechar_init(); #endif return 0; }
int board_init() { gd->bd->bi_arch_number = MACH_TYPE_OPENPHONE; gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; ADI_init(); misc_init(); LDO_Init(); ADC_Init(); pin_init(); sprd_eic_init(); sprd_gpio_init(); sound_init(); init_ldo_sleep_gr(); //cp2_rfctl_init(); return 0; }
int board_init() { gd->bd->bi_arch_number = MACH_TYPE_OPENPHONE; gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; misc_init(); ADI_init(); LDO_Init(); ADC_Init(); pin_init(); sprd_eic_init(); sprd_gpio_init(); sound_init(); TDPllRefConfig(1); return 0; }
void monitor_init(HMODULE module_handle) { // Sends crashes to the process rather than showing error popup boxes etc. SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX); config_t cfg; config_read(&cfg); // Required to be initialized before any logging starts. mem_init(); // Initialize capstone without our custom allocator as it is // not available yet. hook_init(module_handle); pipe_init(cfg.pipe_name); native_init(); // Re-initialize capstone with our custom allocator which is now // accessible after native_init(). hook_init2(); misc_init(module_handle, cfg.shutdown_mutex); misc_set_hook_library(&monitor_hook); diffing_init(cfg.hashes_path, cfg.diffing_enable); log_init(cfg.logpipe); ignore_init(); sleep_init(cfg.first_process, cfg.force_sleep_skip, cfg.startup_time); unhook_init_detection(cfg.first_process); hide_module_from_peb(module_handle); symbol_init(module_handle); // Should be the last as some of the other initialization routines extract // the image size, EAT pointers, etc while the PE header is still intact. destroy_pe_header(module_handle); misc_set_monitor_options(cfg.track, cfg.mode); }
/* * TODO: 建立空闲任务 -- √ */ void os_init(void) { tcb_head_init(); rdy_list_init(); misc_init(); // 空闲任务 task_idle_init(); #if TASK_STAT_EN // 统计任务 task_stat_init(); #endif }
int main(int argc, char **argv){ misc_init(); argc_ = argc; argv_ = argv; init(menu()); for(uint_ i = 0;i < server_loop_code->code.size();i++){ try{ loop_entry_t *tmp = (loop_entry_t*)find_pointer(server_loop_code->code[i]); throw_if_nullptr(tmp); tmp->settings = 0; }catch(const std::logic_error &e){} } printf("Starting the main loop\n"); while(likely(check_signal(SIGINT) == false && check_signal(SIGKILL) == false && check_signal(SIGTERM) == false)){ loop_run(server_loop_code); once_per_second_update(); if(once_per_second){ server_time->update_timestamp(); // Should I make a new thread for this or is it good enough here w/ hangs? } } close(); last_thing_to_execute(); return 0; }
int main(int argc, char **argv) { int res = 1; int my_optind = 0; program_name = L"fish"; set_main_thread(); setup_fork_guards(); signal_unblock_all(); setlocale(LC_ALL, ""); fish_setlocale(); // struct stat tmp; // stat("----------FISH_HIT_MAIN----------", &tmp); if (!argv[0]) { static const char *dummy_argv[2] = {"fish", NULL}; argv = (char **)dummy_argv; //!OCLINT(parameter reassignment) argc = 1; //!OCLINT(parameter reassignment) } fish_cmd_opts_t opts; my_optind = fish_parse_opt(argc, argv, &opts); // No-exec is prohibited when in interactive mode. if (is_interactive_session && no_exec) { debug(1, _(L"Can not use the no-execute mode when running an interactive session")); no_exec = 0; } // Only save (and therefore restore) the fg process group if we are interactive. See issues // #197 and #1002. if (is_interactive_session) { save_term_foreground_process_group(); } const struct config_paths_t paths = determine_config_directory_paths(argv[0]); env_init(&paths); // Set features early in case other initialization depends on them. // Start with the ones set in the environment, then those set on the command line (so the // command line takes precedence). if (auto features_var = env_get(L"fish_features")) { for (const wcstring &s : features_var->as_list()) { mutable_fish_features().set_from_string(s); } } mutable_fish_features().set_from_string(opts.features); proc_init(); builtin_init(); misc_init(); reader_init(); parser_t &parser = parser_t::principal_parser(); const io_chain_t empty_ios; if (read_init(paths)) { // Stomp the exit status of any initialization commands (issue #635). proc_set_last_status(STATUS_CMD_OK); // Run post-config commands specified as arguments, if any. if (!opts.postconfig_cmds.empty()) { res = run_command_list(&opts.postconfig_cmds, empty_ios); } if (!opts.batch_cmds.empty()) { // Run the commands specified as arguments, if any. if (is_login) { // Do something nasty to support OpenSUSE assuming we're bash. This may modify cmds. fish_xdm_login_hack_hack_hack_hack(&opts.batch_cmds, argc - my_optind, argv + my_optind); } res = run_command_list(&opts.batch_cmds, empty_ios); reader_exit(0, 0); } else if (my_optind == argc) { // Implicitly interactive mode. res = reader_read(STDIN_FILENO, empty_ios); } else { char *file = *(argv + (my_optind++)); int fd = open(file, O_RDONLY); if (fd == -1) { perror(file); } else { // OK to not do this atomically since we cannot have gone multithreaded yet. set_cloexec(fd); wcstring_list_t list; for (char **ptr = argv + my_optind; *ptr; ptr++) { list.push_back(str2wcstring(*ptr)); } env_set(L"argv", ENV_DEFAULT, list); const wcstring rel_filename = str2wcstring(file); reader_push_current_filename(rel_filename.c_str()); res = reader_read(fd, empty_ios); if (res) { debug(1, _(L"Error while reading file %ls\n"), reader_current_filename() ? reader_current_filename() : _(L"Standard input")); } reader_pop_current_filename(); } } } int exit_status = res ? STATUS_CMD_UNKNOWN : proc_get_last_status(); // TODO: The generic process-exit event is useless and unused. // Remove this in future. proc_fire_event(L"PROCESS_EXIT", EVENT_EXIT, getpid(), exit_status); event_fire_generic(L"fish_exit"); restore_term_mode(); restore_term_foreground_process_group(); if (g_profiling_active) { parser.emit_profiling(s_profiling_output_filename); } history_save_all(); proc_destroy(); exit_without_destructors(exit_status); return EXIT_FAILURE; // above line should always exit }
int main(int argc, char **argv) { int res = 1; int my_optind = 0; program_name = L"fish"; set_main_thread(); setup_fork_guards(); setlocale(LC_ALL, ""); fish_setlocale(); // struct stat tmp; // stat("----------FISH_HIT_MAIN----------", &tmp); if (!argv[0]) { static const char *dummy_argv[2] = {"fish", NULL}; argv = (char **)dummy_argv; //!OCLINT(parameter reassignment) argc = 1; //!OCLINT(parameter reassignment) } std::vector<std::string> cmds; my_optind = fish_parse_opt(argc, argv, &cmds); // No-exec is prohibited when in interactive mode. if (is_interactive_session && no_exec) { debug(1, _(L"Can not use the no-execute mode when running an interactive session")); no_exec = 0; } // Only save (and therefore restore) the fg process group if we are interactive. See issues // #197 and #1002. if (is_interactive_session) { save_term_foreground_process_group(); } const struct config_paths_t paths = determine_config_directory_paths(argv[0]); proc_init(); event_init(); builtin_init(); function_init(); env_init(&paths); reader_init(); history_init(); // For set_color to support term256 in config.fish (issue #1022). update_fish_color_support(); misc_init(); parser_t &parser = parser_t::principal_parser(); const io_chain_t empty_ios; if (read_init(paths)) { // Stomp the exit status of any initialization commands (issue #635). proc_set_last_status(STATUS_BUILTIN_OK); // Run the commands specified as arguments, if any. if (!cmds.empty()) { // Do something nasty to support OpenSUSE assuming we're bash. This may modify cmds. if (is_login) { fish_xdm_login_hack_hack_hack_hack(&cmds, argc - my_optind, argv + my_optind); } for (size_t i = 0; i < cmds.size(); i++) { const wcstring cmd_wcs = str2wcstring(cmds.at(i)); res = parser.eval(cmd_wcs, empty_ios, TOP); } reader_exit(0, 0); } else if (my_optind == argc) { // Interactive mode check_running_fishd(); res = reader_read(STDIN_FILENO, empty_ios); } else { char *file = *(argv + (my_optind++)); int fd = open(file, O_RDONLY); if (fd == -1) { perror(file); } else { // OK to not do this atomically since we cannot have gone multithreaded yet. set_cloexec(fd); if (*(argv + my_optind)) { wcstring sb; char **ptr; int i; for (i = 1, ptr = argv + my_optind; *ptr; i++, ptr++) { if (i != 1) sb.append(ARRAY_SEP_STR); sb.append(str2wcstring(*ptr)); } env_set(L"argv", sb.c_str(), 0); } const wcstring rel_filename = str2wcstring(file); reader_push_current_filename(rel_filename.c_str()); res = reader_read(fd, empty_ios); if (res) { debug(1, _(L"Error while reading file %ls\n"), reader_current_filename() ? reader_current_filename() : _(L"Standard input")); } reader_pop_current_filename(); } } } int exit_status = res ? STATUS_UNKNOWN_COMMAND : proc_get_last_status(); proc_fire_event(L"PROCESS_EXIT", EVENT_EXIT, getpid(), exit_status); restore_term_mode(); restore_term_foreground_process_group(); if (g_profiling_active) { parser.emit_profiling(s_profiling_output_filename); } history_destroy(); proc_destroy(); builtin_destroy(); reader_destroy(); event_destroy(); exit_without_destructors(exit_status); return EXIT_FAILURE; // above line should always exit }
int main(int argc, char *argv[]) { char *server = NULL; char *play_file = NULL; char *volume = NULL; char *seek = NULL; int query = 0; int i, nr_cmds = 0; int context = 'p'; program_name = argv[0]; argv++; while (1) { int idx; char *arg; idx = get_option(&argv, options, &arg); if (idx < 0) break; flags[idx] = 1; switch ((enum flags)idx) { case FLAG_HELP: printf(usage, program_name, program_name, program_name); return 0; case FLAG_VERSION: printf("cmus " VERSION "\nCopyright 2004-2006 Timo Hirvonen" "\nCopyright 2008-2015 Various Authors\n"); return 0; case FLAG_SERVER: server = arg; break; case FLAG_PASSWD: passwd = arg; break; case FLAG_VOLUME: volume = arg; nr_cmds++; break; case FLAG_SEEK: seek = arg; nr_cmds++; break; case FLAG_QUERY: query = 1; nr_cmds++; break; case FLAG_FILE: play_file = arg; nr_cmds++; break; case FLAG_LIBRARY: context = 'l'; break; case FLAG_PLAYLIST: context = 'p'; break; case FLAG_QUEUE: context = 'q'; break; case FLAG_PLAY: case FLAG_PAUSE: case FLAG_STOP: case FLAG_NEXT: case FLAG_PREV: case FLAG_REPEAT: case FLAG_SHUFFLE: case FLAG_CLEAR: nr_cmds++; break; case FLAG_RAW: raw_args = 1; break; } } if (nr_cmds && raw_args) die("don't mix raw and cooked stuff\n"); misc_init(); if (server == NULL) server = xstrdup(cmus_socket_path); if (!remote_connect(server)) return 1; if (raw_args) { while (*argv) send_cmd("%s\n", *argv++); return 0; } if (nr_cmds == 0 && argv[0] == NULL) { char line[512]; while (fgets(line, sizeof(line), stdin)) write_line(line); return 0; } if (flags[FLAG_CLEAR]) send_cmd("clear -%c\n", context); for (i = 0; argv[i]; i++) { char *filename = file_url_absolute(argv[i]); send_cmd("add -%c %s\n", context, filename); free(filename); } if (flags[FLAG_REPEAT]) send_cmd("toggle repeat\n"); if (flags[FLAG_SHUFFLE]) send_cmd("toggle shuffle\n"); if (flags[FLAG_STOP]) send_cmd("player-stop\n"); if (flags[FLAG_NEXT]) send_cmd("player-next\n"); if (flags[FLAG_PREV]) send_cmd("player-prev\n"); if (flags[FLAG_PLAY]) send_cmd("player-play\n"); if (flags[FLAG_PAUSE]) send_cmd("player-pause\n"); if (flags[FLAG_FILE]) send_cmd("player-play %s\n", file_url_absolute(play_file)); if (volume) send_cmd("vol %s\n", volume); if (seek) send_cmd("seek %s\n", seek); if (query) send_cmd("status\n"); return 0; }