PROCESS_THREAD(flexibity_buzzer, ev, data) { PROCESS_BEGIN(); SENSORS_ACTIVATE(button_sensor); SENSORS_ACTIVATE(battery_sensor); /* PWM for buzzer */ pwm_init_stopped(TMR3, 1500, 10000); #ifdef WITH_COAP PRINTF("COAP Server\n"); #else PRINTF("HTTP Server\n"); #endif rest_init(); #if DEBUG rest_activate_resource(&resource_mem); #endif rest_activate_resource(&resource_buzzer); rest_activate_resource(&resource_pwr); rest_activate_resource(&resource_led); rest_activate_resource(&resource_button); rest_activate_resource(&resource_id); rest_activate_resource(&resource_discover); PROCESS_END(); }
/* * Do any per-module initialization that is separate to each * configured instance of the module. e.g. set up connections * to external databases, read configuration files, set up * dictionary entries, etc. * * If configuration information is given in the config section * that must be referenced in later calls, store a handle to it * in *instance otherwise put a null pointer there. */ static int mod_instantiate(CONF_SECTION *conf, void *instance) { rlm_rest_t *inst = instance; /* * Parse sub-section configs. */ if ( (parse_sub_section(conf, &inst->authorize, MOD_AUTHORIZE) < 0) || (parse_sub_section(conf, &inst->authenticate, MOD_AUTHENTICATE) < 0) || (parse_sub_section(conf, &inst->accounting, MOD_ACCOUNTING) < 0) || /* @todo add behaviour for checksimul */ /* (parse_sub_section(conf, &inst->checksimul, MOD_SESSION) < 0) || */ (parse_sub_section(conf, &inst->post_auth, MOD_POST_AUTH) < 0)) { return -1; } /* * Initialise REST libraries. */ if (rest_init(inst) < 0) { return -1; } inst->connect_timeout = ((inst->connect_timeout_tv.tv_usec * 1000) + (inst->connect_timeout_tv.tv_sec / 1000)); inst->pool = fr_connection_pool_module_init(conf, inst, mod_conn_create, mod_conn_alive, NULL); if (!inst->pool) return -1; return 0; }
PROCESS_THREAD(rest_server_example, ev, data) { PROCESS_BEGIN(); #ifdef WITH_COAP PRINTF("COAP Server\n"); #else PRINTF("HTTP Server\n"); #endif rest_init(); #if defined (PLATFORM_HAS_LIGHT) SENSORS_ACTIVATE(light_sensor); rest_activate_resource(&resource_light); #endif #if defined (PLATFORM_HAS_LEDS) rest_activate_resource(&resource_led); rest_activate_resource(&resource_toggle); #endif /*defined (PLATFORM_HAS_LEDS)*/ rest_activate_resource(&resource_helloworld); rest_activate_resource(&resource_discover); PROCESS_END(); }
/*The Main Program*/ int main(int argc, char** argv) { /* defines the tray_icon, as well as init gtk*/ g_set_application_name(PACKAGE_NAME); parse_command_line_options(argc,argv); register_thread("Main Thread"); if (!queue_init()) print("queue_init FAILED",NULL,ERROR); print("Glade File",glade_file,DEBUG); g_thread_init(NULL); gtk_init(NULL,NULL); gtk_init(&argc, &argv); Hosts_lock = g_mutex_new(); Userpath_lock = g_mutex_new(); g_mutex_lock(Userpath_lock); Userpath = g_strdup(getenv("HOME")); g_mutex_unlock(Userpath_lock); settings_init(); rest_init(); if (!xml_init()) print("xml_init FAILED",NULL,ERROR); init_hostname(); /*sets the tray icon from the create_tray_icon*/ create_tray_icon(); playing_info_music pInfo = {"Artist","Album","Song",0,0,0}; /* declares the playing info struct, and print if, if _DEBUG is definded at the top of msdaemon.c*/ /*inits the dbus and get the first set of info*/ dbus_init(); pInfo = dbus_get_playing_info_music(); print_playing_info_music(pInfo); get_active_devices(NULL); update_song_info(); GError *error; if ( (network_thread = g_thread_create((GThreadFunc)rest_thread_handler, NULL, FALSE, &error)) == NULL){ print("Error Creating Network Thread",error->message,ERROR); g_error_free(error); } if ( (file_thread = g_thread_create((GThreadFunc)file_thread_handler, NULL, FALSE, &error)) == NULL){ print("Error Creating Network Thread",error->message,ERROR); g_error_free(error); } if ( (gui_thread = g_thread_create((GThreadFunc)gui_thread_handler, NULL, FALSE, &error)) == NULL){ print("Error Creating Network Thread",error->message,ERROR); g_error_free(error); } g_timeout_add (1000,(GSourceFunc) get_next_command,NULL); g_timeout_add (300000,(GSourceFunc) update_active_devices,NULL); init_status_window(FALSE,glade_file); start_tray(); g_free(Userpath); deauthenticate(); return 0; }
int start() { jparse_init(); rest_init(); http_start(); device_init(); #ifdef _DEBUG billing_init(); #endif #ifndef _MSC_VER const char *initrc = initSearch(search_file.c_str()); if (initrc && initrc[0]) { api_log_printf("%s\r\n", initrc); searcher = NULL; } else { searcher = makeSearcher(); } #endif api_listen_tcp(api_tag, host.c_str(), port.c_str(), &handlers); size_t num_cores; #ifdef WIN32 SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); num_cores = sysinfo.dwNumberOfProcessors; #elif MACOS int nm[2]; size_t len = 4; uint32_t count; nm[0] = CTL_HW; nm[1] = HW_AVAILCPU; sysctl(nm, 2, &count, &len, NULL, 0); if(count < 1) { nm[1] = HW_NCPU; sysctl(nm, 2, &count, &len, NULL, 0); if(count < 1) { count = 1; } } num_cores = count; #else num_cores = sysconf(_SC_NPROCESSORS_ONLN); #endif CPUINFO *cpu_info = cpu_get_info(); api_log_printf("[HTTP] CPU INFO: Brand name: %s, cores count: %u, Hyper threads: %s\r\n", cpu_info->vendor.c_str(), num_cores, (cpu_info->hyper_threads) ? "yes" : "no"); thread_pool_init(num_cores - 1); api_log_printf("[HTTP] Started\r\n"); return 0; }
PROCESS_THREAD(sensorlogging, ev, data) { PROCESS_BEGIN(); PROCESS_PAUSE(); set_node_addresses(); print_node_addresses(); rest_init(); ptemperature_initialize(); PROCESS_END(); }
void TaskEntry(void) { SysTaskCreate(keventd, NULL, "keventd", 5, NULL, 0 ); #ifdef FS rest_init(); #endif usrAppInit(); }
PROCESS_THREAD(z1_test_device, ev, data) { PROCESS_BEGIN(); PROCESS_PAUSE(); //Network Initialization Routines set_node_addresses(); PRINTF("Started Z1 main\n"); print_node_addresses(); //Program Initialization Routines rest_init(); ptemperature_initialize(); PROCESS_END(); }
PROCESS_THREAD(rest_example, ev, data) { PROCESS_BEGIN(); /*start the http server*/ process_start(&httpdProcess, NULL); /*Init the restful api*/ rest_init(); /*Resources should be activated*/ rest_activate_resource( &resource_helloworld ); rest_activate_resource( &resource_service ); rest_activate_resource( &resource_ledControl ); rest_activate_resource( &resource_configure ); PROCESS_END(); }
/* * Do any per-module initialization that is separate to each * configured instance of the module. e.g. set up connections * to external databases, read configuration files, set up * dictionary entries, etc. * * If configuration information is given in the config section * that must be referenced in later calls, store a handle to it * in *instance otherwise put a null pointer there. */ static int mod_instantiate(CONF_SECTION *conf, void *instance) { rlm_rest_t *inst = instance; char const *xlat_name; xlat_name = cf_section_name2(conf); if (!xlat_name) { xlat_name = cf_section_name1(conf); } inst->xlat_name = xlat_name; /* * Register the rest xlat function */ xlat_register(inst->xlat_name, rest_xlat, rest_uri_escape, inst); /* * Parse sub-section configs. */ if ( (parse_sub_section(conf, &inst->authorize, RLM_COMPONENT_AUTZ) < 0) || (parse_sub_section(conf, &inst->authenticate, RLM_COMPONENT_AUTH) < 0) || (parse_sub_section(conf, &inst->accounting, RLM_COMPONENT_ACCT) < 0) || /* @todo add behaviour for checksimul */ /* (parse_sub_section(conf, &inst->checksimul, RLM_COMPONENT_SESS) < 0) || */ (parse_sub_section(conf, &inst->post_auth, RLM_COMPONENT_POST_AUTH) < 0)) { return -1; } /* * Initialise REST libraries. */ if (rest_init(inst) < 0) { return -1; } inst->conn_pool = fr_connection_pool_module_init(conf, inst, mod_conn_create, mod_conn_alive, NULL); if (!inst->conn_pool) { return -1; } return 0; }
/* * Do any per-module initialization that is separate to each * configured instance of the module. e.g. set up connections * to external databases, read configuration files, set up * dictionary entries, etc. * * If configuration information is given in the config section * that must be referenced in later calls, store a handle to it * in *instance otherwise put a null pointer there. */ static int mod_instantiate(CONF_SECTION *conf, void *instance) { rlm_rest_t *inst = instance; char const *xlat_name; xlat_name = cf_section_name2(conf); if (!xlat_name) { xlat_name = cf_section_name1(conf); } inst->xlat_name = xlat_name; /* * Parse sub-section configs. */ if ( (parse_sub_section(conf, &inst->authorize, RLM_COMPONENT_AUTZ) < 0) || (parse_sub_section(conf, &inst->authenticate, RLM_COMPONENT_AUTH) < 0) || (parse_sub_section(conf, &inst->accounting, RLM_COMPONENT_ACCT) < 0) || (parse_sub_section(conf, &inst->checksimul, RLM_COMPONENT_SESS) < 0) || (parse_sub_section(conf, &inst->postauth, RLM_COMPONENT_POST_AUTH) < 0)) { return -1; } /* * Initialise REST libraries. */ if (rest_init(inst) < 0) { return -1; } inst->conn_pool = fr_connection_pool_init(conf, inst, mod_conn_create, mod_conn_alive, mod_conn_delete, NULL); if (!inst->conn_pool) { return -1; } return 0; }
/** * Initialises the library * */ void iotkit_init() { int store_path_length = 0; char *config_file_path = NULL; char *config_dir_path = NULL; if(isFileExists(CONFIGURATION_FILE_NAME)) { store_path_length = strlen(CURRENT_DIR) + strlen(CONFIGURATION_FILE_NAME) + 2; config_file_path = (char *)malloc(sizeof(char) * store_path_length); strcpy(config_file_path, CURRENT_DIR); } else { store_path_length = strlen(DEFAULT_CONFIG_DIR) + strlen(CONFIGURATION_FILE_NAME) + 2; config_file_path = (char *)malloc(sizeof(char) * store_path_length); strcpy(config_file_path, DEFAULT_CONFIG_DIR); } strcat(config_file_path, CONFIGURATION_FILE_NAME); parseConfiguration(config_file_path); parseAuthorizationToken(); parseDeviceToken(); parseComponentsList(); if(!isInitialized) { CURLcode code = rest_init(configurations.isSecure); if(code) { fprintf(stderr, "Unable to initialize CURL %d\n", code); } else { isInitialized = true; #if DEBUG puts("Library initialized successfully"); #endif } } else { #if DEBUG puts("Library is already initialized and doesn't need to be re-initialized"); #endif } }
/********************************************************************* * @brief Function used to initialize various system components * Each component is initialized using a proper API * * @param[in] NA * * @retval NA * * @note NA * * @end *********************************************************************/ void system_init() { /* Initialize platform */ VENDOR_PLATFORM_INIT(); /*Initialize logging, Not handling error as openlog() does not return anything*/ logging_init(); /*Initialize Module manager*/ if (modulemgr_init() != BVIEW_STATUS_SUCCESS) { LOG_POST (BVIEW_LOG_CRITICAL, "Failed to initialize Module Manager\r\n"); } /*Initialize south-bound plugin*/ if (sb_redirector_init() != BVIEW_STATUS_SUCCESS) { LOG_POST (BVIEW_LOG_CRITICAL, "Failed to initialize south-bound plugin\r\n"); } /*Initialize south-bound BST plugin*/ if (sbplugin_common_init() != BVIEW_STATUS_SUCCESS) { LOG_POST (BVIEW_LOG_CRITICAL, "Failed to initialize south-bound BST plugin r\n"); } /*Initialize BST application*/ if (bst_main() != BVIEW_STATUS_SUCCESS) { LOG_POST (BVIEW_LOG_CRITICAL, "Failed to initialize BST application\r\n"); } /*Initialize REST*/ if (rest_init() != BVIEW_STATUS_SUCCESS) { LOG_POST (BVIEW_LOG_CRITICAL, "Failed to initialize REST \n All components must be De-initialized\r\n"); system_deinit(); } }
asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_param __start___param[], __stop___param[]; smp_setup_processor_id(); /* * Need to run as early as possible, to initialize the * lockdep hash: */ unwind_init(); lockdep_init(); local_irq_disable(); early_boot_irqs_off(); early_init_irq_lock_class(); /* * Interrupts are still disabled. Do necessary setups, then * enable them */ lock_kernel(); boot_cpu_init(); page_address_init(); printk(KERN_NOTICE); printk(linux_banner); setup_arch(&command_line); setup_per_cpu_areas(); smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */ /* * Set up the scheduler prior starting any interrupts (such as the * timer interrupt). Full topology setup happens at smp_init() * time - but meanwhile we still have a functioning scheduler. */ sched_init(); /* * Disable preemption - early bootup scheduling is extremely * fragile until we cpu_idle() for the first time. */ preempt_disable(); build_all_zonelists(); page_alloc_init(); printk(KERN_NOTICE "Kernel command line: %s\n", saved_command_line); parse_early_param(); parse_args("Booting kernel", command_line, __start___param, __stop___param - __start___param, &unknown_bootoption); sort_main_extable(); trap_init(); rcu_init(); init_IRQ(); pidhash_init(); init_timers(); hrtimers_init(); softirq_init(); timekeeping_init(); time_init(); profile_init(); if (!irqs_disabled()) printk("start_kernel(): bug: interrupts were enabled early\n"); early_boot_irqs_on(); local_irq_enable(); /* * HACK ALERT! This is early. We're enabling the console before * we've done PCI setups etc, and console_init() must be aware of * this. But we do want output early, in case something goes wrong. */ console_init(); if (panic_later) panic(panic_later, panic_param); lockdep_info(); /* * Need to run this when irqs are enabled, because it wants * to self-test [hard/soft]-irqs on/off lock inversion bugs * too: */ locking_selftest(); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && initrd_start < min_low_pfn << PAGE_SHIFT) { printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); initrd_start = 0; } #endif vfs_caches_init_early(); cpuset_init_early(); mem_init(); kmem_cache_init(); setup_per_cpu_pageset(); numa_policy_init(); if (late_time_init) late_time_init(); calibrate_delay(); pidmap_init(); pgtable_cache_init(); prio_tree_init(); anon_vma_init(); #ifdef CONFIG_X86 if (efi_enabled) efi_enter_virtual_mode(); #endif fork_init(num_physpages); proc_caches_init(); buffer_init(); unnamed_dev_init(); key_init(); security_init(); vfs_caches_init(num_physpages); radix_tree_init(); signals_init(); /* rootfs populating might need page-writeback */ page_writeback_init(); #ifdef CONFIG_PROC_FS proc_root_init(); #endif cpuset_init(); taskstats_init_early(); delayacct_init(); check_bugs(); acpi_early_init(); /* before LAPIC and SMP init */ /* Do the rest non-__init'ed, we're now alive */ rest_init(); }
asmlinkage void __init start_kernel(void) { char * command_line; extern char saved_command_line[]; /* * Interrupts are still disabled. Do necessary setups, then * enable them */ lock_kernel(); printk(linux_banner); setup_arch(&command_line); printk("Kernel command line: %s\n", saved_command_line); parse_options(command_line); trap_init(); init_IRQ(); sched_init(); softirq_init(); time_init(); /* * HACK ALERT! This is early. We're enabling the console before * we've done PCI setups etc, and console_init() must be aware of * this. But we do want output early, in case something goes wrong. */ console_init(); #ifdef CONFIG_MODULES init_modules(); #endif if (prof_shift) { unsigned int size; /* only text is profiled */ prof_len = (unsigned long) &_etext - (unsigned long) &_stext; prof_len >>= prof_shift; size = prof_len * sizeof(unsigned int) + PAGE_SIZE-1; prof_buffer = (unsigned int *) alloc_bootmem(size); } kmem_cache_init(); sti(); calibrate_delay(); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && initrd_start < min_low_pfn << PAGE_SHIFT) { printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); initrd_start = 0; } #endif mem_init(); kmem_cache_sizes_init(); pgtable_cache_init(); /* * For architectures that have highmem, num_mappedpages represents * the amount of memory the kernel can use. For other architectures * it's the same as the total pages. We need both numbers because * some subsystems need to initialize based on how much memory the * kernel can use. */ if (num_mappedpages == 0) num_mappedpages = num_physpages; fork_init(num_mappedpages); proc_caches_init(); vfs_caches_init(num_physpages); buffer_init(num_physpages); page_cache_init(num_physpages); #if defined(CONFIG_ARCH_S390) ccwcache_init(); #endif signals_init(); #ifdef CONFIG_PROC_FS proc_root_init(); #endif check_bugs(); printk("POSIX conformance testing by UNIFIX\n"); /* * We count on the initial thread going ok * Like idlers init is an unlocked kernel thread, which will * make syscalls (and thus be locked). */ smp_init(); #if defined(CONFIG_SYSVIPC) ipc_init(); #endif rest_init(); }
asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_param __start___param[], __stop___param[]; #ifdef CONFIG_RTAI_RTSPMM unsigned int indice_part; /* Size of the needed memory block by the configuration */ unsigned long rt_mem_block_size = 0; #endif /* * Interrupts are still disabled. Do necessary setups, then * enable them */ lock_kernel(); page_address_init(); printk(linux_banner); setup_arch(&command_line); setup_per_cpu_areas(); /* * Mark the boot cpu "online" so that it can call console drivers in * printk() and can access its per-cpu storage. */ smp_prepare_boot_cpu(); /* * Set up the scheduler prior starting any interrupts (such as the * timer interrupt). Full topology setup happens at smp_init() * time - but meanwhile we still have a functioning scheduler. */ sched_init(); /* * Disable preemption - early bootup scheduling is extremely * fragile until we cpu_idle() for the first time. */ preempt_disable(); build_all_zonelists(); page_alloc_init(); early_init_hardirqs(); printk("Kernel command line: %s\n", saved_command_line); parse_early_param(); parse_args("Booting kernel", command_line, __start___param, __stop___param - __start___param, &unknown_bootoption); sort_main_extable(); trap_init(); rcu_init(); init_IRQ(); pidhash_init(); init_timers(); softirq_init(); time_init(); /* * HACK ALERT! This is early. We're enabling the console before * we've done PCI setups etc, and console_init() must be aware of * this. But we do want output early, in case something goes wrong. */ console_init(); if (panic_later) panic(panic_later, panic_param); #ifdef CONFIG_RTAI_RTSPMM /* Allocate a big and continuous memory block for the module SPMM included in the RTAI functionalities */ printk("--- Memory Allocation for the module rt_spmm ---\n"); /* WARNING We need to add some space for the structures vrtxptext and vrtxpt and the partitions bitmap that the module rt_spmm uses to handle the blocks in each partition */ /* for each defined partitions */ for(indice_part = 0; indice_part < RT_MAX_PART_NUM; indice_part ++) { if ((rt_partitions_table[indice_part].block_size != 0) && (rt_partitions_table[indice_part].num_of_blocks != 0)) { rt_partitions_table[indice_part].part_size = (rt_partitions_table[indice_part].block_size + XN_NBBY) *rt_partitions_table[indice_part].num_of_blocks + + sizeof(vrtxptext_t)+sizeof(vrtxpt_t); rt_mem_block_size += rt_partitions_table[indice_part].part_size; } } #ifdef CONFIG_RTAI_PART_DMA printk("Allocate memory in the low part of memory\n"); rt_mem_block_ptr=(void*)alloc_bootmem_low(rt_mem_block_size + PAGE_SIZE-1); #else printk("Allocate memory in the standard part of memory\n"); rt_mem_block_ptr=(void*)alloc_bootmem(rt_mem_block_size + PAGE_SIZE-1); #endif /* CONFIG_PART_DMA */ printk("Needed Memory Size : %lu\n", rt_mem_block_size); printk("Allocated Memory Size : %lu\n", rt_mem_block_size + PAGE_SIZE-1); printk("Memory block address : 0x%x\n", (unsigned int)rt_mem_block_ptr); printk("-----------------------------------------------\n"); #endif /* CONFIG_RTAI_RTSPMM */ profile_init(); local_irq_enable(); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && initrd_start < min_low_pfn << PAGE_SHIFT) { printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); initrd_start = 0; } #endif vfs_caches_init_early(); mem_init(); kmem_cache_init(); numa_policy_init(); if (late_time_init) late_time_init(); calibrate_delay(); pidmap_init(); pgtable_cache_init(); prio_tree_init(); anon_vma_init(); #ifdef CONFIG_X86 if (efi_enabled) efi_enter_virtual_mode(); #endif fork_init(num_physpages); proc_caches_init(); buffer_init(); unnamed_dev_init(); security_init(); vfs_caches_init(num_physpages); #ifdef CONFIG_MOT_FEAT_DEVICE_TREE mothwcfg_init(); #endif /* CONFIG_MOT_FEAT_DEVICE_TREE */ radix_tree_init(); signals_init(); /* rootfs populating might need page-writeback */ page_writeback_init(); #ifdef CONFIG_PROC_FS proc_root_init(); #endif check_bugs(); acpi_early_init(); /* before LAPIC and SMP init */ /* Do the rest non-__init'ed, we're now alive */ rest_init(); }
asmlinkage void __init start_kernel(void) { char * command_line; extern char saved_command_line[]; extern struct kernel_param __start___param[], __stop___param[]; #ifdef TARGET_OS2 LX_set_sysstate(LXSYSSTATE_KERNEL_BOOT_STARTED,0); #endif /* * Interrupts are still disabled. Do necessary setups, then * enable them */ lock_kernel(); page_address_init(); printk(linux_banner); setup_arch(&command_line); setup_per_cpu_areas(); /* * Mark the boot cpu "online" so that it can call console drivers in * printk() and can access its per-cpu storage. */ smp_prepare_boot_cpu(); build_all_zonelists(); page_alloc_init(); printk("Kernel command line: %s\n", saved_command_line); #ifdef TARGET_OS2 parse_args("Booting kernel", command_line, __start___param, 0, &unknown_bootoption); #else parse_args("Booting kernel", command_line, __start___param, __stop___param - __start___param, &unknown_bootoption); #endif sort_main_extable(); trap_init(); rcu_init(); init_IRQ(); pidhash_init(); sched_init(); softirq_init(); time_init(); /* * HACK ALERT! This is early. We're enabling the console before * we've done PCI setups etc, and console_init() must be aware of * this. But we do want output early, in case something goes wrong. */ console_init(); if (panic_later) panic(panic_later, panic_param); profile_init(); local_irq_enable(); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && initrd_start < min_low_pfn << PAGE_SHIFT) { printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); initrd_start = 0; } #endif mem_init(); kmem_cache_init(); if (late_time_init) late_time_init(); calibrate_delay(); pidmap_init(); pgtable_cache_init(); pte_chain_init(); #ifdef CONFIG_X86 if (efi_enabled) efi_enter_virtual_mode(); #endif fork_init(num_physpages); proc_caches_init(); buffer_init(); unnamed_dev_init(); security_scaffolding_startup(); vfs_caches_init(num_physpages); radix_tree_init(); signals_init(); /* rootfs populating might need page-writeback */ page_writeback_init(); #ifdef CONFIG_PROC_FS proc_root_init(); #endif check_bugs(); printk("POSIX conformance testing by UNIFIX\n"); /* * We count on the initial thread going ok * Like idlers init is an unlocked kernel thread, which will * make syscalls (and thus be locked). */ init_idle(current, smp_processor_id()); /* Do the rest non-__init'ed, we're now alive */ rest_init(); }
asmlinkage void __init start_kernel(void) { char * command_line; extern struct kernel_param __start___param[], __stop___param[]; smp_setup_processor_id(); /* * Need to run as early as possible, to initialize the * lockdep hash: */ lockdep_init(); debug_objects_early_init(); /* * Set up the the initial canary ASAP: */ boot_init_stack_canary(); cgroup_init_early(); local_irq_disable(); early_boot_irqs_off(); early_init_irq_lock_class(); /* * Interrupts are still disabled. Do necessary setups, then * enable them */ lock_kernel(); tick_init(); boot_cpu_init(); page_address_init(); printk(KERN_NOTICE "%s", linux_banner); setup_arch(&command_line); mm_init_owner(&init_mm, &init_task); setup_command_line(command_line); setup_nr_cpu_ids(); setup_per_cpu_areas(); smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */ build_all_zonelists(NULL); page_alloc_init(); printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line); //[email protected] 2011.11.14 begin //support lcd compatible //reviewed by [email protected] #if defined(CONFIG_LCD_DRV_ALL) char *p = strstr(boot_command_line, "lcd="); if (p) { lcd_drv_index = p[4] - 'A'; printk("lcd index = %d", lcd_drv_index); } #endif //[email protected] 2011.11.14 end parse_early_param(); parse_args("Booting kernel", static_command_line, __start___param, __stop___param - __start___param, &unknown_bootoption); /* * These use large bootmem allocations and must precede * kmem_cache_init() */ pidhash_init(); vfs_caches_init_early(); sort_main_extable(); trap_init(); mm_init(); /* * Set up the scheduler prior starting any interrupts (such as the * timer interrupt). Full topology setup happens at smp_init() * time - but meanwhile we still have a functioning scheduler. */ sched_init(); /* * Disable preemption - early bootup scheduling is extremely * fragile until we cpu_idle() for the first time. */ preempt_disable(); if (!irqs_disabled()) { printk(KERN_WARNING "start_kernel(): bug: interrupts were " "enabled *very* early, fixing it\n"); local_irq_disable(); } rcu_init(); radix_tree_init(); /* init some links before init_ISA_irqs() */ early_irq_init(); init_IRQ(); prio_tree_init(); init_timers(); hrtimers_init(); softirq_init(); timekeeping_init(); time_init(); profile_init(); if (!irqs_disabled()) printk(KERN_CRIT "start_kernel(): bug: interrupts were " "enabled early\n"); early_boot_irqs_on(); local_irq_enable(); /* Interrupts are enabled now so all GFP allocations are safe. */ gfp_allowed_mask = __GFP_BITS_MASK; kmem_cache_init_late(); /* * HACK ALERT! This is early. We're enabling the console before * we've done PCI setups etc, and console_init() must be aware of * this. But we do want output early, in case something goes wrong. */ console_init(); if (panic_later) panic(panic_later, panic_param); lockdep_info(); /* * Need to run this when irqs are enabled, because it wants * to self-test [hard/soft]-irqs on/off lock inversion bugs * too: */ locking_selftest(); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) { printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " "disabling it.\n", page_to_pfn(virt_to_page((void *)initrd_start)), min_low_pfn); initrd_start = 0; } #endif page_cgroup_init(); enable_debug_pagealloc(); kmemtrace_init(); kmemleak_init(); debug_objects_mem_init(); idr_init_cache(); setup_per_cpu_pageset(); numa_policy_init(); if (late_time_init) late_time_init(); sched_clock_init(); calibrate_delay(); pidmap_init(); anon_vma_init(); #ifdef CONFIG_X86 if (efi_enabled) efi_enter_virtual_mode(); #endif thread_info_cache_init(); cred_init(); fork_init(totalram_pages); proc_caches_init(); buffer_init(); key_init(); security_init(); dbg_late_init(); vfs_caches_init(totalram_pages); signals_init(); /* rootfs populating might need page-writeback */ page_writeback_init(); #ifdef CONFIG_PROC_FS proc_root_init(); #endif cgroup_init(); cpuset_init(); taskstats_init_early(); delayacct_init(); check_bugs(); acpi_early_init(); /* before LAPIC and SMP init */ sfi_init_late(); ftrace_init(); /* Do the rest non-__init'ed, we're now alive */ rest_init(); }
/* * Do any per-module initialization that is separate to each * configured instance of the module. e.g. set up connections * to external databases, read configuration files, set up * dictionary entries, etc. * * If configuration information is given in the config section * that must be referenced in later calls, store a handle to it * in *instance otherwise put a null pointer there. */ static int rlm_rest_instantiate(CONF_SECTION *conf, void **instance) { rlm_rest_t *data; const char *xlat_name; /* * Allocate memory for instance data. */ data = rad_malloc(sizeof(*data)); if (!data) { return -1; } memset(data, 0, sizeof(*data)); /* * If the configuration parameters can't be parsed, then * fail. */ if (cf_section_parse(conf, data, module_config) < 0) { free(data); return -1; } xlat_name = cf_section_name2(conf); if (xlat_name == NULL) { xlat_name = cf_section_name1(conf); } data->xlat_name = xlat_name; /* * Parse sub-section configs. */ if ( (parse_sub_section(conf, data, &data->authorize, RLM_COMPONENT_AUTZ) < 0) || (parse_sub_section(conf, data, &data->authenticate, RLM_COMPONENT_AUTH) < 0) || (parse_sub_section(conf, data, &data->accounting, RLM_COMPONENT_ACCT) < 0) || (parse_sub_section(conf, data, &data->checksimul, RLM_COMPONENT_SESS) < 0) || (parse_sub_section(conf, data, &data->postauth, RLM_COMPONENT_POST_AUTH) < 0)) { return -1; } /* * Initialise REST libraries. */ if (!rest_init(data)) { return -1; } data->conn_pool = fr_connection_pool_init(conf, data, rest_socket_create, rest_socket_alive, rest_socket_delete); if (!data->conn_pool) { return -1; } *instance = data; return 0; }
asmlinkage void __init start_kernel(void) { char * command_line; /* * Interrupts are still disabled. Do necessary setups, then * enable them */ lock_kernel(); page_address_init(); printk(KERN_NOTICE); printk(linux_banner); setup_arch(&command_line); setup_per_cpu_areas(); /* * Mark the boot cpu "online" so that it can call console drivers in * printk() and can access its per-cpu storage. */ smp_prepare_boot_cpu(); /* * Set up the scheduler prior starting any interrupts (such as the * timer interrupt). Full topology setup happens at smp_init() * time - but meanwhile we still have a functioning scheduler. */ sched_init(); /* * Disable preemption - early bootup scheduling is extremely * fragile until we cpu_idle() for the first time. */ preempt_disable(); build_all_zonelists(); page_alloc_init(); printk(KERN_NOTICE "Kernel command line: %s\n", saved_command_line); parse_early_param(); parse_args("Booting kernel", command_line, __kernel_param_list_ptr, kparam_list_count(), &unknown_bootoption); sort_main_extable(); #ifdef CONFIG_LTT ltt_init(); #endif //CONFIG_LTT trap_init(); rcu_init(); init_IRQ(); pidhash_init(); init_timers(); hrtimers_init(); softirq_init(); time_init(); /* * HACK ALERT! This is early. We're enabling the console before * we've done PCI setups etc, and console_init() must be aware of * this. But we do want output early, in case something goes wrong. */ console_init(); if (panic_later) panic(panic_later, panic_param); profile_init(); local_irq_enable(); #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && initrd_start < min_low_pfn << PAGE_SHIFT) { printk(KERN_CRIT "initrd overwritten (0x%08lx < 0x%08lx) - " "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); initrd_start = 0; } #endif vfs_caches_init_early(); mem_init(); kmem_cache_init(); setup_per_cpu_pageset(); numa_policy_init(); if (late_time_init) late_time_init(); calibrate_delay(); pidmap_init(); pgtable_cache_init(); prio_tree_init(); anon_vma_init(); #ifdef CONFIG_X86 if (efi_enabled) efi_enter_virtual_mode(); #endif fork_init(num_physpages); proc_caches_init(); buffer_init(); unnamed_dev_init(); key_init(); security_init(); vfs_caches_init(num_physpages); radix_tree_init(); signals_init(); /* rootfs populating might need page-writeback */ page_writeback_init(); #ifdef CONFIG_PROC_FS proc_root_init(); #endif cpuset_init(); check_bugs(); acpi_early_init(); /* before LAPIC and SMP init */ /* Do the rest non-__init'ed, we're now alive */ rest_init(); }