/*-
* Copyright (c) 1997 Michael Smith
* Copyright (c) 1998 Jonathan Lemon
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef _MACHINE_PC_BIOS_H_
#define _MACHINE_PC_BIOS_H_
/*
* Signature structure for the BIOS32 Service Directory header
*/
struct bios32_SDheader
{
};
/*
* PnP BIOS presence structure
*/
struct PnPBIOS_table
{
} __packed;
/*
* PnP BIOS return codes
*/
/*
* DMI return codes
*/
/*
* format specifiers and defines for bios16()
* s = short (16 bits)
* i = int (32 bits)
* p = pointer (converted to seg:offset)
*/
/*
* PCI BIOS functions
*/
/*
* 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
{
} __packed;
struct PIR_intpin
{
} __packed;
struct PIR_entry
{
} __packed;
struct PIR_table
{
} __packed;
/*
* Int 15:E820 'SMAP' structure
*/
struct bios_smap {
} __packed;
/* Structure extended to include extended attribute field in ACPI 3.0. */
struct bios_smap_xattr {
} __packed;
/*
* System Management BIOS
*/
#define SMBIOS_OFF 0
struct smbios_eps {
};
struct smbios_structure_header {
};
#ifdef _KERNEL
struct bios_oem_signature {
} __packed;
struct bios_oem_range {
} __packed;
struct bios_oem {
} __packed;
struct segment_info {
};
struct bios_segments {
};
struct bios_regs {
};
struct bios_args {
struct bios_regs r;
};
/*
* BIOS32 Service Directory entry. Caller supplies name, bios32_SDlookup
* fills in the rest of the details.
*/
struct bios32_SDentry
{
union
{
} ident;
};
/*
* Exported lookup results
*/
extern struct bios32_SDentry PCIbios;
int sigofs);
int bios16_call(struct bios_regs *, char *);
void set_bios_selectors(struct bios_segments *, int);
#endif
#endif /* _MACHINE_PC_BIOS_H_ */