delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/09/21/13:30:50

X-Originating-IP: [65.206.121.34]
From: "Nicholas D" <noads64 AT hotmail DOT com>
To: djgpp AT delorie DOT com
Subject: Re: PCI Query
Date: Fri, 21 Sep 2001 17:27:49 +0000
Mime-Version: 1.0
Message-ID: <F175gm6qv5KYtc5CQ9f000030ca@hotmail.com>
X-OriginalArrivalTime: 21 Sep 2001 17:27:49.0544 (UTC) FILETIME=[BC6D1A80:01C142C2]
Reply-To: djgpp AT delorie DOT com

On a PC, you can also use I/O to get at PCI config space
location 0xCF8 is the PCI config space address
and location 0xCFC is the data.
The address is layed out as follows:
Bit(s)  Purpose
31      enable
30-24   reserved
23-16   bus number
15-11   device number
10-8    function number
7-2     register number

Get the pci spec for further details.

Gregory Treantos <gtreanto AT us DOT ibm DOT com> wrote in 
news:3BA8E560 DOT 3040907 AT us DOT ibm DOT com:
Is it possible to write a C program with djgpp that can poke the PCI
bus of an intel box, look for a network adapter and retrieve the
manufactures id + mac address. If so what libraries should I be looking
at. Thanks

i do not know of any libraries.
ralph brown’s interrupt list is a good starting point.
here is a quick and dirty installation check routine. use it at your own 
risk.
#include <dpmi.h>
#include <stdio.h>
#include <string.h>

int pci_chkins(void)
{
__dpmi_regs r;
memset(&r, 0, sizeof®);
r.x.ax = 0xb101;
r.d.edi = 0x0;

printf(“PCI BIOS v2.0c+ Installation Check\n”);
if( __dpmi_int(0x1a, &r) != 0 )
	{
printf(“Error executing interrupt via DPMI.\n”); return -1;
	}

printf(“AH: %2.2x. PCI BIOS 2.0c+ %s.\n”, r.h.ah,
r.h.ah == 0 ? “installed” : “not installed”); printf(“Magic EDX: %8.8lx\n”, 
r.d.edx); printf(“Protected mode entry point EDI: %8.8lx\n”, r.d.edi); 
printf(“Hardware characteristics AL: %2.2x\n”, r.h.al); printf(“Interface 
major version BH: %2.2x\n”, r.h.bh); printf(“Interface minor version BL: 
%2.2x\n”, r.h.bl); printf(“Last PCI bus on system CL: %2.2x\n”, r.h.cl);
return 0;
}

int main(void)
{
return pci_chkins();
}




C:\var>gcc pcichkins.c -o pcichkins.exe -Wall
C:\var>pcichkins
PCI BIOS v2.0c+ Installation Check
AH: 00. PCI BIOS 2.0c+ installed.
Magic EDX: 20494350
Protected mode entry point EDI: 00000000
Hardware characteristics AL: 01
Interface major version BH: 02
Interface minor version BL: 10
Last PCI bus on system CL: 00



--
A. Sinan Unur
http://www.unur.com/


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019