POK
/home/jaouen/pok_official/pok/trunk/libpok/include/arch/x86/pci.h
00001 /*
00002  *                               POK header
00003  * 
00004  * The following file is a part of the POK project. Any modification should
00005  * made according to the POK licence. You CANNOT use this file or a part of
00006  * this file is this part of a file for your own project
00007  *
00008  * For more information on the POK licence, please see our LICENCE FILE
00009  *
00010  * Please follow the coding guidelines described in doc/CODING_GUIDELINES
00011  *
00012  *                                      Copyright (c) 2007-2009 POK team 
00013  *
00014  * Created by laurent on Mon Jun 08 11:14:44 2009 
00015  */
00016 
00017 #ifdef POK_NEEDS_PCI
00018 
00019 # ifndef __POK_x86_PCI_H__
00020 #  define __POK_X86_PCI_H__
00021 
00022 #  include <types.h>
00023 #  include <core/syscall.h>
00024 
00025 /*
00026  * Structure to holds some device information
00027  */
00028 typedef struct
00029 {
00030   uint16_t      bus;
00031   uint16_t      dev;
00032   uint16_t      fun;
00033   uint16_t      vendorid;
00034   uint16_t      deviceid;
00035   uint16_t      irq_line;
00036   uint16_t      io_range;
00037   uint32_t      bar[6];
00038   uint32_t      addr;
00039   void*         irq_handler;
00040 } s_pci_device;
00041 
00042 pok_ret_t pci_register(s_pci_device* dev);
00043 
00044 # endif /* __POK_X86_PCI_H__ */
00045 
00046 #endif /* POK_NEEDS_PCI */