forwarding a patch that uses the fetch macros to pull in acpica and build it (NicJA).
[AROS.git] / compiler / include / dos / exall.h
bloba12c1b5f70c1c5152a9a8194f9e23f14d9f69091
1 #ifndef DOS_EXALL_H
2 #define DOS_EXALL_H
4 /*
5 Copyright © 1995-2016, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: ExAll() handling.
9 Lang: english
12 #ifndef EXEC_TYPES_H
13 # include <exec/types.h>
14 #endif
15 #ifndef UTILITY_HOOKS_H
16 # include <utility/hooks.h>
17 #endif
19 /* Structure (as used in ExAll()), containing information about a file. This
20 structure is only as long as it need to be. If is for example ED_SIZE was
21 specified, when calling ExAll(), this structure only consists of the fields
22 ed_Name through ed_Size. Therefore you can use the ED_ definitions below
23 as longword offsets into this structure. */
24 struct ExAllData64
26 struct ExAllData64 * ed_Next;
28 UBYTE * ed_Name; /* Name of the file. */
29 LONG ed_Type; /* Type of file. See <dos/dosextens.h>. */
30 UQUAD ed_Size; /* Size of file. */
31 ULONG ed_Prot; /* Protection bits. */
33 /* The following three fields are de facto an embedded datestamp
34 structure (see <dos/dos.h>), which describes the last modification
35 date. */
36 ULONG ed_Days;
37 ULONG ed_Mins;
38 ULONG ed_Ticks;
40 UBYTE * ed_Comment; /* The file comment. */
42 UWORD ed_OwnerUID; /* The owner ID. */
43 UWORD ed_OwnerGID; /* The group-owner ID. */
46 struct ExAllData32
48 struct ExAllData32 * ed_Next;
50 UBYTE * ed_Name; /* Name of the file. */
51 LONG ed_Type; /* Type of file. See <dos/dosextens.h>. */
52 ULONG ed_Size; /* Size of file. */
53 ULONG ed_Prot; /* Protection bits. */
55 /* The following three fields are de facto an embedded datestamp
56 structure (see <dos/dos.h>), which describes the last modification
57 date. */
58 ULONG ed_Days;
59 ULONG ed_Mins;
60 ULONG ed_Ticks;
62 UBYTE * ed_Comment; /* The file comment. */
64 UWORD ed_OwnerUID; /* The owner ID. */
65 UWORD ed_OwnerGID; /* The group-owner ID. */
68 #if (__DOS64)
69 #define ExAllData ExAllData64
70 #else
71 #define ExAllData ExAllData32
72 #endif
74 /* Type argument for ExAll(). Each number includes the information of all
75 lower numbers, too. If you specify for example ED_SIZE, you will get
76 information about name, type and the size of a file. Note that all
77 filehandlers must handle all types up to ED_OWNER. If they do not support
78 a type, they must return ERROR_BAD_NUMBER (see <dos/dos.h>). Currently
79 that means, if a value higher than ED_OWNER is specified, filehandlers
80 must fail with this error. */
81 #define ED_NAME 1 /* Filename. */
82 #define ED_TYPE 2 /* Type of file. See <dos/dosextens.h>. */
83 #define ED_SIZE 3 /* Size of file. */
84 #define ED_PROTECTION 4 /* Protection bits. */
85 #define ED_DATE 5 /* Last modification date. */
86 #define ED_COMMENT 6 /* Addtional file comment. */
87 #define ED_OWNER 7 /* Owner information. */
90 /* Structure as used for controlling ExAll(). Allocate this structure by using
91 AllocDosObject(DOS_EXALLCONTROL,...) only. All fields must be initialized
92 to 0, before using this structure. (AllocDosObject() does that for you.)
93 After calling ExAll() the first time, this structure is READ-ONLY. */
94 struct ExAllControl
96 /* The number of entries that were returned in the buffer. */
97 ULONG eac_Entries;
98 IPTR eac_LastKey; /* PRIVATE */
99 /* Parsed pattern string, as created by ParsePattern(). This may be NULL.
101 UBYTE * eac_MatchString;
102 /* You may supply a hook, which is called for each entry. This hook
103 should return TRUE, if the current entry is to be included in
104 the file list and FALSE, if it should be ignored. */
105 struct Hook * eac_MatchFunc;
108 #endif /* DOS_EXALL_H */