/*
**      $VER: identify.i 4.0 (6.9.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 (4)

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 */
#define IDTAG_FuncNameStr (_IDTAGS+0x0B) /* STRPTR function name */

/* ------------------------------------------------------------------------* */
/*  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_SETPATCHVER (13)   /*  SetPatch Version (---,V*.*) */
#define IDHW_NUMBEROF   (14)    /*  Number of types, PRIVATE! */

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

/* Positive error codes are DOS errors! */
#define IDERR_OKAY      (0)     /* No error */
#define IDERR_NOLENGTH  (-1)    /* Buffer length is 0 ?? */
#define IDERR_BADID     (-2)    /* Missing or bad board ID */
#define IDERR_NOMEM     (-3)    /* Not enough memory */
#define IDERR_NOFD      (-4)    /* No fitting FD file found */
#define IDERR_OFFSET    (-5)    /* Function offset not found */

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

#endif


