[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] memmap: add necessary definitions



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1179777578 21600
# Node ID 0dc47397aad88243df07ca13f7d382a322e91f67
# Parent  1d74c51c2d5aefbb49b27ec123ad09965c40d775
[IA64] memmap: add necessary definitions

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 tools/libxc/ia64/aclinux.h |  111 +++++++++++++++++++++++++++++++++++++++++++++
 tools/libxc/ia64/sal.h     |   71 ++++++++++++++++++++++++++++
 tools/libxc/xc_efi.h       |   77 +++++++++++++++++++++++++++++++
 3 files changed, 259 insertions(+)

diff -r 1d74c51c2d5a -r 0dc47397aad8 tools/libxc/ia64/aclinux.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/libxc/ia64/aclinux.h        Mon May 21 13:59:38 2007 -0600
@@ -0,0 +1,111 @@
+/******************************************************************************
+ *
+ * Name: aclinux.h - OS specific defines, etc.
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2005, R. Byron Moore
+ * 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,
+ *    without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ *    substantially similar to the "NO WARRANTY" disclaimer below
+ *    ("Disclaimer") and any redistribution must be conditioned upon
+ *    including a substantially similar Disclaimer requirement for further
+ *    binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ *    of any contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES.
+ */
+
+#ifndef __ACLINUX_H__
+#define __ACLINUX_H__
+
+#define ACPI_USE_SYSTEM_CLIBRARY
+#define ACPI_USE_DO_WHILE_0
+
+#if 0 /* def __KERNEL__ */
+
+#include <xen/config.h>
+#include <xen/string.h>
+#include <xen/kernel.h>
+#include <xen/ctype.h>
+#include <asm/system.h>
+#include <asm/atomic.h>
+#include <asm/div64.h>
+#include <asm/acpi.h>
+
+#define strtoul simple_strtoul
+
+#define ACPI_MACHINE_WIDTH  BITS_PER_LONG
+
+#else /* !__KERNEL__ */
+
+#include <stdarg.h>
+#include <string.h>
+//#include <stdlib.h>
+#include <ctype.h>
+#include <unistd.h>
+
+#if defined(__ia64__) || defined(__x86_64__)
+#define ACPI_MACHINE_WIDTH          64
+#define COMPILER_DEPENDENT_INT64    long
+#define COMPILER_DEPENDENT_UINT64   unsigned long
+#else
+#define ACPI_MACHINE_WIDTH          32
+#define COMPILER_DEPENDENT_INT64    long long
+#define COMPILER_DEPENDENT_UINT64   unsigned long long
+#define ACPI_USE_NATIVE_DIVIDE
+#endif
+
+typedef int8_t         s8;
+typedef uint8_t                u8;
+typedef int16_t                s16;
+typedef uint16_t       u16;
+typedef int32_t                s32;
+typedef uint32_t       u32;
+typedef int64_t                s64;
+typedef uint64_t       u64;
+#define __iomem
+#ifdef __ia64__
+#ifdef __cplusplus
+#define CPP_ASMLINKAGE extern "C"
+#else
+#define CPP_ASMLINKAGE
+#endif
+#define asmlinkage CPP_ASMLINKAGE __attribute__((syscall_linkage))
+#endif
+#define CONFIG_ACPI_BOOT       1
+
+#define __cdecl
+#define ACPI_FLUSH_CPU_CACHE()
+#endif /* __KERNEL__ */
+
+/* Linux uses GCC */
+
+#include "acgcc.h"
+
+#endif /* __ACLINUX_H__ */
diff -r 1d74c51c2d5a -r 0dc47397aad8 tools/libxc/ia64/sal.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/libxc/ia64/sal.h    Mon May 21 13:59:38 2007 -0600
@@ -0,0 +1,71 @@
+#ifndef XC_IA64_SAL_H
+#define XC_IA64_SAL_H
+
+/*
+ * definitions from
+ * xen/include/asm-ia64/linux/asm/sal.h
+ */
+
+/*
+ * The SAL system table is followed by a variable number of variable
+ * length descriptors.  The structure of these descriptors follows
+ * below.
+ * The defininition follows SAL specs from July 2000
+ */
+struct ia64_sal_systab {
+       uint8_t signature[4];   /* should be "SST_" */
+       uint32_t size;          /* size of this table in bytes */
+       uint8_t sal_rev_minor;
+       uint8_t sal_rev_major;
+       uint16_t entry_count;   /* # of entries in variable portion */
+       uint8_t checksum;
+       uint8_t reserved1[7];
+       uint8_t sal_a_rev_minor;
+       uint8_t sal_a_rev_major;
+       uint8_t sal_b_rev_minor;
+       uint8_t sal_b_rev_major;
+       /* oem_id & product_id: terminating NUL is missing if string is exactly 
32 bytes long. */
+       uint8_t oem_id[32];
+       uint8_t product_id[32]; /* ASCII product id  */
+       uint8_t reserved2[8];
+};
+
+enum sal_systab_entry_type {
+       SAL_DESC_ENTRY_POINT = 0,
+       SAL_DESC_MEMORY = 1,
+       SAL_DESC_PLATFORM_FEATURE = 2,
+       SAL_DESC_TR = 3,
+       SAL_DESC_PTC = 4,
+       SAL_DESC_AP_WAKEUP = 5
+};
+
+typedef struct ia64_sal_desc_entry_point {
+       uint8_t type;
+       uint8_t reserved1[7];
+       uint64_t pal_proc;
+       uint64_t sal_proc;
+       uint64_t gp;
+       uint8_t reserved2[16];
+}ia64_sal_desc_entry_point_t;
+
+#define IA64_SAL_AP_EXTERNAL_INT 0
+
+typedef struct ia64_sal_desc_ap_wakeup {
+       uint8_t type;
+       uint8_t mechanism;              /* 0 == external interrupt */
+       uint8_t reserved1[6];
+       uint64_t vector;                /* interrupt vector in range 0x10-0xff 
*/
+} ia64_sal_desc_ap_wakeup_t ;
+
+//XXX should move xen_sal_data to arch-ia64.h?
+/* These are data in domain memory for SAL emulator.  */
+struct xen_sal_data {
+    /* OS boot rendez vous.  */
+    unsigned long boot_rdv_ip;
+    unsigned long boot_rdv_r1;
+
+    /* There are these for EFI_SET_VIRTUAL_ADDRESS_MAP emulation. */
+    int efi_virt_mode;          /* phys : 0 , virt : 1 */
+};
+
+#endif /* XC_IA64_SAL_H */
diff -r 1d74c51c2d5a -r 0dc47397aad8 tools/libxc/xc_efi.h
--- a/tools/libxc/xc_efi.h      Mon May 21 13:55:58 2007 -0600
+++ b/tools/libxc/xc_efi.h      Mon May 21 13:59:38 2007 -0600
@@ -13,6 +13,28 @@
  *      David Mosberger-Tang <davidm@xxxxxxxxxx>
  *      Stephane Eranian <eranian@xxxxxxxxxx>
  */
+
+typedef struct {
+        uint8_t b[16];
+} efi_guid_t;
+
+#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
+((efi_guid_t) \
+{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
+  (b) & 0xff, ((b) >> 8) & 0xff, \
+  (c) & 0xff, ((c) >> 8) & 0xff, \
+  (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
+
+/*
+ * Generic EFI table header
+ */
+typedef        struct {
+       uint64_t signature;
+       uint32_t revision;
+       uint32_t headersize;
+       uint32_t crc32;
+       uint32_t reserved;
+} efi_table_hdr_t;
 
 /*
  * Memory map descriptor:
@@ -65,4 +87,59 @@ typedef struct {
 #endif
 } efi_memory_desc_t;
 
+/*
+ * EFI Runtime Services table
+ */
+#define EFI_RUNTIME_SERVICES_SIGNATURE ((uint64_t)0x5652453544e5552ULL)
+#define EFI_RUNTIME_SERVICES_REVISION  0x00010000
+
+typedef struct {
+       efi_table_hdr_t hdr;
+       unsigned long get_time;
+       unsigned long set_time;
+       unsigned long get_wakeup_time;
+       unsigned long set_wakeup_time;
+       unsigned long set_virtual_address_map;
+       unsigned long convert_pointer;
+       unsigned long get_variable;
+       unsigned long get_next_variable;
+       unsigned long set_variable;
+       unsigned long get_next_high_mono_count;
+       unsigned long reset_system;
+} efi_runtime_services_t;
+
+/*
+ *  EFI Configuration Table and GUID definitions
+ */
+#define NULL_GUID \
+    EFI_GUID(  0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
0x00, 0x00 )
+#define ACPI_20_TABLE_GUID    \
+    EFI_GUID(  0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 
0x88, 0x81 )
+#define SAL_SYSTEM_TABLE_GUID    \
+    EFI_GUID(  0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 
0xc1, 0x4d )
+
+typedef struct {
+       efi_guid_t guid;
+       unsigned long table;
+} efi_config_table_t;
+
+#define EFI_SYSTEM_TABLE_SIGNATURE ((uint64_t)0x5453595320494249ULL)
+#define EFI_SYSTEM_TABLE_REVISION  ((1 << 16) | 00)
+
+typedef struct {
+       efi_table_hdr_t hdr;
+       unsigned long fw_vendor;        /* physical addr of CHAR16 vendor 
string */
+       uint32_t fw_revision;
+       unsigned long con_in_handle;
+       unsigned long con_in;
+       unsigned long con_out_handle;
+       unsigned long con_out;
+       unsigned long stderr_handle;
+       unsigned long stderr;
+       efi_runtime_services_t *runtime;
+       unsigned long boottime;
+       unsigned long nr_tables;
+       unsigned long tables;
+} efi_system_table_t;
+
 #endif /* XC_EFI_H */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.