[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

#ifndef LIBRARIES_EXPANSIONBASE_H
#define LIBRARIES_EXPANSIONBASE_H
/*
**      $VER: expansionbase.h 36.15 (21.10.1991)
**      Includes Release 44.1
**
**      Definitions for the expansion library base
**
**      (C) Copyright 1987-1999 Amiga, Inc.
**          All Rights Reserved
*/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif  /* EXEC_TYPES_H */

#ifndef EXEC_LIBRARIES_H
#include <exec/libraries.h>
#endif  /* EXEC_LIBRARIES_H */

#ifndef EXEC_SEMAPHORES_H
#include <exec/semaphores.h>
#endif  /* EXEC_SEMAPHORES_H */

#ifndef LIBRARIES_CONFIGVARS_H
#include <libraries/configvars.h>
#endif  /* LIBRARIES_CONFIGVARS_H */


/* BootNodes are scanned by dos.library at startup.  Items found on the
   list are started by dos. BootNodes are added with the AddDosNode() or
   the V36 AddBootNode() calls. */
struct BootNode
{
        struct Node bn_Node;
        UWORD   bn_Flags;
        APTR    bn_DeviceNode;
};


/* expansion.library has functions to manipulate most of the information in
   ExpansionBase.  Direct access is not permitted.  Use FindConfigDev()
   to scan the board list. */
struct  ExpansionBase
{
        struct Library  LibNode;
        UBYTE   Flags;                          /* read only (see below) */
        UBYTE   eb_Private01;                   /* private */
        ULONG   eb_Private02;                   /* private */
        ULONG   eb_Private03;                   /* private */
        struct  CurrentBinding  eb_Private04;   /* private */
        struct  List    eb_Private05;           /* private */
        struct  List    MountList;      /* contains struct BootNode entries */
        /* private */
};

/* error codes */
#define EE_OK           0
#define EE_LASTBOARD    40  /* could not shut him up */
#define EE_NOEXPANSION  41  /* not enough expansion mem; board shut up */
#define EE_NOMEMORY     42  /* not enough normal memory */
#define EE_NOBOARD      43  /* no board at that address */
#define EE_BADMEM       44  /* tried to add bad memory card */

/* Flags */
#define EBB_CLOGGED     0       /* someone could not be shutup */
#define EBF_CLOGGED     (1<<0)
#define EBB_SHORTMEM    1       /* ran out of expansion mem */
#define EBF_SHORTMEM    (1<<1)
#define EBB_BADMEM      2       /* tried to add bad memory card */
#define EBF_BADMEM      (1<<2)
#define EBB_DOSFLAG     3       /* reserved for use by AmigaDOS */
#define EBF_DOSFLAG     (1<<3)
#define EBB_KICKBACK33  4       /* reserved for use by AmigaDOS */
#define EBF_KICKBACK33  (1<<4)
#define EBB_KICKBACK36  5       /* reserved for use by AmigaDOS */
#define EBF_KICKBACK36  (1<<5)
/* If the following flag is set by a floppy's bootblock code, the initial
   open of the initial shell window will be delayed until the first output
   to that shell.  Otherwise the 1.3 compatible behavior applies. */
#define EBB_SILENTSTART 6
#define EBF_SILENTSTART (1<<6)

/* Magic kludge for CC0 use */
#define EBB_START_CC0   7
#define EBF_START_CC0   (1<<7)


#endif  /* LIBRARIES_EXPANSIONBASE_H */