diff options
author | Guido Guenther <agx@sigxcpu.org> | 2006-11-18 23:48:07 +0100 |
---|---|---|
committer | Guido Guenther <agx@bogon.sigxcpu.org> | 2006-11-18 23:48:07 +0100 |
commit | d1e063beb43e595680c65e3804d1f8ddff53373b (patch) | |
tree | f7256dfe1b807920270ec5113df6f6e4abf1ed0f /arclib/spb.h |
Imported Debian version 0.3.8.80.3.8.8
Diffstat (limited to 'arclib/spb.h')
-rw-r--r-- | arclib/spb.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/arclib/spb.h b/arclib/spb.h new file mode 100644 index 0000000..fffc20a --- /dev/null +++ b/arclib/spb.h @@ -0,0 +1,96 @@ +/* + * Copyright 1999, 2001 Silicon Graphics, Inc. + * Copyright 2001 Ralf Baechle + */ +#ifndef _SPB_H_ +#define _SPB_H_ + +#include "types.h" +#include "arc.h" + +typedef struct { + LONG(*Load) (CHAR *, ULONG, ULONG *, ULONG *); + LONG(*Invoke) (ULONG, ULONG, ULONG, CHAR *[], CHAR *[]); + LONG(*Execute) (CHAR *, ULONG, CHAR *[], CHAR *[]); + VOID(*Halt) (VOID); + VOID(*PowerDown) (VOID); + VOID(*Restart) (VOID); + VOID(*Reboot) (VOID); + VOID(*EnterInteractiveMode) (VOID); + VOID *reserved1; + COMPONENT *(*GetPeer) (COMPONENT *); + COMPONENT *(*GetChild) (COMPONENT *); + COMPONENT *(*GetParent) (COMPONENT *); + LONG(*GetConfigurationData) (VOID *, COMPONENT *); + COMPONENT *(*AddChild) (COMPONENT *, COMPONENT *, VOID *); + LONG(*DeleteComponent) (COMPONENT *); + COMPONENT *(*GetComponent) (CHAR *); + LONG(*SaveConfiguration) (VOID); + SYSTEMID *(*GetSystemId) (VOID); + MEMORYDESCRIPTOR *(*GetMemoryDescriptor) (MEMORYDESCRIPTOR *); + VOID *reserved2; + TIMEINFO *(*GetTime) (VOID); + ULONG(*GetRelativeTime) (VOID); + LONG(*GetDirectoryEntry) (ULONG, DIRECTORYENTRY *, ULONG, ULONG *); + LONG(*Open) (CHAR *, OPENMODE, ULONG *); + LONG(*Close) (ULONG); + LONG(*Read) (ULONG, VOID *, ULONG, ULONG *); + LONG(*GetReadStatus) (ULONG); + LONG(*Write) (ULONG, VOID *, ULONG, ULONG *); + LONG(*Seek) (ULONG, LARGEINTEGER *, SEEKMODE); + LONG(*Mount) (CHAR *, MOUNTOPERATION); + CHAR *(*GetEnvironmentVariable) (CHAR *); + LONG(*SetEnvironmentVariable) (CHAR *, CHAR *); + LONG(*GetFileInformation) (ULONG, FILEINFORMATION *); + LONG(*SetFileInformation) (ULONG, ULONG, ULONG); + VOID(*FlushAllCaches) (VOID); + LONG(*TestUnicodeCharacter) (ULONG, USHORT); + DISPLAY_STATUS *(*GetDisplayStatus) (ULONG); +} FIRMWAREVECTOR; + +#define RSTB_SIGNATURE 0x42545352 + +typedef struct _rstb { + ULONG RSTBSignature; + ULONG RSTBLength; + USHORT Version; + USHORT Revision; + struct _rstb *NextRSTB; + VOID *RestartAddress; + ULONG BootMasterID; + ULONG ProcessorID; + ULONG BootStatus; + ULONG Checksum; + ULONG SaveAreaLength; + ULONG SavedStateArea[1]; +} RESTARTBLOCK; + +typedef struct { + ULONG AdapterType; + ULONG AdapterVectorLength; + VOID *AdapterVector; +} ADAPTER; + +#define SPB_SIGNATURE 0x53435241 + +typedef struct { + ULONG SPBSignature; + ULONG SPBLength; + USHORT Version; + USHORT Revision; + RESTARTBLOCK *RestartBlock; + VOID *DebugBlock; + VOID *GEVector; + VOID *UTLBMissVector; + ULONG FirmwareVectorLength; + FIRMWAREVECTOR *FirmwareVector; + ULONG PrivateVectorLength; + VOID *PrivateVector; + ULONG AdapterCount; + ADAPTER Adapters[1]; +} SPB; + +#define SystemParameterBlock ((SPB *) 0xA0001000UL) +#define FVector (SystemParameterBlock->FirmwareVector) + +#endif /* _SPB_H_ */ |