#ifndef LIBRARIES_IDM_H
#define LIBRARIES_IDM_H

/*
**  $VER: Idm.h 1.0 (28.2.99)
**
**  Standard C header for Idm.library
**
**  Copyright © 1997-1999 Andrew Bell, All rights reserved.
**
*/

/* Please refer to assembly header for more information */

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

#ifndef	EXEC_LISTS_H
#include <exec/lists.h>
#endif	/* EXEC_LISTS_H */

#ifndef	EXEC_NODES_H
#include <exec/nodes.h>
#endif	/* EXEC_NODES_H */

/*******************************************************************/
/* Pass these to exec.library/OpenLibrary() */

#define IDMLIBVERSION 1L
#define IDMNAME "Idm.library"

/* This structure is returned by IdmAllocIdInfo() */

struct IdmIdInfo
{
    ULONG    IdInfo_MagicID;               /* PRIVATE */
    ULONG    IdInfo_ErrCode;
    UWORD    IdInfo_Flags;                 /* PRIVATE */
    UWORD    IdInfo_Pad01;                 /* PRIVATE */
    UBYTE   *IdInfo_IdString;
};

/*******************************************************************/

#define IDMERRCODE_ALLOK     0
#define IDMERRCODE_UNKNOWNID 1
#define IDMERRCODE_NOMEMORY  2
#define IDMERRCODE_CHECK     2

/*******************************************************************/

struct IdmLibInfo
{
    ULONG   IdmLI_MagicId;                /* PRIVATE */
    UWORD   IdmLI_Version;
    UWORD   IdmLI_Revision;
    ULONG   IdmLI_AmtKnown;
    struct  List *IdmLI_IDList;
    ULONG   IdmLI_IOLen;
    UWORD   IdmLI_Reserved01;             /* PRIVATE */
    UWORD   IdmLI_Reserved02;             /* PRIVATE */
    UBYTE  *IdmLI_MaxName;
    UBYTE  *IdmLI_DateStr;
    ULONG   IdmLI_AmtCat;                 /* PRIVATE */
};

#endif /* LIBRARIES_IDM_H */
