summaryrefslogtreecommitdiff
path: root/sys/arch/sgi/include/arcbios.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/sgi/include/arcbios.h')
-rw-r--r--sys/arch/sgi/include/arcbios.h475
1 files changed, 0 insertions, 475 deletions
diff --git a/sys/arch/sgi/include/arcbios.h b/sys/arch/sgi/include/arcbios.h
deleted file mode 100644
index a0b3ff03fac..00000000000
--- a/sys/arch/sgi/include/arcbios.h
+++ /dev/null
@@ -1,475 +0,0 @@
-/* $OpenBSD: arcbios.h,v 1.1 2004/08/06 21:12:18 pefo Exp $ */
-/* $NetBSD: arcbios.h,v 1.5 2004/04/10 19:32:53 pooka Exp $ */
-
-/*-
- * Copyright (c) 2001 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Jason R. Thorpe.
- *
- * 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.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``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 FOUNDATION OR CONTRIBUTORS
- * 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.
- */
-
-/*
- * The ARC BIOS (which is similar, but not 100% compatible with SGI ARCS)
- * specification can be found at:
- *
- * http://www.microsoft.com/hwdev/download/respec/riscspec.zip
- */
-
-#ifndef _ARCBIOS_H_
-#define _ARCBIOS_H_
-
-#define ARCBIOS_STDIN 0
-#define ARCBIOS_STDOUT 1
-
-#define ARCBIOS_PAGESIZE 4096
-
-/* ARC BIOS status codes. */
-#define ARCBIOS_ESUCCESS 0 /* Success */
-#define ARCBIOS_E2BIG 1 /* argument list too long */
-#define ARCBIOS_EACCES 2 /* permission denied */
-#define ARCBIOS_EAGAIN 3 /* resource temporarily unavailable */
-#define ARCBIOS_EBADF 4 /* bad file number */
-#define ARCBIOS_EBUSY 5 /* device or resource busy */
-#define ARCBIOS_EFAULT 6 /* bad address */
-#define ARCBIOS_EINVAL 7 /* invalid argument */
-#define ARCBIOS_EIO 8 /* I/O error */
-#define ARCBIOS_EISDIR 9 /* is a directory */
-#define ARCBIOS_EMFILE 10 /* too many open files */
-#define ARCBIOS_EMLINK 11 /* too many links */
-#define ARCBIOS_ENAMETOOLONG 12 /* file name too long */
-#define ARCBIOS_ENODEV 13 /* no such device */
-#define ARCBIOS_ENOENT 14 /* no such file or directory */
-#define ARCBIOS_ENOEXEC 15 /* exec format error */
-#define ARCBIOS_ENOMEM 16 /* out of memory */
-#define ARCBIOS_ENOSPC 17 /* no space left on device */
-#define ARCBIOS_ENOTDIR 18 /* not a directory */
-#define ARCBIOS_ENOTTY 19 /* not a typewriter */
-#define ARCBIOS_ENXIO 20 /* media not loaded */
-#define ARCBIOS_EROFS 21 /* read-only file system */
-#if defined(__sgi__)
-#define ARCBIOS_EADDRNOTAVAIL 31 /* address not available */
-#define ARCBIOS_ETIMEDOUT 32 /* operation timed out */
-#define ARCBIOS_ECONNABORTED 33 /* connection aborted */
-#define ARCBIOS_ENOCONNECT 34 /* not connected */
-#endif /* __sgi__ */
-
-/*
- * 4.2.2: System Parameter Block
- */
-struct arcbios_spb {
- uint32_t SPBSignature;
- uint32_t SPBLength;
- uint16_t Version;
- uint16_t Revision;
- void *RestartBlock;
- void *DebugBlock;
- void *GEVector;
- void *UTLBMissVector;
- uint32_t FirmwareVectorLength;
- void *FirmwareVector;
- uint32_t PrivateVectorLength;
- void *PrivateVector;
- uint32_t AdapterCount;
- uint32_t AdapterType;
- uint32_t AdapterVectorLength;
- void *AdapterVector;
-};
-
-#define ARCBIOS_SPB_SIGNATURE 0x53435241 /* A R C S */
-#define ARCBIOS_SPB_SIGNATURE_1 0x41524353 /* S C R A */
-
-/*
- * 4.2.5: System Configuration Data
- */
-struct arcbios_component {
- uint32_t Class;
- uint32_t Type;
- uint32_t Flags;
- uint16_t Version;
- uint16_t Revision;
- uint32_t Key;
- uint32_t AffinityMask;
- uint32_t ConfigurationDataSize;
- uint32_t IdentifierLength;
- char *Identifier;
-};
-
-/*
- * SGI ARCS likes to be `special', so it moved some of the class/type
- * numbers around from the ARC standard definitions.
- */
-#if defined(__sgi__)
-/* Component Class */
-#define COMPONENT_CLASS_SystemClass 0
-#define COMPONENT_CLASS_ProcessorClass 1
-#define COMPONENT_CLASS_CacheClass 2
-#define COMPONENT_CLASS_MemoryClass 3
-#define COMPONENT_CLASS_AdapterClass 4
-#define COMPONENT_CLASS_ControllerClass 5
-#define COMPONENT_CLASS_PeripheralClass 6
-#else
-/* Component Class */
-#define COMPONENT_CLASS_SystemClass 0
-#define COMPONENT_CLASS_ProcessorClass 1
-#define COMPONENT_CLASS_CacheClass 2
-#define COMPONENT_CLASS_AdapterClass 3
-#define COMPONENT_CLASS_ControllerClass 4
-#define COMPONENT_CLASS_PeripheralClass 5
-#define COMPONENT_CLASS_MemoryClass 6
-#endif
-
-/* Component Types */
-#if defined(__sgi__)
-/* System Class */
-#define COMPONENT_TYPE_ARC 0
-
-/* Processor Class */
-#define COMPONENT_TYPE_CPU 1
-#define COMPONENT_TYPE_FPU 2
-
-/* Cache Class */
-#define COMPONENT_TYPE_PrimaryICache 3
-#define COMPONENT_TYPE_PrimaryDCache 4
-#define COMPONENT_TYPE_SecondaryICache 5
-#define COMPONENT_TYPE_SecondaryDCache 6
-#define COMPONENT_TYPE_SecondaryCache 7
-
-/* Memory Class */
-#define COMPONENT_TYPE_MemoryUnit 8
-
-/* Adapter Class */
-#define COMPONENT_TYPE_EISAAdapter 9
-#define COMPONENT_TYPE_TCAdapter 10
-#define COMPONENT_TYPE_SCSIAdapter 11
-#define COMPONENT_TYPE_DTIAdapter 12
-#define COMPONENT_TYPE_MultiFunctionAdapter 13
-
-/* Controller Class */
-#define COMPONENT_TYPE_DiskController 14
-#define COMPONENT_TYPE_TapeController 15
-#define COMPONENT_TYPE_CDROMController 16
-#define COMPONENT_TYPE_WORMController 17
-#define COMPONENT_TYPE_SerialController 18
-#define COMPONENT_TYPE_NetworkController 19
-#define COMPONENT_TYPE_DisplayController 20
-#define COMPONENT_TYPE_ParallelController 21
-#define COMPONENT_TYPE_PointerController 22
-#define COMPONENT_TYPE_KeyboardController 23
-#define COMPONENT_TYPE_AudioController 24
-#define COMPONENT_TYPE_OtherController 25
-
-/* Peripheral Class */
-#define COMPONENT_TYPE_DiskPeripheral 26
-#define COMPONENT_TYPE_FloppyDiskPeripheral 27
-#define COMPONENT_TYPE_TapePeripheral 28
-#define COMPONENT_TYPE_ModemPeripheral 29
-#define COMPONENT_TYPE_MonitorPeripheral 30
-#define COMPONENT_TYPE_PrinterPeripheral 31
-#define COMPONENT_TYPE_PointerPeripheral 32
-#define COMPONENT_TYPE_KeyboardPeripheral 33
-#define COMPONENT_TYPE_TerminalPeripheral 34
-#define COMPONENT_TYPE_LinePeripheral 35
-#define COMPONENT_TYPE_NetworkPeripheral 36
-#define COMPONENT_TYPE_OtherPeripheral 37
-#else /* not __sgi__ */
-/* System Class */
-#define COMPONENT_TYPE_ARC 0
-
-/* Processor Class */
-#define COMPONENT_TYPE_CPU 1
-#define COMPONENT_TYPE_FPU 2
-
-/* Cache Class */
-#define COMPONENT_TYPE_PrimaryICache 3
-#define COMPONENT_TYPE_PrimaryDCache 4
-#define COMPONENT_TYPE_SecondaryICache 5
-#define COMPONENT_TYPE_SecondaryDCache 6
-#define COMPONENT_TYPE_SecondaryCache 7
-
-/* Adapter Class */
-#define COMPONENT_TYPE_EISAAdapter 8
-#define COMPONENT_TYPE_TCAdapter 9
-#define COMPONENT_TYPE_SCSIAdapter 10
-#define COMPONENT_TYPE_DTIAdapter 11
-#define COMPONENT_TYPE_MultiFunctionAdapter 12
-
-/* Controller Class */
-#define COMPONENT_TYPE_DiskController 13
-#define COMPONENT_TYPE_TapeController 14
-#define COMPONENT_TYPE_CDROMController 15
-#define COMPONENT_TYPE_WORMController 16
-#define COMPONENT_TYPE_SerialController 17
-#define COMPONENT_TYPE_NetworkController 18
-#define COMPONENT_TYPE_DisplayController 19
-#define COMPONENT_TYPE_ParallelController 20
-#define COMPONENT_TYPE_PointerController 21
-#define COMPONENT_TYPE_KeyboardController 22
-#define COMPONENT_TYPE_AudioController 23
-#define COMPONENT_TYPE_OtherController 24
-
-/* Peripheral Class */
-#define COMPONENT_TYPE_DiskPeripheral 25
-#define COMPONENT_TYPE_FloppyDiskPeripheral 26
-#define COMPONENT_TYPE_TapePeripheral 27
-#define COMPONENT_TYPE_ModemPeripheral 28
-#define COMPONENT_TYPE_MonitorPeripheral 29
-#define COMPONENT_TYPE_PrinterPeripheral 30
-#define COMPONENT_TYPE_PointerPeripheral 31
-#define COMPONENT_TYPE_KeyboardPeripheral 32
-#define COMPONENT_TYPE_TerminalPeripheral 33
-#define COMPONENT_TYPE_OtherPeripheral 34
-#define COMPONENT_TYPE_LinePeripheral 35
-#define COMPONENT_TYPE_NetworkPeripheral 36
-
-/* Memory Class */
-#define COMPONENT_TYPE_MemoryUnit 37
-#endif
-
-/* Component flags */
-#define COMPONENT_FLAG_Failed 1
-#define COMPONENT_FLAG_ReadOnly 2
-#define COMPONENT_FLAG_Removable 4
-#define COMPONENT_FLAG_ConsoleIn 8
-#define COMPONENT_FLAG_ConsoleOut 16
-#define COMPONENT_FLAG_Input 32
-#define COMPONENT_FLAG_Output 64
-
-/* Key for Cache: */
-#define COMPONENT_KEY_Cache_CacheSize(x) \
- (ARCBIOS_PAGESIZE << ((x) & 0xffff))
-#define COMPONENT_KEY_Cache_LineSize(x) \
- (1U << (((x) >> 16) & 0xff))
-#define COMPONENT_KEY_Cache_RefillSize(x) \
- (((x) >> 24) & 0xff)
-
-/*
- * ARC system ID
- */
-#define ARCBIOS_SYSID_FIELDLEN 8
-struct arcbios_sysid {
- char VendorId[ARCBIOS_SYSID_FIELDLEN];
- char ProductId[ARCBIOS_SYSID_FIELDLEN];
-};
-
-/*
- * ARC memory descriptor
- */
-struct arcbios_mem {
- uint32_t Type;
- uint32_t BasePage;
- uint32_t PageCount;
-};
-
-#if defined(__sgi__)
-#define ARCBIOS_MEM_ExceptionBlock 0
-#define ARCBIOS_MEM_SystemParameterBlock 1
-#define ARCBIOS_MEM_FreeContiguous 2
-#define ARCBIOS_MEM_FreeMemory 3
-#define ARCBIOS_MEM_BadMemory 4
-#define ARCBIOS_MEM_LoadedProgram 5
-#define ARCBIOS_MEM_FirmwareTemporary 6
-#define ARCBIOS_MEM_FirmwarePermanent 7
-#elif defined(arc)
-#define ARCBIOS_MEM_ExceptionBlock 0
-#define ARCBIOS_MEM_SystemParameterBlock 1
-#define ARCBIOS_MEM_FreeMemory 2
-#define ARCBIOS_MEM_BadMemory 3
-#define ARCBIOS_MEM_LoadedProgram 4
-#define ARCBIOS_MEM_FirmwareTemporary 5
-#define ARCBIOS_MEM_FirmwarePermanent 6
-#define ARCBIOS_MEM_FreeContiguous 7
-#endif
-
-/*
- * ARC display status
- */
-struct arcbios_dsp_stat {
- uint16_t CursorXPosition;
- uint16_t CursorYPosition;
- uint16_t CursorMaxXPosition;
- uint16_t CursorMaxYPosition;
- uint8_t ForegroundColor;
- uint8_t BackgroundColor;
- uint8_t HighIntensity;
- uint8_t Underscored;
- uint8_t ReverseVideo;
-};
-
-/*
- * ARC firmware vector
- */
-struct arcbios_fv {
- uint32_t (*Load)(
- char *, /* image to load */
- uint32_t, /* top address */
- uint32_t, /* entry address */
- uint32_t *); /* low address */
-
- uint32_t (*Invoke)(
- uint32_t, /* entry address */
- uint32_t, /* stack address */
- uint32_t, /* argc */
- char **, /* argv */
- char **); /* envp */
-
- uint32_t (*Execute)(
- char *, /* image path */
- uint32_t, /* argc */
- char **, /* argv */
- char **); /* envp */
-
- void (*Halt)(void)
- __attribute__((__noreturn__));
-
- void (*PowerDown)(void)
- __attribute__((__noreturn__));
-
- void (*Restart)(void)
- __attribute__((__noreturn__));
-
- void (*Reboot)(void)
- __attribute__((__noreturn__));
-
- void (*EnterInteractiveMode)(void)
- __attribute__((__noreturn__));
-#if defined(__sgi__)
- void *reserved0;
-#else
- void (*ReturnFromMain)(void)
- __attribute__((__noreturn__));
-#endif
- void *(*GetPeer)(
- void *); /* component */
-
- void *(*GetChild)(
- void *); /* component */
-
- void *(*GetParent)(
- void *); /* component */
-
- uint32_t (*GetConfigurationData)(
- void *, /* configuration data */
- void *); /* component */
-
- void *(*AddChild)(
- void *, /* component */
- void *); /* new component */
-
- uint32_t (*DeleteComponent)(
- void *); /* component */
-
- uint32_t (*GetComponent)(
- char *); /* path */
-
- uint32_t (*SaveConfiguration)(void);
-
- void *(*GetSystemId)(void);
-
- void *(*GetMemoryDescriptor)(
- void *); /* memory descriptor */
-#if defined(__sgi__)
- void *reserved1;
-#else
- void (*Signal)(
- uint32_t, /* signal number */
- void *); /* handler */
-#endif
- void *(*GetTime)(void);
-
- uint32_t (*GetRelativeTime)(void);
-
- uint32_t (*GetDirectoryEntry)(
- uint32_t, /* file ID */
- void *, /* directory entry */
- uint32_t, /* length */
- uint32_t *); /* count */
-
- uint32_t (*Open)(
- char *, /* path */
- uint32_t, /* open mode */
- uint32_t *); /* file ID */
-
- uint32_t (*Close)(
- uint32_t); /* file ID */
-
- uint32_t (*Read)(
- uint32_t, /* file ID */
- void *, /* buffer */
- uint32_t, /* length */
- uint32_t *); /* count */
-
- uint32_t (*GetReadStatus)(
- uint32_t); /* file ID */
-
- uint32_t (*Write)(
- uint32_t, /* file ID */
- void *, /* buffer */
- uint32_t, /* length */
- uint32_t *); /* count */
-
- uint32_t (*Seek)(
- uint32_t, /* file ID */
- int64_t *, /* offset */
- uint32_t); /* whence */
-
- uint32_t (*Mount)(
- char *, /* path */
- uint32_t); /* operation */
-
- char *(*GetEnvironmentVariable)(
- char *); /* variable */
-
- uint32_t (*SetEnvironmentVariable)(
- char *, /* variable */
- char *); /* contents */
-
- uint32_t (*GetFileInformation)(
- uint32_t, /* file ID */
- void *); /* XXX */
-
- uint32_t (*SetFileInformation)(
- uint32_t, /* file ID */
- uint32_t, /* XXX */
- uint32_t); /* XXX */
-
- void (*FlushAllCaches)(void);
-#if !defined(__sgi__)
- uint32_t (*TestUnicode)(
- uint32_t, /* file ID */
- uint16_t); /* unicode character */
-
- void *(*GetDisplayStatus)(
- uint32_t); /* file ID */
-#endif
-};
-
-#endif /* _ARCBIOS_H_ */