mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-26 16:49:18 +00:00
126 lines
3.1 KiB
C
126 lines
3.1 KiB
C
/*
|
|
File: ExpansionBus.h
|
|
|
|
Contains: xxx put contents here xxx
|
|
|
|
Written by: xxx put writers here xxx
|
|
|
|
Copyright: © 1993 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<1> 11/11/93 fau first checked in
|
|
|
|
*/
|
|
|
|
/*
|
|
* File: ExpansionBus.h
|
|
*
|
|
* Contains: Expansion Mgr Device Tree Manipulation Routines
|
|
*
|
|
* Written by: Al Kossow
|
|
*
|
|
* Copyright: © 1993 by Apple Computer, Inc., all rights reserved.
|
|
*
|
|
* Change History (most recent first):
|
|
*
|
|
* <1> 10/20/93 aek Created
|
|
*/
|
|
#pragma once
|
|
#ifndef __EXPANSIONBUS__
|
|
#define __EXPANSIONBUS__
|
|
|
|
#include "Types.h"
|
|
#include "Devices.h"
|
|
|
|
#define kTypeMask 0x3
|
|
#define kDeviceNode 0x1
|
|
#define kPropertyNode 0x2
|
|
|
|
#define kAttribMask 0x70
|
|
#define kAttribLocked 0x10
|
|
#define kAttribNVRAM 0x20
|
|
#define kAttribSysSav 0x40
|
|
|
|
#define kAttribROMProp 0x80
|
|
#define kAttribDefProp 0x100
|
|
|
|
/*
|
|
* The device tree parameter block
|
|
*/
|
|
|
|
typedef unsigned long NodeID;
|
|
|
|
typedef struct NodeInfo {
|
|
unsigned long attrib; // attributes of this node
|
|
NodeID parentNode; // nil if node is root node
|
|
NodeID peerNode; // nil if no peers
|
|
NodeID childNode; // nil if no children
|
|
NodeID propertyNode; // device property nodes
|
|
NodeID propertySize; // size of property
|
|
char name[32]; // name of this node
|
|
}NodeInfo;
|
|
|
|
typedef NodeInfo *NodeInfoPtr;
|
|
|
|
#ifndef _ExpansionBusDispatch
|
|
#define _ExpansionBusDispatch 0xAAF3
|
|
#endif
|
|
|
|
/*
|
|
* Expansion Manager C Interface
|
|
*
|
|
* pascal NodeID DevTreeRoot();
|
|
* pascal OSErr DevTreeNodeInfo(NodeID node, NodeInfoPtr p);
|
|
* pascal NodeID DevTreeAddNode(NodeID parentNode, ulong attrib, char *name);
|
|
* pascal OSErr DevTreeDelNode(NodeID theNode);
|
|
* pascal OSErr DevTreeSetProperty(NodeID theNode, unsigned char *buf, long size);
|
|
* pascal OSErr DevTreeGetProperty(NodeID theNode, unsigned char *buf, long size);
|
|
*
|
|
* pascal ExpIntInstall(expIntQElemPtr, nodeID)
|
|
* pascal ExpIntRemove(expIntQElemPtr, nodeID)
|
|
*
|
|
* pascal ExpVInstall(expVblTaskPtr, nodeID)
|
|
* pascal ExpVRemove(expVblTaskPtr, nodeID)
|
|
*
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
pascal OSErr ExpIntInstall(QElemPtr sIntQElemPtr, NodeID nodeID)
|
|
= { 0x303c, 0x0400, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr ExpIntRemove(QElemPtr sIntQElemPtr, NodeID nodeID)
|
|
= { 0x303c, 0x0401, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr ExpVInstall(QElemPtr sIntQElemPtr, NodeID nodeID)
|
|
= { 0x303c, 0x0402, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr ExpVRemove(QElemPtr sIntQElemPtr, NodeID nodeID)
|
|
= { 0x303c, 0x0403, _ExpansionBusDispatch};
|
|
|
|
pascal NodeID DevTreeRoot(void)
|
|
= { 0x303c, 0x0404, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr DevTreeNodeInfo(NodeID theNode, NodeInfoPtr p)
|
|
= { 0x303c, 0x0405, _ExpansionBusDispatch};
|
|
|
|
pascal NodeID DevTreeAddNode(NodeID parentNode, unsigned long attrib, char *name)
|
|
= { 0x303c, 0x0606, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr DevTreeDelNode(NodeID theNode)
|
|
= { 0x303c, 0x0207, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr DevTreeSetProperty(NodeID theNode, unsigned char *buf, long size)
|
|
= { 0x303c, 0x0608, _ExpansionBusDispatch};
|
|
|
|
pascal OSErr DevTreeGetProperty(NodeID theNode, unsigned char *buf, long size)
|
|
= { 0x303c, 0x0609, _ExpansionBusDispatch};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |