/*
**      $VER: identify.h 3.0 (13.5.96)
**
**      identify.library definitions
**
**      (C) Copyright 1996 Richard Koerber
**      All Rights Reserved.
*/

#ifndef LIBRARIES_IDENTIFY_H
#define LIBRARIES_IDENTIFY_H    (1)

#ifndef EXEC_TYPES_H
#include 'exec/types.h'
#endif

#ifndef EXEC_LIBRARIES_H
#include 'exec/libraries.h'
#endif

#ifndef UTILITY_TAGITEM_H
#include utility/tagitem.h
#endif

#define _IDTAGS (0xCD450000)

/* ------------------------------------------------------------------------ */
/*  Generic library informations */

#define IDENTIFYVERSION (3)

struct IdentifyBase {
        struct  Library ifyb_LibNode;
};

#define IDENTIFYBUFLEN  (50)    /*  default buffer length */

/* ------------------------------------------------------------------------ */
/*  Expansion() tags */

#define IDTAG_ConfigDev (_IDTAGS+0x00)  /* (struct ConfigDev *) ConfigDev */
                                        /*  structure to be evaluated */
#define IDTAG_ManufID   (_IDTAGS+0x01)  /* UWORD manufacturer ID if no */
                                        /*  ConfigDev is available */
#define IDTAG_ProdID    (_IDTAGS+0x02)  /* UBYTE product ID if no */
                                        /*  ConfigDev is available */
#define IDTAG_StrLength (_IDTAGS+0x03)  /* UWORD of maximum buffer length, */
                                        /*  including termination. Default */
                                        /*  is 50. */
#define IDTAG_ManufStr  (_IDTAGS+0x04)  /* STRPTR of manufacturer name */
                                        /*  puffer, or NULL */
#define IDTAG_ProdStr   (_IDTAGS+0x05)  /* STRPTR of product name */
                                        /*  puffer, or NULL */
#define IDTAG_ClassStr  (_IDTAGS+0x06)  /* STRPTR of product class */
                                        /*  puffer, or NULL */
#define IDTAG_DeadStr   (_IDTAGS+0x07)  /* STRPTR deadend or recoverable alert? */
#define IDTAG_SubsysStr (_IDTAGS+0x08)  /* STRPTR alert subsystem */
#define IDTAG_GeneralStr (_IDTAGS+0x09) /* STRPTR alert general cause */
#define IDTAG_SpecStr   (_IDTAGS+0x0A)  /* STRPTR alert specific cause */

/* ------------------------------------------------------------------------ */
/*  Hardware description types */

#define IDHW_SYSTEM     (0)     /*  System (Amiga,DraCo,...) */
#define IDHW_CPU        (1)     /*  CPU (68000,68010,...,68060) */
#define IDHW_FPU        (2)     /*  FPU (---,68881,68882,68040,68060) */
#define IDHW_MMU        (3)     /*  MMU (---,68852,68030,68040,68060) */
#define IDHW_OSVER      (4)     /*  OS Version (V*.*) */
#define IDHW_EXECVER    (5)     /*  Exec Version (V*.*) */
#define IDHW_WBVER      (6)     /*  Workbench Version (---,V*.*) */
#define IDHW_ROMSIZE    (7)     /*  OS ROM Size (*KB, *MB) */
#define IDHW_CHIPSET    (8)     /*  Chipset (OCS,ECS,AGA,DraCo) */
#define IDHW_GFXSYS     (9)     /*  Graphics system (AmigaOS, CyberGraphX, ...) */
#define IDHW_CHIPRAM    (10)    /*  Chip RAM (*KB, *MB, *GB) */
#define IDHW_FASTRAM    (11)    /*  Fast RAM (*KB, *MB, *GB) */
#define IDHW_RAM        (12)    /*  Total RAM (*KB, *MB, *GB) */
#define IDHW_NUMBEROF   (13)    /*  Number of types, PRIVATE! */

/* ------------------------------------------------------------------------ */
/*  Error codes */

#define IDERR_NOLENGTH  (-1)    /* Buffer length is 0 ?? */
#define IDERR_BADID     (-2)    /* Missing or bad board ID */

/* ------------------------------------------------------------------------ */
/*  That's all... */

#endif


