]> git.saurik.com Git - apple/boot.git/blob - i386/libsaio/bios.h
a7064521d9c4cb94c7f01d7542077253cf4c2990
[apple/boot.git] / i386 / libsaio / bios.h
1 /*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
7 *
8 * This file contains Original Code and/or Modifications of Original Code
9 * as defined in and that are subject to the Apple Public Source License
10 * Version 2.0 (the 'License'). You may not use this file except in
11 * compliance with the License. Please obtain a copy of the License at
12 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * file.
14 *
15 * The Original Code and all software distributed under the License are
16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
20 * Please see the License for the specific language governing rights and
21 * limitations under the License.
22 *
23 * @APPLE_LICENSE_HEADER_END@
24 */
25 /*
26 * Copyright 1994 NeXT Computer, Inc.
27 * All rights reserved.
28 */
29
30 #ifndef __LIBSAIO_BIOS_H
31 #define __LIBSAIO_BIOS_H
32
33 #include <pexpert/i386/boot.h>
34
35 typedef union {
36 unsigned int rx;
37 unsigned short rr;
38 struct {
39 unsigned char l;
40 unsigned char h;
41 } r;
42 } machineRegister_t;
43
44 typedef struct {
45 unsigned short cf :1;
46 unsigned short :1;
47 unsigned short pf :1;
48 unsigned short :1;
49 unsigned short af :1;
50 unsigned short :1;
51 unsigned short zf :1;
52 unsigned short sf :1;
53 unsigned short tf :1;
54 unsigned short _if :1;
55 unsigned short df :1;
56 unsigned short of :1;
57 unsigned short iopl:2;
58 unsigned short nt :1;
59 } machineFlags_t;
60
61 typedef struct {
62 unsigned int intno;
63 machineRegister_t eax;
64 machineRegister_t ebx;
65 machineRegister_t ecx;
66 machineRegister_t edx;
67 machineRegister_t edi;
68 machineRegister_t esi;
69 machineRegister_t ebp;
70 unsigned short cs;
71 unsigned short ds;
72 unsigned short es;
73 machineFlags_t flags;
74 } biosBuf_t;
75
76 #define EBIOS_FIXED_DISK_ACCESS 0x01
77 #define EBIOS_LOCKING_ACCESS 0x02
78 #define EBIOS_ENHANCED_DRIVE_INFO 0x04
79
80 #define BASE_HD_DRIVE 0x80
81
82 #endif /* !__LIBSAIO_BIOS_H */