1 1.13 matt /* $NetBSD: arcbios.h,v 1.13 2011/02/20 08:02:46 matt Exp $ */ 2 1.1 thorpej 3 1.1 thorpej /*- 4 1.1 thorpej * Copyright (c) 2001 The NetBSD Foundation, Inc. 5 1.1 thorpej * All rights reserved. 6 1.1 thorpej * 7 1.1 thorpej * This code is derived from software contributed to The NetBSD Foundation 8 1.1 thorpej * by Jason R. Thorpe. 9 1.1 thorpej * 10 1.1 thorpej * Redistribution and use in source and binary forms, with or without 11 1.1 thorpej * modification, are permitted provided that the following conditions 12 1.1 thorpej * are met: 13 1.1 thorpej * 1. Redistributions of source code must retain the above copyright 14 1.1 thorpej * notice, this list of conditions and the following disclaimer. 15 1.1 thorpej * 2. Redistributions in binary form must reproduce the above copyright 16 1.1 thorpej * notice, this list of conditions and the following disclaimer in the 17 1.1 thorpej * documentation and/or other materials provided with the distribution. 18 1.1 thorpej * 19 1.1 thorpej * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.1 thorpej * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.1 thorpej * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.1 thorpej * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.1 thorpej * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.1 thorpej * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.1 thorpej * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.1 thorpej * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.1 thorpej * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.1 thorpej * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.1 thorpej * POSSIBILITY OF SUCH DAMAGE. 30 1.1 thorpej */ 31 1.1 thorpej 32 1.1 thorpej /* 33 1.1 thorpej * The ARC BIOS (which is similar, but not 100% compatible with SGI ARCS) 34 1.1 thorpej * specification can be found at: 35 1.1 thorpej * 36 1.1 thorpej * http://www.microsoft.com/hwdev/download/respec/riscspec.zip 37 1.1 thorpej */ 38 1.1 thorpej 39 1.5 pooka #ifndef _ARCBIOS_H_ 40 1.5 pooka #define _ARCBIOS_H_ 41 1.5 pooka 42 1.1 thorpej #define ARCBIOS_STDIN 0 43 1.1 thorpej #define ARCBIOS_STDOUT 1 44 1.1 thorpej 45 1.1 thorpej #define ARCBIOS_PAGESIZE 4096 46 1.1 thorpej 47 1.1 thorpej /* ARC BIOS status codes. */ 48 1.1 thorpej #define ARCBIOS_ESUCCESS 0 /* Success */ 49 1.1 thorpej #define ARCBIOS_E2BIG 1 /* argument list too long */ 50 1.1 thorpej #define ARCBIOS_EACCES 2 /* permission denied */ 51 1.1 thorpej #define ARCBIOS_EAGAIN 3 /* resource temporarily unavailable */ 52 1.1 thorpej #define ARCBIOS_EBADF 4 /* bad file number */ 53 1.1 thorpej #define ARCBIOS_EBUSY 5 /* device or resource busy */ 54 1.1 thorpej #define ARCBIOS_EFAULT 6 /* bad address */ 55 1.1 thorpej #define ARCBIOS_EINVAL 7 /* invalid argument */ 56 1.1 thorpej #define ARCBIOS_EIO 8 /* I/O error */ 57 1.1 thorpej #define ARCBIOS_EISDIR 9 /* is a directory */ 58 1.1 thorpej #define ARCBIOS_EMFILE 10 /* too many open files */ 59 1.1 thorpej #define ARCBIOS_EMLINK 11 /* too many links */ 60 1.1 thorpej #define ARCBIOS_ENAMETOOLONG 12 /* file name too long */ 61 1.1 thorpej #define ARCBIOS_ENODEV 13 /* no such device */ 62 1.1 thorpej #define ARCBIOS_ENOENT 14 /* no such file or directory */ 63 1.1 thorpej #define ARCBIOS_ENOEXEC 15 /* exec format error */ 64 1.1 thorpej #define ARCBIOS_ENOMEM 16 /* out of memory */ 65 1.1 thorpej #define ARCBIOS_ENOSPC 17 /* no space left on device */ 66 1.1 thorpej #define ARCBIOS_ENOTDIR 18 /* not a directory */ 67 1.1 thorpej #define ARCBIOS_ENOTTY 19 /* not a typewriter */ 68 1.1 thorpej #define ARCBIOS_ENXIO 20 /* media not loaded */ 69 1.1 thorpej #define ARCBIOS_EROFS 21 /* read-only file system */ 70 1.1 thorpej #if defined(sgimips) 71 1.1 thorpej #define ARCBIOS_EADDRNOTAVAIL 31 /* address not available */ 72 1.1 thorpej #define ARCBIOS_ETIMEDOUT 32 /* operation timed out */ 73 1.1 thorpej #define ARCBIOS_ECONNABORTED 33 /* connection aborted */ 74 1.1 thorpej #define ARCBIOS_ENOCONNECT 34 /* not connected */ 75 1.1 thorpej #endif /* sgimips */ 76 1.1 thorpej 77 1.1 thorpej /* 78 1.1 thorpej * 4.2.2: System Parameter Block 79 1.1 thorpej */ 80 1.1 thorpej struct arcbios_spb { 81 1.13 matt uint32_t SPBSignature; 82 1.13 matt uint32_t SPBLength; 83 1.1 thorpej uint16_t Version; 84 1.1 thorpej uint16_t Revision; 85 1.13 matt int32_t RestartBlock; 86 1.13 matt int32_t DebugBlock; 87 1.13 matt int32_t GEVector; 88 1.13 matt int32_t UTLBMissVector; 89 1.13 matt uint32_t FirmwareVectorLength; 90 1.13 matt int32_t FirmwareVector; 91 1.13 matt uint32_t PrivateVectorLength; 92 1.13 matt int32_t PrivateVector; 93 1.13 matt uint32_t AdapterCount; 94 1.13 matt uint32_t AdapterType; 95 1.13 matt uint32_t AdapterVectorLength; 96 1.13 matt int32_t AdapterVector; 97 1.1 thorpej }; 98 1.1 thorpej 99 1.1 thorpej #define ARCBIOS_SPB_SIGNATURE 0x53435241 /* A R C S */ 100 1.1 thorpej #define ARCBIOS_SPB_SIGNATURE_1 0x41524353 /* S C R A */ 101 1.1 thorpej 102 1.1 thorpej /* 103 1.1 thorpej * 4.2.5: System Configuration Data 104 1.1 thorpej */ 105 1.1 thorpej struct arcbios_component { 106 1.1 thorpej uint32_t Class; 107 1.1 thorpej uint32_t Type; 108 1.1 thorpej uint32_t Flags; 109 1.1 thorpej uint16_t Version; 110 1.1 thorpej uint16_t Revision; 111 1.13 matt uint32_t Key; 112 1.13 matt uint32_t AffinityMask; 113 1.13 matt uint32_t ConfigurationDataSize; 114 1.13 matt uint32_t IdentifierLength; 115 1.13 matt int32_t Identifier; 116 1.1 thorpej }; 117 1.1 thorpej 118 1.7 perry /* 119 1.7 perry * SGI ARCS likes to be `special', so it moved some of the class/type 120 1.3 rafal * numbers around from the ARC standard definitions. 121 1.3 rafal */ 122 1.3 rafal #if defined(sgimips) 123 1.3 rafal /* Component Class */ 124 1.3 rafal #define COMPONENT_CLASS_SystemClass 0 125 1.3 rafal #define COMPONENT_CLASS_ProcessorClass 1 126 1.3 rafal #define COMPONENT_CLASS_CacheClass 2 127 1.3 rafal #define COMPONENT_CLASS_MemoryClass 3 128 1.3 rafal #define COMPONENT_CLASS_AdapterClass 4 129 1.3 rafal #define COMPONENT_CLASS_ControllerClass 5 130 1.3 rafal #define COMPONENT_CLASS_PeripheralClass 6 131 1.3 rafal #else 132 1.1 thorpej /* Component Class */ 133 1.1 thorpej #define COMPONENT_CLASS_SystemClass 0 134 1.1 thorpej #define COMPONENT_CLASS_ProcessorClass 1 135 1.1 thorpej #define COMPONENT_CLASS_CacheClass 2 136 1.1 thorpej #define COMPONENT_CLASS_AdapterClass 3 137 1.1 thorpej #define COMPONENT_CLASS_ControllerClass 4 138 1.1 thorpej #define COMPONENT_CLASS_PeripheralClass 5 139 1.1 thorpej #define COMPONENT_CLASS_MemoryClass 6 140 1.3 rafal #endif 141 1.3 rafal 142 1.3 rafal /* Component Types */ 143 1.3 rafal #if defined(sgimips) 144 1.3 rafal /* System Class */ 145 1.3 rafal #define COMPONENT_TYPE_ARC 0 146 1.3 rafal 147 1.3 rafal /* Processor Class */ 148 1.3 rafal #define COMPONENT_TYPE_CPU 1 149 1.3 rafal #define COMPONENT_TYPE_FPU 2 150 1.3 rafal 151 1.3 rafal /* Cache Class */ 152 1.3 rafal #define COMPONENT_TYPE_PrimaryICache 3 153 1.3 rafal #define COMPONENT_TYPE_PrimaryDCache 4 154 1.3 rafal #define COMPONENT_TYPE_SecondaryICache 5 155 1.3 rafal #define COMPONENT_TYPE_SecondaryDCache 6 156 1.3 rafal #define COMPONENT_TYPE_SecondaryCache 7 157 1.3 rafal 158 1.3 rafal /* Memory Class */ 159 1.3 rafal #define COMPONENT_TYPE_MemoryUnit 8 160 1.1 thorpej 161 1.3 rafal /* Adapter Class */ 162 1.3 rafal #define COMPONENT_TYPE_EISAAdapter 9 163 1.3 rafal #define COMPONENT_TYPE_TCAdapter 10 164 1.3 rafal #define COMPONENT_TYPE_SCSIAdapter 11 165 1.3 rafal #define COMPONENT_TYPE_DTIAdapter 12 166 1.3 rafal #define COMPONENT_TYPE_MultiFunctionAdapter 13 167 1.3 rafal 168 1.3 rafal /* Controller Class */ 169 1.3 rafal #define COMPONENT_TYPE_DiskController 14 170 1.3 rafal #define COMPONENT_TYPE_TapeController 15 171 1.3 rafal #define COMPONENT_TYPE_CDROMController 16 172 1.3 rafal #define COMPONENT_TYPE_WORMController 17 173 1.3 rafal #define COMPONENT_TYPE_SerialController 18 174 1.3 rafal #define COMPONENT_TYPE_NetworkController 19 175 1.3 rafal #define COMPONENT_TYPE_DisplayController 20 176 1.3 rafal #define COMPONENT_TYPE_ParallelController 21 177 1.3 rafal #define COMPONENT_TYPE_PointerController 22 178 1.3 rafal #define COMPONENT_TYPE_KeyboardController 23 179 1.3 rafal #define COMPONENT_TYPE_AudioController 24 180 1.3 rafal #define COMPONENT_TYPE_OtherController 25 181 1.3 rafal 182 1.3 rafal /* Peripheral Class */ 183 1.3 rafal #define COMPONENT_TYPE_DiskPeripheral 26 184 1.3 rafal #define COMPONENT_TYPE_FloppyDiskPeripheral 27 185 1.3 rafal #define COMPONENT_TYPE_TapePeripheral 28 186 1.3 rafal #define COMPONENT_TYPE_ModemPeripheral 29 187 1.3 rafal #define COMPONENT_TYPE_MonitorPeripheral 30 188 1.3 rafal #define COMPONENT_TYPE_PrinterPeripheral 31 189 1.3 rafal #define COMPONENT_TYPE_PointerPeripheral 32 190 1.3 rafal #define COMPONENT_TYPE_KeyboardPeripheral 33 191 1.3 rafal #define COMPONENT_TYPE_TerminalPeripheral 34 192 1.3 rafal #define COMPONENT_TYPE_LinePeripheral 35 193 1.3 rafal #define COMPONENT_TYPE_NetworkPeripheral 36 194 1.3 rafal #define COMPONENT_TYPE_OtherPeripheral 37 195 1.3 rafal #else /* not sgimips */ 196 1.1 thorpej /* System Class */ 197 1.1 thorpej #define COMPONENT_TYPE_ARC 0 198 1.1 thorpej 199 1.1 thorpej /* Processor Class */ 200 1.1 thorpej #define COMPONENT_TYPE_CPU 1 201 1.1 thorpej #define COMPONENT_TYPE_FPU 2 202 1.1 thorpej 203 1.1 thorpej /* Cache Class */ 204 1.1 thorpej #define COMPONENT_TYPE_PrimaryICache 3 205 1.1 thorpej #define COMPONENT_TYPE_PrimaryDCache 4 206 1.1 thorpej #define COMPONENT_TYPE_SecondaryICache 5 207 1.1 thorpej #define COMPONENT_TYPE_SecondaryDCache 6 208 1.1 thorpej #define COMPONENT_TYPE_SecondaryCache 7 209 1.1 thorpej 210 1.1 thorpej /* Adapter Class */ 211 1.1 thorpej #define COMPONENT_TYPE_EISAAdapter 8 212 1.1 thorpej #define COMPONENT_TYPE_TCAdapter 9 213 1.1 thorpej #define COMPONENT_TYPE_SCSIAdapter 10 214 1.1 thorpej #define COMPONENT_TYPE_DTIAdapter 11 215 1.1 thorpej #define COMPONENT_TYPE_MultiFunctionAdapter 12 216 1.1 thorpej 217 1.1 thorpej /* Controller Class */ 218 1.1 thorpej #define COMPONENT_TYPE_DiskController 13 219 1.1 thorpej #define COMPONENT_TYPE_TapeController 14 220 1.1 thorpej #define COMPONENT_TYPE_CDROMController 15 221 1.1 thorpej #define COMPONENT_TYPE_WORMController 16 222 1.1 thorpej #define COMPONENT_TYPE_SerialController 17 223 1.1 thorpej #define COMPONENT_TYPE_NetworkController 18 224 1.1 thorpej #define COMPONENT_TYPE_DisplayController 19 225 1.1 thorpej #define COMPONENT_TYPE_ParallelController 20 226 1.1 thorpej #define COMPONENT_TYPE_PointerController 21 227 1.1 thorpej #define COMPONENT_TYPE_KeyboardController 22 228 1.1 thorpej #define COMPONENT_TYPE_AudioController 23 229 1.1 thorpej #define COMPONENT_TYPE_OtherController 24 230 1.1 thorpej 231 1.1 thorpej /* Peripheral Class */ 232 1.1 thorpej #define COMPONENT_TYPE_DiskPeripheral 25 233 1.1 thorpej #define COMPONENT_TYPE_FloppyDiskPeripheral 26 234 1.1 thorpej #define COMPONENT_TYPE_TapePeripheral 27 235 1.1 thorpej #define COMPONENT_TYPE_ModemPeripheral 28 236 1.1 thorpej #define COMPONENT_TYPE_MonitorPeripheral 29 237 1.1 thorpej #define COMPONENT_TYPE_PrinterPeripheral 30 238 1.1 thorpej #define COMPONENT_TYPE_PointerPeripheral 31 239 1.1 thorpej #define COMPONENT_TYPE_KeyboardPeripheral 32 240 1.1 thorpej #define COMPONENT_TYPE_TerminalPeripheral 33 241 1.1 thorpej #define COMPONENT_TYPE_OtherPeripheral 34 242 1.1 thorpej #define COMPONENT_TYPE_LinePeripheral 35 243 1.1 thorpej #define COMPONENT_TYPE_NetworkPeripheral 36 244 1.1 thorpej 245 1.1 thorpej /* Memory Class */ 246 1.1 thorpej #define COMPONENT_TYPE_MemoryUnit 37 247 1.3 rafal #endif 248 1.1 thorpej 249 1.1 thorpej /* Component flags */ 250 1.1 thorpej #define COMPONENT_FLAG_Failed 1 251 1.1 thorpej #define COMPONENT_FLAG_ReadOnly 2 252 1.1 thorpej #define COMPONENT_FLAG_Removable 4 253 1.1 thorpej #define COMPONENT_FLAG_ConsoleIn 8 254 1.1 thorpej #define COMPONENT_FLAG_ConsoleOut 16 255 1.1 thorpej #define COMPONENT_FLAG_Input 32 256 1.1 thorpej #define COMPONENT_FLAG_Output 64 257 1.1 thorpej 258 1.1 thorpej /* Key for Cache: */ 259 1.1 thorpej #define COMPONENT_KEY_Cache_CacheSize(x) \ 260 1.1 thorpej (ARCBIOS_PAGESIZE << ((x) & 0xffff)) 261 1.1 thorpej #define COMPONENT_KEY_Cache_LineSize(x) \ 262 1.1 thorpej (1U << (((x) >> 16) & 0xff)) 263 1.1 thorpej #define COMPONENT_KEY_Cache_RefillSize(x) \ 264 1.1 thorpej (((x) >> 24) & 0xff) 265 1.1 thorpej 266 1.1 thorpej /* 267 1.1 thorpej * ARC system ID 268 1.1 thorpej */ 269 1.2 thorpej #define ARCBIOS_SYSID_FIELDLEN 8 270 1.1 thorpej struct arcbios_sysid { 271 1.2 thorpej char VendorId[ARCBIOS_SYSID_FIELDLEN]; 272 1.2 thorpej char ProductId[ARCBIOS_SYSID_FIELDLEN]; 273 1.1 thorpej }; 274 1.1 thorpej 275 1.1 thorpej /* 276 1.1 thorpej * ARC memory descriptor 277 1.1 thorpej */ 278 1.1 thorpej struct arcbios_mem { 279 1.1 thorpej uint32_t Type; 280 1.13 matt uint32_t BasePage; 281 1.13 matt uint32_t PageCount; 282 1.1 thorpej }; 283 1.1 thorpej 284 1.1 thorpej #if defined(sgimips) 285 1.4 sekiya #define ARCBIOS_MEM_ExceptionBlock 0 286 1.1 thorpej #define ARCBIOS_MEM_SystemParameterBlock 1 287 1.1 thorpej #define ARCBIOS_MEM_FreeContiguous 2 288 1.1 thorpej #define ARCBIOS_MEM_FreeMemory 3 289 1.1 thorpej #define ARCBIOS_MEM_BadMemory 4 290 1.1 thorpej #define ARCBIOS_MEM_LoadedProgram 5 291 1.1 thorpej #define ARCBIOS_MEM_FirmwareTemporary 6 292 1.1 thorpej #define ARCBIOS_MEM_FirmwarePermanent 7 293 1.1 thorpej #elif defined(arc) 294 1.1 thorpej #define ARCBIOS_MEM_ExceptionBlock 0 295 1.1 thorpej #define ARCBIOS_MEM_SystemParameterBlock 1 296 1.1 thorpej #define ARCBIOS_MEM_FreeMemory 2 297 1.1 thorpej #define ARCBIOS_MEM_BadMemory 3 298 1.1 thorpej #define ARCBIOS_MEM_LoadedProgram 4 299 1.1 thorpej #define ARCBIOS_MEM_FirmwareTemporary 5 300 1.1 thorpej #define ARCBIOS_MEM_FirmwarePermanent 6 301 1.1 thorpej #define ARCBIOS_MEM_FreeContiguous 7 302 1.1 thorpej #endif 303 1.1 thorpej 304 1.1 thorpej /* 305 1.1 thorpej * ARC display status 306 1.1 thorpej */ 307 1.1 thorpej struct arcbios_dsp_stat { 308 1.1 thorpej uint16_t CursorXPosition; 309 1.1 thorpej uint16_t CursorYPosition; 310 1.1 thorpej uint16_t CursorMaxXPosition; 311 1.1 thorpej uint16_t CursorMaxYPosition; 312 1.1 thorpej uint8_t ForegroundColor; 313 1.1 thorpej uint8_t BackgroundColor; 314 1.1 thorpej uint8_t HighIntensity; 315 1.1 thorpej uint8_t Underscored; 316 1.1 thorpej uint8_t ReverseVideo; 317 1.1 thorpej }; 318 1.1 thorpej 319 1.1 thorpej /* 320 1.1 thorpej * ARC firmware vector 321 1.1 thorpej */ 322 1.1 thorpej struct arcbios_fv { 323 1.13 matt int32_t Load; 324 1.13 matt int32_t Invoke; 325 1.13 matt int32_t Execute; 326 1.13 matt int32_t Halt; 327 1.13 matt int32_t PowerDown; 328 1.13 matt int32_t Restart; 329 1.13 matt int32_t Reboot; 330 1.13 matt int32_t EnterInteractiveMode; 331 1.13 matt int32_t ReturnFromMain; /* not on sgimips */ 332 1.13 matt int32_t GetPeer; 333 1.13 matt int32_t GetChild; 334 1.13 matt int32_t GetParent; 335 1.13 matt int32_t GetConfigurationData; 336 1.13 matt int32_t AddChild; 337 1.13 matt int32_t DeleteComponent; 338 1.13 matt int32_t GetComponent; 339 1.13 matt int32_t SaveConfiguration; 340 1.13 matt int32_t GetSystemId; 341 1.13 matt int32_t GetMemoryDescriptor; 342 1.13 matt int32_t Signal; /* not on sgimips */ 343 1.13 matt int32_t GetTime; 344 1.13 matt int32_t GetRelativeTime; 345 1.13 matt int32_t GetDirectoryEntry; 346 1.13 matt int32_t Open; 347 1.13 matt int32_t Close; 348 1.13 matt int32_t Read; 349 1.13 matt int32_t GetReadStatus; 350 1.13 matt int32_t Write; 351 1.13 matt int32_t Seek; 352 1.13 matt int32_t Mount; 353 1.13 matt int32_t GetEnvironmentVariable; 354 1.13 matt int32_t SetEnvironmentVariable; 355 1.13 matt int32_t GetFileInformation; 356 1.13 matt int32_t SetFileInformation; 357 1.13 matt int32_t FlushAllCaches; 358 1.13 matt int32_t TestUnicode; /* not on sgimips */ 359 1.13 matt int32_t GetDisplayStatus; /* not on sgimips */ 360 1.13 matt }; 361 1.1 thorpej 362 1.13 matt #if defined(_KERNEL) || defined(_STANDALONE) 363 1.13 matt /* 364 1.13 matt * ARC firmware vector calls 365 1.13 matt */ 366 1.13 matt long arcbios_Load(char *, u_long, u_long, u_long *); 367 1.13 matt long arcbios_Invoke(u_long, u_long, u_long, char **, char **); 368 1.13 matt long arcbios_Execute(char *, u_long, char **, char **); 369 1.13 matt void arcbios_Halt(void) __dead; 370 1.13 matt void arcbios_PowerDown(void) __dead; 371 1.13 matt void arcbios_Restart(void) __dead; 372 1.13 matt void arcbios_Reboot(void) __dead; 373 1.13 matt void arcbios_EnterInteractiveMode(void) __dead; 374 1.13 matt void arcbios_ReturnFromMain(void) __dead; /* not on sgimips */ 375 1.13 matt void * arcbios_GetPeer(void *); 376 1.13 matt void * arcbios_GetChild(void *); 377 1.13 matt void * arcbios_GetParent(void *); 378 1.13 matt long arcbios_GetConfigurationData(void *, void *); 379 1.13 matt void * arcbios_AddChild(void *, void *); 380 1.13 matt long arcbios_DeleteComponent(void *); 381 1.13 matt void * arcbios_GetComponent(char *); 382 1.13 matt long arcbios_SaveConfiguration(void); 383 1.13 matt void * arcbios_GetSystemId(void); 384 1.13 matt void * arcbios_GetMemoryDescriptor(void *); 385 1.13 matt void arcbios_Signal(u_long, void *); /* not on sgimips */ 386 1.13 matt void * arcbios_GetTime(void); 387 1.13 matt u_long arcbios_GetRelativeTime(void); 388 1.13 matt 389 1.13 matt long arcbios_GetDirectoryEntry(u_long, void *, u_long, u_long *); 390 1.13 matt long arcbios_Open(const char *, u_long, u_long *); 391 1.13 matt long arcbios_Close(u_long); 392 1.13 matt long arcbios_Read(u_long, void *, u_long, u_long *); 393 1.13 matt long arcbios_GetReadStatus(u_long); 394 1.13 matt long arcbios_Write(u_long, void *, u_long, u_long *); 395 1.13 matt long arcbios_Seek(u_long, int64_t *, u_long); 396 1.13 matt long arcbios_Mount(char *, u_long); 397 1.13 matt const char * 398 1.13 matt arcbios_GetEnvironmentVariable(const char *); 399 1.13 matt long arcbios_SetEnvironmentVariable(const char *, const char *); 400 1.13 matt long arcbios_GetFileInformation(u_long, void *); 401 1.13 matt long arcbios_SetFileInformation(u_long, u_long, u_long); 402 1.13 matt void arcbios_FlushAllCaches(void); 403 1.13 matt paddr_t arcbios_TestUnicode(u_long, uint16_t); /* not on sgimips */ 404 1.13 matt void * arcbios_GetDisplayStatus(u_long); /* not on sgimips */ 405 1.1 thorpej 406 1.13 matt #endif /* _KERNEL || _STANDALONE */ 407 1.5 pooka 408 1.5 pooka #endif /* _ARCBIOS_H_ */ 409