~ubuntu-branches/ubuntu/precise/usbutils/precise

« back to all changes in this revision

Viewing changes to names.c

  • Committer: Bazaar Package Importer
  • Author(s): Aurelien Jarno
  • Date: 2011-02-06 13:32:44 UTC
  • mfrom: (2.1.14 sid)
  • Revision ID: james.westby@ubuntu.com-20110206133244-9111gklgz7vuygd7
Tags: 1:001-1
* New upstream version, with new version numbering system.
* Switch build-dependencies from libusb-dev to libusb-1.0-0-dev.
* Update usb.ids.
* Fix 13fe:3100 entry, 4GB versions of the device also exists.  
  Closes: bug#599817.
* Bumped Standards-Version to 3.9.1 (no changes).

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
/*****************************************************************************/
25
25
 
 
26
#ifdef HAVE_CONFIG_H
 
27
#include "config.h"
 
28
#endif
 
29
 
26
30
#include <sys/types.h>
27
31
#include <sys/stat.h>
28
32
#include <fcntl.h>
34
38
#include <stdio.h>
35
39
#include <ctype.h>
36
40
 
37
 
#ifdef HAVE_CONFIG_H
38
 
#include "config.h"
39
 
#endif
40
 
 
41
41
#ifdef HAVE_LIBZ
42
42
#include <zlib.h>
43
43
#define         usb_file                        gzFile
467
467
 
468
468
/* ---------------------------------------------------------------------- */
469
469
 
 
470
static void free_vendor(void)
 
471
{
 
472
        struct vendor *cur, *tmp;
 
473
        int i;
 
474
 
 
475
        for (i = 0; i < HASHSZ; i++) {
 
476
                cur = vendors[i];
 
477
                while (cur) {
 
478
                        tmp = cur;
 
479
                        cur = cur->next;
 
480
                        free(tmp);
 
481
                }
 
482
        }
 
483
}
 
484
 
 
485
static void free_product(void)
 
486
{
 
487
        struct product *cur, *tmp;
 
488
        int i;
 
489
 
 
490
        for (i = 0; i < HASHSZ; i++) {
 
491
                cur = products[i];
 
492
                while (cur) {
 
493
                        tmp = cur;
 
494
                        cur = cur->next;
 
495
                        free(tmp);
 
496
                }
 
497
        }
 
498
}
 
499
 
 
500
static void free_class(void)
 
501
{
 
502
        struct class *cur, *tmp;
 
503
        int i;
 
504
 
 
505
        for (i = 0; i < HASHSZ; i++) {
 
506
                cur = classes[i];
 
507
                while (cur) {
 
508
                        tmp = cur;
 
509
                        cur = cur->next;
 
510
                        free(tmp);
 
511
                }
 
512
        }
 
513
}
 
514
 
 
515
static void free_subclass(void)
 
516
{
 
517
        struct subclass *cur, *tmp;
 
518
        int i;
 
519
 
 
520
        for (i = 0; i < HASHSZ; i++) {
 
521
                cur = subclasses[i];
 
522
                while (cur) {
 
523
                        tmp = cur;
 
524
                        cur = cur->next;
 
525
                        free(tmp);
 
526
                }
 
527
        }
 
528
}
 
529
 
 
530
static void free_protocol(void)
 
531
{
 
532
        struct protocol *cur, *tmp;
 
533
        int i;
 
534
 
 
535
        for (i = 0; i < HASHSZ; i++) {
 
536
                cur = protocols[i];
 
537
                while (cur) {
 
538
                        tmp = cur;
 
539
                        cur = cur->next;
 
540
                        free(tmp);
 
541
                }
 
542
        }
 
543
}
 
544
 
 
545
static void free_audioterminal(void)
 
546
{
 
547
        struct audioterminal *cur, *tmp;
 
548
        int i;
 
549
 
 
550
        for (i = 0; i < HASHSZ; i++) {
 
551
                cur = audioterminals[i];
 
552
                while (cur) {
 
553
                        tmp = cur;
 
554
                        cur = cur->next;
 
555
                        free(tmp);
 
556
                }
 
557
        }
 
558
        return;
 
559
}
 
560
 
 
561
static void free_videoterminal(void)
 
562
{
 
563
        struct videoterminal *cur, *tmp;
 
564
        int i;
 
565
 
 
566
        for (i = 0; i < HASHSZ; i++) {
 
567
                cur = videoterminals[i];
 
568
                while (cur) {
 
569
                        tmp = cur;
 
570
                        cur = cur->next;
 
571
                        free(tmp);
 
572
                }
 
573
        }
 
574
}
 
575
 
 
576
static void _free_genericstrtable(struct genericstrtable *t[HASHSZ])
 
577
{
 
578
        struct genericstrtable *cur, *tmp;
 
579
        int i;
 
580
 
 
581
        for (i = 0; i < HASHSZ; i++) {
 
582
                cur = t[i];
 
583
                while (cur) {
 
584
                        tmp = cur;
 
585
                        cur = cur->next;
 
586
                        free(tmp);
 
587
                }
 
588
        }
 
589
}
 
590
 
 
591
static void free_genericstrtable(void)
 
592
{
 
593
        _free_genericstrtable(hiddescriptors);
 
594
        _free_genericstrtable(reports);
 
595
        _free_genericstrtable(huts);
 
596
        _free_genericstrtable(biass);
 
597
        _free_genericstrtable(physdess);
 
598
        _free_genericstrtable(hutus);
 
599
        _free_genericstrtable(langids);
 
600
        _free_genericstrtable(countrycodes);
 
601
}
 
602
 
470
603
#define DBG(x)
471
604
 
472
605
static void parse(usb_file f)
816
949
        usb_close(f);
817
950
        return 0;
818
951
}
 
952
 
 
953
void names_exit(void)
 
954
{
 
955
        free_vendor();
 
956
        free_product();
 
957
        free_class();
 
958
        free_subclass();
 
959
        free_protocol();
 
960
        free_audioterminal();
 
961
        free_videoterminal();
 
962
        free_genericstrtable();
 
963
}