int drslot_chrp_pci(struct options *opts) { int rc; struct dr_node *all_nodes; all_nodes = get_hp_nodes(); if (all_nodes == NULL) { say(ERROR, "There are no PCI hot plug slots on this system.\n"); return -1; } #ifdef DBG_HOT_PLUG print_slots_list(all_nodes); #endif if (!opts->usr_drc_name) opts->usr_drc_name = find_drc_name(opts->usr_drc_index, all_nodes); switch (opts->action) { case ADD: rc = do_add(opts, all_nodes); break; case REMOVE: rc = do_remove(opts, all_nodes); break; case REPLACE: rc = do_replace(opts, all_nodes); break; case IDENTIFY: rc = do_identify(opts, all_nodes); break; default: say(ERROR, "Invalid operation specified!\n"); rc = -1; break; } free_node(all_nodes); return rc; }
int main(int argc, char *argv[]) { int opt; while((opt = getopt(argc, argv, "p:")) != -1) { switch(opt) { case 'p': errno = 0; port = strtoul(optarg, NULL, 0); if (errno) usage(); port_opt = 1; break; default: usage(); } } if (optind != argc) usage(); do_identify(); return 0; }
bool item_list::handle_item(item_t* item) { switch (m_action) { case DROP: case PICKUP: choose_item(item); return false; case READ: do_read(item); return true; case QUAF: do_quaf(item); return true; case ZAP: do_zap(item); return true; case EQUIP: do_equip(item); return true; case SHOW_ALL: return true; case IDENTIFY: do_identify(item); return true; case ENCHANT_WEAPON: case ENCHANT_ARMOR: do_enchant(item); return true; case EAT: do_eat(item); return true; } return false; }
static void do_identify(char *var,char type) { char *label,*path,*alias,*initrd,*keytab,*appstr,*dtem,*addappstr; char *rootstr; int root,image, ramdisk, kt, append; #if 1 image = !!strchr(opt,'i'); ramdisk = !!strchr(opt,'r'); kt = !!strchr(opt,'k'); append = !!strchr(opt,'a'); root = !!strchr(opt,'R'); if (opt && !image && !ramdisk && !kt && !append && !idefault && !root) exit(1); /* if (!opt) image = 1; */ #else image = ramdisk = 1; printf("do_identify: opt=\"%s\"\n", opt); #endif label = strrchr(path = cfg_get_strg(cf_identify,var),'/'); if (label) label++; if (cfg_get_strg(cf_all,"label")) label = cfg_get_strg(cf_all,"label"); else if (!label) label = path; if (!first) first = stralloc(label); alias = cfg_get_strg(cf_all,"alias"); dtem = cfg_get_strg(cf_options,"default"); if (verbose>=2) printf("identify: dtem=%s label=%s\n", dtem, label); #ifdef LCF_IGNORECASE if (dtem && (!strcasecmp(label,dtem) || (alias && !strcasecmp(alias,dtem)))) { #else if (dtem && (!strcmp(label,dtem) || (alias && !strcmp(alias,dtem)))) { #endif if (verbose>=2) printf("setting dflt\n"); dflt = dtem; } initrd = cfg_get_strg(cf_kernel,"initrd"); if (!initrd) initrd = cfg_get_strg(cf_options,"initrd"); keytab = cfg_get_strg(cf_options,"keytable"); if (!keytab) keytab="us.ktl"; appstr = cfg_get_strg(cf_kernel,"append"); if (!appstr) appstr = cfg_get_strg(cf_options,"append"); addappstr = cfg_get_strg(cf_kernel,"addappend"); rootstr = cfg_get_strg(cf_kernel,"root"); if (!rootstr) rootstr = cfg_get_strg(cf_options,"root"); #ifdef LCF_IGNORECASE if (!strcasecmp(label,identify) || (alias && !strcasecmp(alias,identify))) { #else if (!strcmp(label,identify) || (alias && !strcmp(alias,identify))) { #endif if (image) printf("%s\n",path); if (ramdisk) printf("%s\n",initrd?initrd:"No initial ramdisk specified"); if (kt) printf("%s\n",keytab); if (append) { if (!appstr && !addappstr) printf("No append= was specified\n"); else if ((appstr && !addappstr) || (!appstr && addappstr)) printf("%s\n", appstr?appstr:addappstr); else printf("%s %s\n", appstr, addappstr); } if (root) printf("%s\n",rootstr?rootstr:"No root specified"); if (idefault) printf("%s\n", dflt ? dflt : first); exit(0); } } void id_image(void) { cfg_init(cf_image); (void) cfg_parse(cf_image); do_identify("image",'i'); cfg_init(cf_identify); } void id_other(void) { cfg_init(cf_other); cfg_init(cf_kernel); curr_drv_map = curr_prt_map = 0; (void) cfg_parse(cf_other); cfg_init(cf_identify); }