/*
- * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved.
*
* @APPLE_LICENSE_HEADER_START@
*
- * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights
+ * Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
* Reserved. This file contains Original Code and/or Modifications of
* Original Code as defined in and that are subject to the Apple Public
- * Source License Version 1.1 (the "License"). You may not use this file
+ * Source License Version 2.0 (the "License"). You may not use this file
* except in compliance with the License. Please obtain a copy of the
* License at http://www.apple.com/publicsource and read it before using
* this file.
#ifndef __LIBSAIO_BIOS_H
#define __LIBSAIO_BIOS_H
+#include <pexpert/i386/boot.h>
+
typedef union {
unsigned int rx;
unsigned short rr;
machineFlags_t flags;
} biosBuf_t;
+#define EBIOS_FIXED_DISK_ACCESS 0x01
+#define EBIOS_LOCKING_ACCESS 0x02
+#define EBIOS_ENHANCED_DRIVE_INFO 0x04
+
+#define BASE_HD_DRIVE 0x80
+
+#if 0
+/*
+ * ACPI defined memory range types.
+ */
+enum {
+ kMemoryRangeUsable = 1, // RAM usable by the OS.
+ kMemoryRangeReserved = 2, // Reserved. (Do not use)
+ kMemoryRangeACPI = 3, // ACPI tables. Can be reclaimed.
+ kMemoryRangeNVS = 4, // ACPI NVS memory. (Do not use)
+
+ /* Undefined types should be treated as kMemoryRangeReserved */
+};
+#endif
+
+/*
+ * Memory range descriptor.
+ */
+typedef struct MemoryRange {
+ unsigned long long base; // 64-bit base address
+ unsigned long long length; // 64-bit length in bytes
+ unsigned long type; // type of memory range
+ unsigned long reserved;
+} MemoryRange;
+
#endif /* !__LIBSAIO_BIOS_H */