#ifndef UTILITY_TAGITEM_H
#define UTILITY_TAGITEM_H TRUE
/*
** $Filename: utility/tagitem.h $
** $Release: 2.04 Includes, V37.4 $
** $Revision: 36.1 $
** $Date: 90/07/12 $
**
** extended specification mechanism
**
** (C) Copyright 1989-1999 Amiga, Inc.
** All Rights Reserved
*/
#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif
/* ======================================================================= */
/* ==== TagItem ========================================================== */
/* ======================================================================= */
/* This data type may propagate through the system for more general use.
* In the meantime, it is used as a general mechanism of extensible data
* arrays for parameter specification and property inquiry (coming soon
* to a display controller near you).
*
* In practice, an array (or chain of arrays) of TagItems is used.
*/
typedef ULONG Tag;
struct TagItem {
Tag ti_Tag;
ULONG ti_Data;
};
/* ---- system tag values ----------------------------- */
#define TAG_DONE (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_END TAG_DONE
#define TAG_IGNORE (1L) /* ignore this item, not end of array */
#define TAG_MORE (2L) /* ti_Data is pointer to another array of TagItems
* note that this tag terminates the current array
*/
#define TAG_SKIP (3L) /* skip this and the next ti_Data items */
/* ---- user tag identification ----------------------- */
#define TAG_USER (1L<<31) /* differentiates user tags from system tags*/
/* until further notice, tag bits 16-30 are RESERVED and should be zero.
* Also, the value (TAG_USER | 0) should never be used as a tag value.
*/
/* ---- Tag filter logic specifiers ---- */
#define TAGFILTER_AND 0 /* exclude everything but filter hits */
#define TAGFILTER_NOT 1 /* exclude only filter hits */
#endif