/* $NetBSD: dig64.h,v 1.1 2006/04/07 14:21:18 cherry Exp $ */ | |
/*- | |
* Copyright (c) 2002 Marcel Moolenaar | |
* 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 | |
* documentation and/or other materials provided with the distribution. | |
* | |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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_DIG64_H_ | |
#define _MACHINE_DIG64_H_ | |
struct dig64_gas { | |
uint8_t addr_space; | |
uint8_t bit_width; | |
uint8_t bit_offset; | |
uint8_t _reserved_; | |
/* | |
* XXX using a 64-bit type for the address would cause padding and | |
* using __packed would cause unaligned accesses... | |
*/ | |
uint32_t addr_low; | |
uint32_t addr_high; | |
}; | |
struct dig64_hcdp_entry { | |
uint8_t type; | |
#define DIG64_HCDP_CONSOLE 0 | |
#define DIG64_HCDP_DBGPORT 1 | |
uint8_t databits; | |
uint8_t parity; | |
uint8_t stopbits; | |
uint8_t pci_segment; | |
uint8_t pci_bus; | |
uint8_t pci_device:5; | |
uint8_t _reserved1_:3; | |
uint8_t pci_function:3; | |
uint8_t _reserved2_:3; | |
uint8_t interrupt:1; | |
uint8_t pci_flag:1; | |
/* | |
* XXX using a 64-bit type for the baudrate would cause padding and | |
* using __packed would cause unaligned accesses... | |
*/ | |
uint32_t baud_low; | |
uint32_t baud_high; | |
struct dig64_gas address; | |
uint16_t pci_devid; | |
uint16_t pci_vendor; | |
uint32_t irq; | |
uint32_t pclock; | |
uint8_t pci_interface; | |
uint8_t _reserved3_[7]; | |
}; | |
struct dig64_hcdp_table { | |
char signature[4]; | |
#define HCDP_SIGNATURE "HCDP" | |
uint32_t length; | |
uint8_t revision; | |
uint8_t checksum; | |
char oem_id[6]; | |
char oem_tbl_id[8]; | |
uint32_t oem_rev; | |
char creator_id[4]; | |
uint32_t creator_rev; | |
uint32_t entries; | |
struct dig64_hcdp_entry entry[1]; | |
}; | |
#endif |