]> git.sesse.net Git - pistorm/blob - a314/software-amiga/ethernet_pistorm/tagitem.h
Adapt a314eth to work on PiStorm + A314 emulation
[pistorm] / a314 / software-amiga / ethernet_pistorm / tagitem.h
1 #ifndef UTILITY_TAGITEM_H
2 #define UTILITY_TAGITEM_H
3 /*
4 **      $VER: tagitem.h 40.1 (19.7.1993)
5 **      Includes Release 45.1
6 **
7 **      Extended specification mechanism
8 **
9 **      (C) Copyright 1989-2001 Amiga, Inc.
10 **      All Rights Reserved
11 */
12
13 /*****************************************************************************/
14
15
16 #ifndef EXEC_TYPES_H
17 #include <exec/types.h>
18 #endif
19
20
21 /*****************************************************************************/
22
23
24 /* Tags are a general mechanism of extensible data arrays for parameter
25  * specification and property inquiry. In practice, tags are used in arrays,
26  * or chain of arrays.
27  *
28  */
29
30 typedef ULONG Tag;
31
32 struct TagItem
33 {
34     Tag   ti_Tag;       /* identifies the type of data */
35     ULONG ti_Data;      /* type-specific data          */
36 };
37
38 /* constants for Tag.ti_Tag, control tag values */
39 #define TAG_DONE   (0L)   /* terminates array of TagItems. ti_Data unused */
40 #define TAG_END    (0L)   /* synonym for TAG_DONE                         */
41 #define TAG_IGNORE (1L)   /* ignore this item, not end of array           */
42 #define TAG_MORE   (2L)   /* ti_Data is pointer to another array of TagItems
43                            * note that this tag terminates the current array
44                            */
45 #define TAG_SKIP   (3L)   /* skip this and the next ti_Data items         */
46
47 /* differentiates user tags from control tags */
48 #define TAG_USER   ((ULONG)(1L<<31))
49
50 /* If the TAG_USER bit is set in a tag number, it tells utility.library that
51  * the tag is not a control tag (like TAG_DONE, TAG_IGNORE, TAG_MORE) and is
52  * instead an application tag. "USER" means a client of utility.library in
53  * general, including system code like Intuition or ASL, it has nothing to do
54  * with user code.
55  */
56
57
58 /*****************************************************************************/
59
60
61 /* Tag filter logic specifiers for use with FilterTagItems() */
62 #define TAGFILTER_AND 0         /* exclude everything but filter hits   */
63 #define TAGFILTER_NOT 1         /* exclude only filter hits             */
64
65
66 /*****************************************************************************/
67
68
69 /* Mapping types for use with MapTags() */
70 #define MAP_REMOVE_NOT_FOUND 0  /* remove tags that aren't in mapList */
71 #define MAP_KEEP_NOT_FOUND   1  /* keep tags that aren't in mapList   */
72
73
74 /*****************************************************************************/
75
76
77 #endif /* UTILITY_TAGITEM_H */