5 Copyright © 1995-2016, The AROS Development Team. All rights reserved.
8 Desc: ExAll() handling.
13 # include <exec/types.h>
15 #ifndef UTILITY_HOOKS_H
16 # include <utility/hooks.h>
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. */
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
40 UBYTE
* ed_Comment
; /* The file comment. */
42 UWORD ed_OwnerUID
; /* The owner ID. */
43 UWORD ed_OwnerGID
; /* The group-owner ID. */
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
62 UBYTE
* ed_Comment
; /* The file comment. */
64 UWORD ed_OwnerUID
; /* The owner ID. */
65 UWORD ed_OwnerGID
; /* The group-owner ID. */
69 #define ExAllData ExAllData64
71 #define ExAllData ExAllData32
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. */
96 /* The number of entries that were returned in the buffer. */
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 */