typedef byte DrawMask[8];
The graphics system uses this structure for defining custom draw masks.
typedef ByteEnum DriveType; #define DRIVE_5_25 0 #define DRIVE_3_5 1 #define DRIVE_FIXED 2 #define DRIVE_RAM 3 #define DRIVE_CD_ROM 4 #define DRIVE_8 5 #define DRIVE_UNKNOWN 0xf } DriveType;
Several routines (in particular,
DriveGetStatus()
) provide information about drives used by the computer running GEOS. These routines return a member of the
DriveTypes
enumerated type. Note that while the type is byte-length, all of the values are guaranteed to fit in four bits; thus, routines like
DriveGetStatus()
can return a
DriveTypes
value in the low four bits and other flags in the high four bits of a single byte.
typedef WordFlags DriverAttrs; #define DA_FILE_SYSTEM 0x8000 #define DA_CHARACTER 0x4000 #define DA_HAS_EXTENDED_INFO 0x2000
This record contains flags that indicate a given driver's attributes. This record is stored in the driver's
DriverInfoStruct
structure.
typedef struct { DriverInfoStruct DEIS_common; /* The base driver info structure */ MemHandle DEIS_resource; /* Handle of driver's DriverExtendedInfo * table. */ } DriverExtendedInfoStruct;
This structure is used by Preferences to locate the names of devices supported by a particular driver.
typedef struct { LMemBlockHeader DEIT_common; word DEIT_numDevices; ChunkHandle DEIT_ChunkHandle; word DEIT_infoTable; } DriverExtendedInfoTable;
typedef struct { void (*DIS_strategy)(); /* Pointer to strategy routine */ DriverAttrs DIS_driverAttributes; /* driver's attribute flags */ DriverType DIS_driverType; /* driver's type */ } DriverInfoStruct;
This structure defines the characteristics of a particular driver. In general, applications will not need to access this structure unless they use a driver directly.
typedef enum { DRIVER_TYPE_VIDEO = 1, /* Video drivers */ DRIVER_TYPE_INPUT, /* Input (keyboard, mouse) drivers */ DRIVER_TYPE_MASS_STORAGE, /* Disk/Drive drivers */ DRIVER_TYPE_STREAM, /* Stream and port drivers */ DRIVER_TYPE_FONT, /* Font drivers */ DRIVER_TYPE_OUTPUT, /* Output (not video and printer) drivers */ DRIVER_TYPE_LOCALIZATION, /* Localization drivers */ DRIVER_TYPE_FILE_SYSTEM, /* File system drivers */ DRIVER_TYPE_PRINTER, /* Printer drivers */ DRIVER_TYPE_SWAP, /* Swap drivers */ DRIVER_TYPE_POWER_MANAGEMENT, /* Power management drivers */ DRIVER_TYPE_TASK_SWITCH, /* Task switch drivers */ DRIVER_TYPE_NETWORK /* Network file system drivers */ } DriverType;
This enumerated type has one value for each type of driver in the system. It is used primarily with
GeodeUseDriver()
and its associated routines. Each driver stores its type in its
DriverInfoStruct
structure.
typedef struct { ChunkArrayHeader EAH_meta; /* chunk array header structure */ word EAH_freePtr; /* First free element */ } ElementArrayHeader;
Every element array must begin with an
ElementArrayHeader
. Since element arrays are special kinds of chunk arrays, the
ElementArrayHeader
must itself begin with a
ChunkArrayHeader
. The structure contains one additional field, EAH
_freePtr
. This is used to keep track of the freed elements in the element array. Applications should not examine or change this field.