void usage(char **argv) { int i; struct tx80211_cardlist *cardlist; printf("Usage: %s [interface] [drivername]\n", argv[0]); cardlist = tx80211_getcardlist(); if (cardlist == NULL) { printf("Error accessing supported cardlist.\n"); } else { printf("\nSupported drivers are: "); for (i = 1; i < cardlist->num_cards; i++) { printf("%s ", cardlist->cardnames[i]); } printf("\n"); } tx80211_freecardlist(cardlist); }
static VALUE lorcon_driver_list(VALUE self) { VALUE list; VALUE hash; struct tx80211_cardlist *cards = NULL; int i; list = rb_hash_new(); cards = tx80211_getcardlist(); if (cards == NULL) { return(Qnil); } for (i = 1; i < cards->num_cards; i++) { hash = rb_hash_new(); rb_hash_aset(hash, rb_str_new2("name"), rb_str_new2(cards->cardnames[i])); rb_hash_aset(hash, rb_str_new2("description"), rb_str_new2(cards->descriptions[i])); rb_hash_aset(hash, rb_str_new2("capabilities"), lorcon_cap_to_list(cards->capabilities[i])); rb_hash_aset(list, rb_str_new2(cards->cardnames[i]), hash); } tx80211_freecardlist(cards); return(list); }