]> git.proxmox.com Git - mirror_edk2.git/blob - StdLib/Include/Ipf/machine/dig64.h
Standard Libraries for EDK II.
[mirror_edk2.git] / StdLib / Include / Ipf / machine / dig64.h
1 /* $NetBSD: dig64.h,v 1.1 2006/04/07 14:21:18 cherry Exp $ */
2
3 /*-
4 * Copyright (c) 2002 Marcel Moolenaar
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $FreeBSD$
29 */
30
31 #ifndef _MACHINE_DIG64_H_
32 #define _MACHINE_DIG64_H_
33
34 struct dig64_gas {
35 uint8_t addr_space;
36 uint8_t bit_width;
37 uint8_t bit_offset;
38 uint8_t _reserved_;
39 /*
40 * XXX using a 64-bit type for the address would cause padding and
41 * using __packed would cause unaligned accesses...
42 */
43 uint32_t addr_low;
44 uint32_t addr_high;
45 };
46
47 struct dig64_hcdp_entry {
48 uint8_t type;
49 #define DIG64_HCDP_CONSOLE 0
50 #define DIG64_HCDP_DBGPORT 1
51 uint8_t databits;
52 uint8_t parity;
53 uint8_t stopbits;
54 uint8_t pci_segment;
55 uint8_t pci_bus;
56 uint8_t pci_device:5;
57 uint8_t _reserved1_:3;
58 uint8_t pci_function:3;
59 uint8_t _reserved2_:3;
60 uint8_t interrupt:1;
61 uint8_t pci_flag:1;
62 /*
63 * XXX using a 64-bit type for the baudrate would cause padding and
64 * using __packed would cause unaligned accesses...
65 */
66 uint32_t baud_low;
67 uint32_t baud_high;
68 struct dig64_gas address;
69 uint16_t pci_devid;
70 uint16_t pci_vendor;
71 uint32_t irq;
72 uint32_t pclock;
73 uint8_t pci_interface;
74 uint8_t _reserved3_[7];
75 };
76
77 struct dig64_hcdp_table {
78 char signature[4];
79 #define HCDP_SIGNATURE "HCDP"
80 uint32_t length;
81 uint8_t revision;
82 uint8_t checksum;
83 char oem_id[6];
84 char oem_tbl_id[8];
85 uint32_t oem_rev;
86 char creator_id[4];
87 uint32_t creator_rev;
88 uint32_t entries;
89 struct dig64_hcdp_entry entry[1];
90 };
91
92 #endif