aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include/pc
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2000-10-16 19:49:30 +0000
committerWarner Losh <imp@FreeBSD.org>2000-10-16 19:49:30 +0000
commit29f0d43398d2c857c1754b3a3a454014a9fcfe37 (patch)
tree5896e19aeac39cdbe9376f810f9e08eca92b65f6 /sys/amd64/include/pc
parent8302c16686caed1a545d5eb70d91e6462aa567ee (diff)
downloadsrc-29f0d43398d2c857c1754b3a3a454014a9fcfe37.tar.gz
src-29f0d43398d2c857c1754b3a3a454014a9fcfe37.zip
Add types and prototypes.
Submitted by: msmith
Notes
Notes: svn path=/head/; revision=67223
Diffstat (limited to 'sys/amd64/include/pc')
-rw-r--r--sys/amd64/include/pc/bios.h46
1 files changed, 45 insertions, 1 deletions
diff --git a/sys/amd64/include/pc/bios.h b/sys/amd64/include/pc/bios.h
index 9df5a0dcaae6..7a838b8cb055 100644
--- a/sys/amd64/include/pc/bios.h
+++ b/sys/amd64/include/pc/bios.h
@@ -220,6 +220,51 @@ extern int bios32(struct bios_regs *, u_int, u_short);
extern void set_bios_selectors(struct bios_segments *, int);
/*
+ * PCI interrupt routing table.
+ *
+ * $PIR in the BIOS segment contains a PIR_table
+ * int 1a:b106 returns PIR_table in buffer at es:(e)di
+ * int 1a:b18e returns PIR_table in buffer at es:(e)di
+ * int 1a:b406 returns es:di pointing to the BIOS PIR_table
+ */
+struct PIR_header
+{
+ int8_t ph_signature[4];
+ u_int16_t ph_version;
+ u_int16_t ph_length;
+ u_int8_t ph_router_bus;
+ u_int8_t ph_router_dev_fn;
+ u_int16_t ph_pci_irqs;
+ u_int16_t ph_router_vendor;
+ u_int16_t ph_router_device;
+ u_int32_t ph_miniport;
+ u_int8_t ph_res[11];
+ u_int8_t ph_checksum;
+} __attribute__ ((packed));
+
+struct PIR_intpin
+{
+ u_int8_t link;
+ u_int16_t irqs;
+} __attribute__ ((packed));
+
+struct PIR_entry
+{
+ u_int8_t pe_bus;
+ u_int8_t pe_res1:3;
+ u_int8_t pe_device:5;
+ struct PIR_intpin pe_intpin[4];
+ u_int8_t pe_slot;
+ u_int8_t pe_res3;
+} __attribute__ ((packed));
+
+struct PIR_table
+{
+ struct PIR_header pt_header;
+ struct PIR_entry pt_entry[0];
+} __attribute__ ((packed));
+
+/*
* Int 15:E820 'SMAP' structure
*
* XXX add constants for type
@@ -230,4 +275,3 @@ struct bios_smap {
u_int64_t length;
u_int32_t type;
} __attribute__ ((packed));
-