Annotation of embedaddon/pciutils/lib/names.h, revision 1.1
1.1 ! misho 1: /*
! 2: * The PCI Library -- ID to Name Translation
! 3: *
! 4: * Copyright (c) 1997--2008 Martin Mares <mj@ucw.cz>
! 5: *
! 6: * Can be freely distributed and used under the terms of the GNU GPL.
! 7: */
! 8:
! 9: #define MAX_LINE 1024
! 10:
! 11: /* names-hash.c */
! 12:
! 13: struct id_entry {
! 14: struct id_entry *next;
! 15: u32 id12, id34;
! 16: byte cat;
! 17: byte src;
! 18: char name[1];
! 19: };
! 20:
! 21: enum id_entry_type {
! 22: ID_UNKNOWN,
! 23: ID_VENDOR,
! 24: ID_DEVICE,
! 25: ID_SUBSYSTEM,
! 26: ID_GEN_SUBSYSTEM,
! 27: ID_CLASS,
! 28: ID_SUBCLASS,
! 29: ID_PROGIF
! 30: };
! 31:
! 32: enum id_entry_src {
! 33: SRC_UNKNOWN,
! 34: SRC_CACHE,
! 35: SRC_NET,
! 36: SRC_LOCAL,
! 37: };
! 38:
! 39: #define BUCKET_SIZE 8192
! 40: #define HASH_SIZE 4099
! 41:
! 42: static inline u32 id_pair(unsigned int x, unsigned int y)
! 43: {
! 44: return ((x << 16) | y);
! 45: }
! 46:
! 47: static inline unsigned int pair_first(unsigned int x)
! 48: {
! 49: return (x >> 16) & 0xffff;
! 50: }
! 51:
! 52: static inline unsigned int pair_second(unsigned int x)
! 53: {
! 54: return x & 0xffff;
! 55: }
! 56:
! 57: int pci_id_insert(struct pci_access *a, int cat, int id1, int id2, int id3, int id4, char *text, enum id_entry_src src);
! 58: char *pci_id_lookup(struct pci_access *a, int flags, int cat, int id1, int id2, int id3, int id4);
! 59:
! 60: /* names-cache.c */
! 61:
! 62: int pci_id_cache_load(struct pci_access *a, int flags);
! 63: void pci_id_cache_dirty(struct pci_access *a);
! 64: void pci_id_cache_flush(struct pci_access *a);
! 65: void pci_id_hash_free(struct pci_access *a);
! 66:
! 67: /* names-dns.c */
! 68:
! 69: char *pci_id_net_lookup(struct pci_access *a, int cat, int id1, int id2, int id3, int id4);
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>