mac-rom/Toolbox/ExpansionBusMgr/ExpansionBus.h
Elliot Nunn 4325cdcc78 Bring in CubeE sources
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included.

The Tools directory, containing mostly junk, is also excluded.
2017-12-26 09:52:23 +08:00

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