~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/ipxe/src/drivers/bus/isa_ids.c

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
}