diff options
author | ken <ken@FreeBSD.org> | 1999-12-08 17:44:04 +0000 |
---|---|---|
committer | ken <ken@FreeBSD.org> | 1999-12-08 17:44:04 +0000 |
commit | cdf669dd0c4c5349e23a6a7b332274e7ce22ed95 (patch) | |
tree | 6f72060e6e960edfc33f6b93c4adb3a488dd32bf /sys/pci | |
parent | 9c42a64866402347e4236cd8093f94f654bae318 (diff) | |
download | FreeBSD-src-cdf669dd0c4c5349e23a6a7b332274e7ce22ed95.zip FreeBSD-src-cdf669dd0c4c5349e23a6a7b332274e7ce22ed95.tar.gz |
[ repository copy of sys/pci/pci_ioctl.h to sys/sys/pciio.h happened in the
background ]
Rename sys/pci/pci_ioctl.h to sys/sys/pciio.h to make it easier for
userland programs to use this interface. Reformat the file, and add a
BSD-style copyright to it.
Add a new man page for pci(4). The PCIOCGETCONF, PCIOCREAD, and PCIOCWRITE
ioctls are documented, but the PCIOCATTACHED ioctl is not documented
because it is not implemented.
Change includes of <pci/pci_ioctl.h> to <sys/pciio.h> or remove them
altogether. In many cases, pci_ioctl.h was unused.
Reviewed by: steve
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/pci.c | 2 | ||||
-rw-r--r-- | sys/pci/pci_ioctl.h | 128 | ||||
-rw-r--r-- | sys/pci/pcivar.h | 1 |
3 files changed, 1 insertions, 130 deletions
diff --git a/sys/pci/pci.c b/sys/pci/pci.c index a65249b..d7c6b41 100644 --- a/sys/pci/pci.c +++ b/sys/pci/pci.c @@ -54,7 +54,7 @@ #include <pci/pcireg.h> #include <pci/pcivar.h> -#include <pci/pci_ioctl.h> +#include <sys/pciio.h> #ifdef APIC_IO #include <machine/smp.h> diff --git a/sys/pci/pci_ioctl.h b/sys/pci/pci_ioctl.h deleted file mode 100644 index d460846..0000000 --- a/sys/pci/pci_ioctl.h +++ /dev/null @@ -1,128 +0,0 @@ -#ifndef _PCI_IOCTL_H -#define _PCI_IOCTL_H 1 - -#include <sys/ioccom.h> - - -#define PCI_MAXNAMELEN 16 /* max no. of characters in a device name */ - -typedef enum { - PCI_GETCONF_LAST_DEVICE, - PCI_GETCONF_LIST_CHANGED, - PCI_GETCONF_MORE_DEVS, - PCI_GETCONF_ERROR -} pci_getconf_status; - -typedef enum { - PCI_GETCONF_NO_MATCH = 0x00, - PCI_GETCONF_MATCH_BUS = 0x01, - PCI_GETCONF_MATCH_DEV = 0x02, - PCI_GETCONF_MATCH_FUNC = 0x04, - PCI_GETCONF_MATCH_NAME = 0x08, - PCI_GETCONF_MATCH_UNIT = 0x10, - PCI_GETCONF_MATCH_VENDOR = 0x20, - PCI_GETCONF_MATCH_DEVICE = 0x40, - PCI_GETCONF_MATCH_CLASS = 0x80 -} pci_getconf_flags; - -struct pcisel { - u_int8_t pc_bus; /* bus number */ - u_int8_t pc_dev; /* device on this bus */ - u_int8_t pc_func; /* function on this device */ -}; - -struct pci_conf { - struct pcisel pc_sel; /* bus+slot+function */ - u_int8_t pc_hdr; /* PCI header type */ - u_int16_t pc_subvendor; /* card vendor ID */ - u_int16_t pc_subdevice; /* card device ID, assigned by - card vendor */ - u_int16_t pc_vendor; /* chip vendor ID */ - u_int16_t pc_device; /* chip device ID, assigned by - chip vendor */ - u_int8_t pc_class; /* chip PCI class */ - u_int8_t pc_subclass; /* chip PCI subclass */ - u_int8_t pc_progif; /* chip PCI programming interface */ - u_int8_t pc_revid; /* chip revision ID */ - char pd_name[PCI_MAXNAMELEN + 1]; /* Name of peripheral - device */ - u_long pd_unit; /* Unit number */ -}; - -struct pci_match_conf { - struct pcisel pc_sel; /* bus+slot+function */ - char pd_name[PCI_MAXNAMELEN + 1]; /* Name of peripheral - device */ - u_long pd_unit; /* Unit number */ - u_int16_t pc_vendor; /* PCI Vendor ID */ - u_int16_t pc_device; /* PCI Device ID */ - u_int8_t pc_class; /* PCI class */ - pci_getconf_flags flags; /* Matching expression */ -}; - -struct pci_conf_io { - u_int32_t pat_buf_len; /* - * Length of buffer passed in from - * user space. - */ - u_int32_t num_patterns; /* - * Number of pci_match_conf structures - * passed in by the user. - */ - struct pci_match_conf *patterns; /* - * Patterns passed in by the user. - */ - u_int32_t match_buf_len;/* - * Length of match buffer passed - * in by the user. - */ - u_int32_t num_matches; /* - * Number of matches returned by - * the kernel. - */ - struct pci_conf *matches; /* - * PCI device matches returned by - * the kernel. - */ - u_int32_t offset; /* - * Passed in by the user code to - * indicate where the kernel should - * start traversing the device list. - * The value passed out by the kernel - * points to the record immediately - * after the last one returned. - * i.e. this value may be passed back - * unchanged by the user for a - * subsequent call. - */ - u_int32_t generation; /* - * PCI configuration generation. - * This only needs to be set if the - * offset is set. The kernel will - * compare its current generation - * number to the generation passed - * in by the user to determine - * whether the PCI device list has - * changed since the user last - * called the GETCONF ioctl. - */ - pci_getconf_status status; /* - * Status passed back from the - * kernel. - */ -}; - -struct pci_io { - struct pcisel pi_sel; /* device to operate on */ - int pi_reg; /* configuration register to examine */ - int pi_width; /* width (in bytes) of read or write */ - u_int32_t pi_data; /* data to write or result of read */ -}; - - -#define PCIOCGETCONF _IOWR('p', 1, struct pci_conf_io) -#define PCIOCREAD _IOWR('p', 2, struct pci_io) -#define PCIOCWRITE _IOWR('p', 3, struct pci_io) -#define PCIOCATTACHED _IOWR('p', 4, struct pci_io) - -#endif /* _PCI_IOCTL_H */ diff --git a/sys/pci/pcivar.h b/sys/pci/pcivar.h index 31cea00..510e96f 100644 --- a/sys/pci/pcivar.h +++ b/sys/pci/pcivar.h @@ -34,7 +34,6 @@ #define PCI_COMPAT #endif -#include <pci/pci_ioctl.h> /* XXX KDM */ #include <sys/queue.h> /* some PCI bus constants */ |