void noui_init(void) { static struct poptOption options[] = { POPT_AUTOHELP { "load", 'l', POPT_ARG_STRING, &autoload_module, 0, "Module to load (default = bot)", "MODULE" }, { NULL, '\0', 0, NULL } }; autoload_module = NULL; args_register(options); irssi_gui = IRSSI_GUI_NONE; core_init(); irc_init(); module_register("core", "fe-none"); signal_add("reload", (SIGNAL_FUNC) sig_reload); signal_add("gui exit", (SIGNAL_FUNC) sig_exit); #ifdef HAVE_STATIC_PERL perl_core_init(); #endif signal_emit("irssi init finished", 0); }
void python_init(void) { Py_InitializeEx(0); pysignals_init(); pystatusbar_init(); if (!pyloader_init() || !pymodule_init() || !factory_init() || !pythemes_init()) { printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "Failed to load Python"); return; } pyconstants_init(); /*PyImport_ImportModule("irssi_startup");*/ /* Install the custom output handlers, import hook and reload function */ /* XXX: handle import error */ PyRun_SimpleString( "import irssi_startup\n" ); pyloader_auto_load(); /* assert(signal(SIGINT, intr_catch) != SIG_ERR); */ command_bind("py", NULL, (SIGNAL_FUNC) cmd_default); command_bind("py load", NULL, (SIGNAL_FUNC) cmd_load); command_bind("py unload", NULL, (SIGNAL_FUNC) cmd_unload); command_bind("py list", NULL, (SIGNAL_FUNC) cmd_list); command_bind("py exec", NULL, (SIGNAL_FUNC) cmd_exec); module_register(MODULE_NAME, "core"); }
int melodik_init( void ) { module_register( &melodik_module_info ); return 0; }
/** * @brief This function initializes video compression. * * This function wrapps the call of compress_init_real(). * @param[in] parent parent module * @param[in] config_string configuration (in format <driver>:<options>) * @param[out] state created state * @retval 0 if state created sucessfully * @retval <0 if error occured * @retval >0 finished successfully, no state created (eg. displayed help) */ int compress_init(struct module *parent, char *config_string, struct compress_state **state) { struct compress_state_real *s; compress_state_proxy *proxy; proxy = malloc(sizeof(compress_state_proxy)); module_init_default(&proxy->mod); proxy->mod.cls = MODULE_CLASS_COMPRESS; proxy->mod.priv_data = proxy; proxy->mod.deleter = compress_done; proxy->mod.msg_callback = compress_change_callback; int ret = compress_init_real(&proxy->mod, config_string, &s); if(ret == 0) { proxy->ptr = s; platform_spin_init(&proxy->spin); *state = proxy; module_register(&proxy->mod, parent); } else { free(proxy); } return ret; }
int zxcf_init( void ) { int error; last_memctl = 0x00; zxcf_idechn = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 0 ); if( settings_current.zxcf_pri_file ) { error = libspectrum_ide_insert( zxcf_idechn, LIBSPECTRUM_IDE_MASTER, settings_current.zxcf_pri_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 1 ); } module_register( &zxcf_module_info ); if( periph_register_paging_events( event_type_string, &page_event, &unpage_event ) ) return 1; return 0; }
void text_xmpp_init(void) { text_xep_init(); module_register("xmpp", "text"); }
char *wire_start(Function *global_funcs) { p_tcl_bind_list H_temp; global = global_funcs; module_register(MODULE_NAME, wire_table, 2, 0); if (!module_depend(MODULE_NAME, "eggdrop", 106, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.6.0 or later."; } if (!(encryption_funcs = module_depend(MODULE_NAME, "encryption", 2, 1))) { module_undepend(MODULE_NAME); return "This module requires an encryption module."; } add_help_reference("wire.help"); add_builtins(H_dcc, wire_dcc); H_temp = find_bind_table("filt"); add_builtins(H_filt, wire_filt); H_temp = find_bind_table("chof"); add_builtins(H_chof, wire_chof); wirelist = NULL; add_lang_section("wire"); return NULL; }
char *ctcp_start(Function *global_funcs) { global = global_funcs; module_register(MODULE_NAME, ctcp_table, 1, 1); if (!module_depend(MODULE_NAME, "eggdrop", 108, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.8.0 or later."; } if (!(server_funcs = module_depend(MODULE_NAME, "server", 1, 0))) { module_undepend(MODULE_NAME); return "This module requires server module 1.0 or later."; } add_tcl_strings(mystrings); add_tcl_ints(myints); add_builtins(H_ctcp, myctcp); add_help_reference("ctcp.help"); if (!ctcp_version[0]) { strncpy(ctcp_version, ver, 120); ctcp_version[120] = 0; } if (!ctcp_finger[0]) { strncpy(ctcp_finger, ver, 120); ctcp_finger[120] = 0; } if (!ctcp_userinfo[0]) { strncpy(ctcp_userinfo, ver, 120); ctcp_userinfo[120] = 0; } return NULL; }
void fe_icb_init(void) { theme_register(fecommon_icb_formats); signal_add("icb event error", (SIGNAL_FUNC) event_error); signal_add("icb event important", (SIGNAL_FUNC) event_important); signal_add("icb event beep", (SIGNAL_FUNC) event_beep); signal_add("icb event open", (SIGNAL_FUNC) event_open); signal_add("icb event personal", (SIGNAL_FUNC) event_personal); signal_add("icb cmdout co", (SIGNAL_FUNC) cmdout_co); signal_add("icb cmdout wl", (SIGNAL_FUNC) cmdout_wl); signal_add("default icb cmdout", (SIGNAL_FUNC) cmdout_default); signal_add("icb status arrive", (SIGNAL_FUNC) status_arrive); signal_add("icb status depart", (SIGNAL_FUNC) status_depart); signal_add("icb status sign-on", (SIGNAL_FUNC) status_signon); signal_add("icb status sign-off", (SIGNAL_FUNC) status_signoff); signal_add("icb status status", (SIGNAL_FUNC) status_join); signal_add("icb status topic", (SIGNAL_FUNC) status_topic); signal_add("icb status name", (SIGNAL_FUNC) status_name); signal_add("icb status pass", (SIGNAL_FUNC) status_pass); signal_add("default icb status", (SIGNAL_FUNC) status_default); signal_add("server add fill", (SIGNAL_FUNC) sig_server_add_fill); command_set_options("server add", "-icbnet"); module_register("icb", "fe"); }
char *filesys_start(Function *global_funcs) { global = global_funcs; module_register(MODULE_NAME, filesys_table, 2, 0); if (!module_depend(MODULE_NAME, "eggdrop", 106, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.6.0 or later."; } if (!(transfer_funcs = module_depend(MODULE_NAME, "transfer", 2, 0))) { module_undepend(MODULE_NAME); return "This module requires transfer module 2.0 or later."; } add_tcl_commands(mytcls); add_tcl_strings(mystrings); add_tcl_ints(myints); H_fil = add_bind_table("fil", 0, builtin_fil); add_builtins(H_dcc, mydcc); add_builtins(H_fil, myfiles); add_builtins(H_load, myload); add_help_reference("filesys.help"); init_server_ctcps(0); my_memcpy(&USERENTRY_DCCDIR, &USERENTRY_INFO, sizeof(struct user_entry_type) - sizeof(char *)); USERENTRY_DCCDIR.got_share = 0; /* We dont want it shared tho */ add_entry_type(&USERENTRY_DCCDIR); DCC_FILES_PASS.timeout_val = &password_timeout; add_lang_section("filesys"); return NULL; }
static int zxcf_init( void *context ) { int error, i; last_memctl = 0x00; zxcf_idechn = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 0 ); if( settings_current.zxcf_pri_file ) { error = libspectrum_ide_insert( zxcf_idechn, LIBSPECTRUM_IDE_MASTER, settings_current.zxcf_pri_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, 1 ); } module_register( &zxcf_module_info ); zxcf_memory_source = memory_source_register( "ZXCF" ); for( i = 0; i < MEMORY_PAGES_IN_16K; i++ ) zxcf_memory_map_romcs[i].source = zxcf_memory_source; periph_register( PERIPH_TYPE_ZXCF, &zxcf_periph ); periph_register_paging_events( event_type_string, &page_event, &unpage_event ); return 0; }
void irc_dcc_init(void) { dcc_conns = NULL; dcc_timeouttag = g_timeout_add(1000, (GSourceFunc) dcc_timeout_func, NULL); settings_add_str("dcc", "dcc_port", "0"); settings_add_time("dcc", "dcc_timeout", "5min"); settings_add_str("dcc", "dcc_own_ip", ""); signal_add("event connected", (SIGNAL_FUNC) sig_connected); signal_add("server disconnected", (SIGNAL_FUNC) sig_server_disconnected); signal_add("server nick changed", (SIGNAL_FUNC) sig_server_nick_changed); signal_add("ctcp msg", (SIGNAL_FUNC) ctcp_msg); signal_add("ctcp reply", (SIGNAL_FUNC) ctcp_reply); signal_add("ctcp msg dcc", (SIGNAL_FUNC) ctcp_msg_dcc); signal_add("ctcp reply dcc", (SIGNAL_FUNC) ctcp_reply_dcc); signal_add("ctcp reply dcc reject", (SIGNAL_FUNC) ctcp_reply_dcc_reject); signal_add("event 401", (SIGNAL_FUNC) event_no_such_nick); command_bind("dcc", NULL, (SIGNAL_FUNC) cmd_dcc); command_bind("dcc close", NULL, (SIGNAL_FUNC) cmd_dcc_close); dcc_chat_init(); dcc_get_init(); dcc_send_init(); dcc_resume_init(); dcc_autoget_init(); dcc_server_init(); settings_check(); module_register("dcc", "irc"); }
char *notes_start(Function *global_funcs) { global = global_funcs; notefile[0] = 0; module_register(MODULE_NAME, notes_table, 2, 2); if (!module_depend(MODULE_NAME, "eggdrop", 108, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.8.0 or later."; } add_hook(HOOK_HOURLY, (Function) notes_hourly); add_hook(HOOK_MATCH_NOTEREJ, (Function) match_note_ignore); add_tcl_ints(notes_ints); add_tcl_strings(notes_strings); add_tcl_commands(notes_tcls); add_builtins(H_dcc, notes_cmds); add_builtins(H_chon, notes_chon); add_builtins(H_away, notes_away); add_builtins(H_nkch, notes_nkch); add_builtins(H_load, notes_load); add_help_reference("notes.help"); add_lang_section("notes"); notes_server_setup(0); notes_irc_setup(0); my_memcpy(&USERENTRY_FWD, &USERENTRY_INFO, sizeof(void *) * 12); add_entry_type(&USERENTRY_FWD); return NULL; }
void module_register_init(const void *arg) { const moduledata_t* data = (const moduledata_t*) arg; int error; module_t mod; mod = module_lookupbyname(data->name); if (mod == NULL) { #if 0 panic("module_register_init: module named %s not found", data->name); #else /* temporary kludge until kernel `file' attachment registers modules */ error = module_register(data, linker_kernel_file); if (error) panic("module_register_init: register of module failed! %d", error); mod = module_lookupbyname(data->name); if (mod == NULL) panic("module_register_init: module STILL not found!"); #endif } error = MOD_EVENT(mod, MOD_LOAD); if (error) { module_unload(mod); /* ignore error */ module_release(mod); kprintf("module_register_init: MOD_LOAD (%s, %lx, %p) error %d\n", data->name, (u_long)(uintfptr_t)data->evhand, data->priv, error); } }
char *dns_start(Function *global_funcs) { int idx; global = global_funcs; module_register(MODULE_NAME, dns_table, 1, 0); if (!module_depend(MODULE_NAME, "eggdrop", 106, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.6.0 or later."; } idx = new_dcc(&DCC_DNS, 0); if (idx < 0) return "NO MORE DCC CONNECTIONS -- Can't create DNS socket."; if (!init_dns_core()) { lostdcc(idx); return "DNS initialisation failed."; } dcc[idx].sock = resfd; dcc[idx].timeval = now; strcpy(dcc[idx].nick, "(dns)"); add_hook(HOOK_SECONDLY, (Function) dns_check_expires); add_hook(HOOK_DNS_HOSTBYIP, (Function) dns_lookup); add_hook(HOOK_DNS_IPBYHOST, (Function) dns_forward); return NULL; }
char *filesys_start(Function * global_funcs) { global = global_funcs; Context; dccdir[0] = 0; dccin[0] = 0; filedb_path[0] = 0; module_register(MODULE_NAME, filesys_table, 2, 0); if (!(transfer_funcs = module_depend(MODULE_NAME, "transfer", 2, 0))) return "You need the transfer module to user the file system."; if (!module_depend(MODULE_NAME, "eggdrop", 104, 0)) return "You need at least eggdrop1.4.0 to run this module."; add_tcl_commands(mytcls); add_tcl_strings(mystrings); add_tcl_ints(myints); H_fil = add_bind_table("fil", 0, builtin_fil); add_builtins(H_dcc, mydcc); add_builtins(H_fil, myfiles); add_builtins(H_load, myload); add_help_reference("filesys.help"); init_server_ctcps(0); my_memcpy(&USERENTRY_DCCDIR, &USERENTRY_INFO, sizeof(struct user_entry_type) - sizeof(char *)); USERENTRY_DCCDIR.got_share = 0; /* we dont want it shared tho */ add_entry_type(&USERENTRY_DCCDIR); DCC_FILES_PASS.timeout_val = &password_timeout; add_lang_section("filesys"); return NULL; }
int kempmouse_init( void ) { module_register( &kempmouse_module_info ); return 0; }
/* This function is called as the module is loaded. */ char *sample_start(Function *global_funcs) { /* Assign the global function table. After this point, you can use all * normal functions defined in src/mod/modules.h. */ global = global_funcs; /* Register the module. */ module_register(MODULE_NAME, sample_table, 2, 0); /* ^--- minor module version * ^------ major module version * ^-------------------- module function table * ^--------------------------------- module name */ /* Depend on the Eggdrop core, version 1.7.0 or later. */ if (!module_depend(MODULE_NAME, "eggdrop", 107, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.7.0 or later."; } /* Add command table to bind list H_dcc, responsible for DCC/partyline * commands. Currently we only add one command, 'sample'. */ add_builtins(H_dcc, mydcc); /* Return NULL unless we're passing an error message. */ return NULL; }
void xmpp_core_init(void) { CHAT_PROTOCOL_REC *rec; rec = g_new0(CHAT_PROTOCOL_REC, 1); rec->name = XMPP_PROTOCOL_NAME; rec->fullname = "XMPP, Extensible messaging and presence protocol"; rec->chatnet = "xmppnet"; rec->case_insensitive = FALSE; rec->create_chatnet = create_chatnet; rec->create_server_setup = create_server_setup; rec->create_server_connect = create_server_connect; rec->create_channel_setup = create_channel_setup; rec->destroy_server_connect = (void (*)(SERVER_CONNECT_REC *))destroy_server_connect; rec->server_init_connect = xmpp_server_init_connect; rec->server_connect = (void (*)(SERVER_REC *))xmpp_server_connect; rec->channel_create = channel_create; rec->query_create = xmpp_query_create; chat_protocol_register(rec); g_free(rec); xmpp_commands_init(); xmpp_servers_init(); xmpp_servers_reconnect_init(); xmpp_settings_init(); protocol_init(); rosters_init(); stanzas_init(); xep_init(); module_register("xmpp", "core"); }
void fe_common_irc_init(void) { settings_add_bool("lookandfeel", "show_away_once", TRUE); theme_register(fecommon_irc_formats); fe_irc_channels_init(); fe_irc_queries_init(); fe_irc_messages_init(); fe_irc_commands_init(); fe_ircnet_init(); fe_irc_server_init(); fe_ctcp_init(); fe_events_init(); fe_events_numeric_init(); fe_modes_init(); fe_netsplit_init(); fe_netjoin_init(); fe_whois_init(); fe_sasl_init(); irc_completion_init(); settings_check(); module_register("core", "fe-irc"); fe_irc_modules_init(); }
void fish_init(void) { char iniPasswordHash[50]; printtext(NULL, NULL, MSGLEVEL_CLIENTNOTICE, "FiSH " FISH_VERSION " - encryption module for irssi loaded!\n" "URL: https://github.com/falsovsky/FiSH-irssi\n" "Try /helpfish or /fishhelp for a short command overview"); command_bind("fishhelp", NULL, (SIGNAL_FUNC) cmd_helpfish); command_bind("helpfish", NULL, (SIGNAL_FUNC) cmd_helpfish); command_bind("fishlogin", NULL, (SIGNAL_FUNC) cmd_fishlogin); if (DH1080_Init() == FALSE) return; get_ini_password_hash(sizeof(iniPasswordHash), iniPasswordHash); if (strlen(iniPasswordHash) != 43) { strcpy(iniKey, default_iniKey); printtext(NULL, NULL, MSGLEVEL_CRAP, "\002FiSH:\002 Using default password to decrypt blow.ini... Try /setinipw to set a custom password."); setup_fish(); } else { printtext(NULL, NULL, MSGLEVEL_CRAP, "\002FiSH:\002 Current blow.ini is password protected."); cmd_fishlogin(NULL, NULL, NULL); } module_register("fish", "core"); }
char *compress_start(Function *global_funcs) { global = global_funcs; compressed_files = 0; uncompressed_files = 0; share_compressed = 0; compress_level = 9; module_register(MODULE_NAME, compress_table, 1, 1); if (!module_depend(MODULE_NAME, "eggdrop", 106, 0)) { module_undepend(MODULE_NAME); return "This module requires Eggdrop 1.6.0 or later."; } share_funcs = module_depend(MODULE_NAME, "share", 2, 3); if (!share_funcs) { module_undepend(MODULE_NAME); return "This module requires share module 2.3 or later."; } uff_addtable(compress_uff_table); add_tcl_ints(my_tcl_ints); add_tcl_commands(my_tcl_cmds); add_help_reference("compress.help"); return NULL; }
void robustirc_core_init(void) { CHAT_PROTOCOL_REC *rec; rec = g_new0(CHAT_PROTOCOL_REC, 1); rec->name = ROBUSTIRC_PROTOCOL_NAME; rec->fullname = "RobustIRC"; rec->chatnet = "robustirc"; rec->create_chatnet = create_chatnet; rec->create_server_setup = create_server_setup; rec->create_server_connect = create_server_connect; rec->create_channel_setup = create_channel_setup; rec->destroy_server_connect = (void (*)(SERVER_CONNECT_REC *))destroy_server_connect; rec->server_init_connect = robustirc_server_init_connect; rec->server_connect = (void (*)(SERVER_REC *))robustirc_server_connect; rec->channel_create = (CHANNEL_REC * (*)(SERVER_REC *, const char *, const char *, int)) irc_channel_create; rec->query_create = irc_query_create; chat_protocol_register(rec); g_free(rec); command_set_options("connect", "robustirc"); signal_add_last("server connect copy", (SIGNAL_FUNC)robustirc_server_connect_copy); signal_add_last("server disconnected", (SIGNAL_FUNC)robustirc_server_disconnected); connrecs = g_hash_table_new(NULL, NULL); robustsession_init(); module_register(MODULE_NAME, "core"); }
void fe_xmpp_init(void) { theme_register(fecommon_xmpp_formats); signal_add("xmpp server status", sig_server_status); signal_add("server add fill", sig_server_add_fill); fe_xmpp_messages_init(); fe_xmpp_queries_init(); fe_xmpp_status_init(); fe_xmpp_windows_init(); fe_rosters_init(); fe_stanzas_init(); xmpp_completion_init(); xmpp_formats_init(); fe_xep_init(); module_register("xmpp", "fe"); /* load irssi-xmpp's fe-text submodule */ if (irssi_gui == IRSSI_GUI_TEXT) { char *cmd_line = g_strconcat(settings_get_str("cmdchars"), "load xmpp text", NULL); signal_emit("send command", 1, cmd_line); g_free(cmd_line); } }
static int linker_file_register_modules(linker_file_t lf) { struct mod_metadata **start, **stop, **mdp; const moduledata_t *moddata; int first_error, error; KLD_DPF(FILE, ("linker_file_register_modules: registering modules" " in %s\n", lf->filename)); start = SET_BEGIN(modmetadata_set); stop = SET_LIMIT(modmetadata_set); first_error = 0; for (mdp = start; mdp < stop; mdp++) { if ((*mdp)->md_type != MDT_MODULE) continue; moddata = (*mdp)->md_data; KLD_DPF(FILE, ("Registering module %s in %s\n", moddata->name, lf->filename)); error = module_register(moddata, lf); if (error) { printf("Module %s failed to register: %d\n", moddata->name, error); if (first_error == 0) first_error = error; } } return (first_error); }
void icb_core_init(void) { CHAT_PROTOCOL_REC *rec; rec = g_new0(CHAT_PROTOCOL_REC, 1); rec->name = "ICB"; rec->fullname = "Internet Citizen's Band"; rec->chatnet = "icbnet"; rec->case_insensitive = TRUE; rec->create_chatnet = create_chatnet; rec->create_server_setup = create_server_setup; rec->create_channel_setup = create_channel_setup; rec->create_server_connect = create_server_connect; rec->destroy_server_connect = destroy_server_connect; rec->server_init_connect = icb_server_init_connect; rec->server_connect = icb_server_connect; rec->channel_create = _channel_create; rec->query_create = icb_query_create; chat_protocol_register(rec); g_free(rec); icb_servers_init(); icb_servers_reconnect_init(); icb_channels_init(); icb_protocol_init(); icb_commands_init(); icb_session_init(); module_register("icb", "core"); }
int divide_init( void ) { int error, i; divide_idechn0 = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); divide_idechn1 = libspectrum_ide_alloc( LIBSPECTRUM_IDE_DATA16 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_MASTER_EJECT, 0 ); ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_SLAVE_EJECT, 0 ); if( settings_current.divide_master_file ) { error = libspectrum_ide_insert( divide_idechn0, LIBSPECTRUM_IDE_MASTER, settings_current.divide_master_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_MASTER_EJECT, 1 ); } if( settings_current.divide_slave_file ) { error = libspectrum_ide_insert( divide_idechn0, LIBSPECTRUM_IDE_SLAVE, settings_current.divide_slave_file ); if( error ) return error; ui_menu_activate( UI_MENU_ITEM_MEDIA_IDE_DIVIDE_SLAVE_EJECT, 1 ); } module_register( ÷_module_info ); for( i = 0; i < 2; i++ ) divide_memory_map_romcs[i].bank = MEMORY_BANK_ROMCS; if( periph_register_paging_events( event_type_string, &page_event, &unpage_event ) ) return 1; return 0; }
void charChecker_init(void) { charChecker_module.name = name; charChecker_module.enable = charChecker_enable; charChecker_module.disable = charChecker_disable; charChecker_module.event = charChecker_event; module_register(&charChecker_module); }
static int scld_init( void *context ) { module_register( &scld_module_info ); periph_register( PERIPH_TYPE_SCLD, &scld_periph ); return 0; }
static void printer_zxp_init(void) { zxpstylus=zxpspeed=zxpheight=zxpnewspeed=zxplineofchar=0; zxppixel=-1; module_register(&printer_zxp_module_info); periph_register(PERIPH_TYPE_ZXPRINTER,&printer_zxp_periph); periph_register(PERIPH_TYPE_ZXPRINTER_FULL_DECODE,&printer_zxp_periph_full_decode); periph_register(PERIPH_TYPE_PARALLEL_PRINTER,&printer_parallel_periph); }