1 #ifndef _ISERIES_VPDINFO_H 2 #define _ISERIES_VPDINFO_H 3 /************************************************************************/ 4 /* File iSeries_VpdInfo.h created by Allan Trautman Feb 08 2001. */ 5 /************************************************************************/ 6 /* This code supports the location data fon on the IBM iSeries systems. */ 7 /* Copyright (C) 20yy <Allan H Trautman> <IBM Corp> */ 8 /* */ 9 /* This program is free software; you can redistribute it and/or modify */ 10 /* it under the terms of the GNU General Public License as published by */ 11 /* the Free Software Foundation; either version 2 of the License, or */ 12 /* (at your option) any later version. */ 13 /* */ 14 /* This program is distributed in the hope that it will be useful, */ 15 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 16 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ 17 /* GNU General Public License for more details. */ 18 /* */ 19 /* You should have received a copy of the GNU General Public License */ 20 /* along with this program; if not, write to the: */ 21 /* Free Software Foundation, Inc., */ 22 /* 59 Temple Place, Suite 330, */ 23 /* Boston, MA 02111-1307 USA */ 24 /************************************************************************/ 25 /* Change Activity: */ 26 /* Created, Feg 8, 2001 */ 27 /* Reformatted for Card, March 8, 2001 */ 28 /* End Change Activity */ 29 /************************************************************************/ 30 31 struct pci_dev; /* Forward Declare */ 32 /************************************************************************/ 33 /* Location Data extracted from the VPD list and device info. */ 34 /************************************************************************/ 35 struct LocationDataStruct { /* Location data structure for device */ 36 u16 Bus; /* iSeries Bus Number 0x00*/ 37 u16 Board; /* iSeries Board 0x02*/ 38 u8 FrameId; /* iSeries spcn Frame Id 0x04*/ 39 u8 PhbId; /* iSeries Phb Location 0x05*/ 40 u16 Card; /* iSeries Card Slot 0x06*/ 41 char CardLocation[4]; /* Char format of planar vpd 0x08*/ 42 u8 AgentId; /* iSeries AgentId 0x0C*/ 43 u8 SecondaryAgentId; /* iSeries Secondary Agent Id 0x0D*/ 44 u8 LinuxBus; /* Linux Bus Number 0x0E*/ 45 u8 LinuxDevFn; /* Linux Device Function 0x0F*/ 46 }; 47 typedef struct LocationDataStruct LocationData; 48 #define LOCATION_DATA_SIZE 16 49 50 /************************************************************************/ 51 /* Protypes */ 52 /************************************************************************/ 53 extern LocationData* iSeries_GetLocationData(struct pci_dev* PciDev); 54 extern int iSeries_Device_Information(struct pci_dev*,char*, int); 55 56 #endif /* _ISERIES_VPDINFO_H */ 57