|
|
1.1 ! root 1: #include <stdint.h> ! 2: #include <stdio.h> ! 3: #include <byteswap.h> ! 4: #include <ipxe/isa_ids.h> ! 5: ! 6: /* ! 7: * EISA and ISAPnP IDs are actually mildly human readable, though in a ! 8: * somewhat brain-damaged way. ! 9: * ! 10: */ ! 11: char * isa_id_string ( unsigned int vendor, unsigned int product ) { ! 12: static char buf[7]; ! 13: int i; ! 14: ! 15: /* Vendor ID is a compressed ASCII string */ ! 16: vendor = bswap_16 ( vendor ); ! 17: for ( i = 2 ; i >= 0 ; i-- ) { ! 18: buf[i] = ( 'A' - 1 + ( vendor & 0x1f ) ); ! 19: vendor >>= 5; ! 20: } ! 21: ! 22: /* Product ID is a 4-digit hex string */ ! 23: sprintf ( &buf[3], "%04x", bswap_16 ( product ) ); ! 24: ! 25: return buf; ! 26: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.