1 #ifndef DOS_DOSASL_H
    2 #define DOS_DOSASL_H
    3 
    4 /*
    5 	dos asl definitions
    6 
    7 	Copyright © 2002 The MorphOS Development Team, All Rights Reserved.
    8 */
    9 
   10 #ifndef EXEC_LIBRARIES_H
   11 # include <exec/libraries.h>
   12 #endif
   13 
   14 #ifndef EXEC_LISTS_H
   15 # include <exec/lists.h>
   16 #endif
   17 
   18 #ifndef DOS_DOS_H
   19 # include <dos/dos.h>
   20 #endif
   21 
   22 #pragma pack(2)
   23 
   24 
   25 struct AnchorPath
   26 {
   27 	struct AChain        *ap_Base;
   28 #	define                ap_First ap_Base
   29 
   30 	struct AChain        *ap_Last;
   31 #	define                ap_Current ap_Last
   32 
   33 	LONG                  ap_BreakBits;
   34 	LONG                  ap_FoundBreak;
   35 
   36 	BYTE                  ap_Flags;
   37 #	define                ap_Length ap_Flags
   38 
   39 	BYTE                  ap_Extended;
   40 #	define                ap_Reserved ap_Extended
   41 
   42 	WORD                  ap_Strlen;
   43 	struct FileInfoBlock  ap_Info;
   44 	UBYTE                 ap_Buf[2];
   45 	/* ap_Buf continues */
   46 };
   47 
   48 
   49 #define APB_DOWILD        0
   50 #define APF_DOWILD        (1<<APB_DOWILD)
   51 
   52 #define APB_ITSWILD       1
   53 #define APF_ITSWILD       (1<<APB_ITSWILD)
   54 
   55 #define APB_DODIR         2
   56 #define APF_DODIR         (1<<APB_DODIR)
   57 
   58 #define APB_DIDDIR        3
   59 #define APF_DIDDIR        (1<<APB_DIDDIR)
   60 
   61 #define APB_NOMEMERR      4
   62 #define APF_NOMEMERR      (1<<APB_NOMEMERR)
   63 
   64 #define APB_DODOT         5
   65 #define APF_DODOT         (1<<APB_DODOT)
   66 
   67 #define APB_DirChanged    6
   68 #define APF_DirChanged    (1<<APB_DirChanged)
   69 
   70 #define APB_FollowHLinks  7
   71 #define APF_FollowHLinks  (1<<APB_FollowHLinks)
   72 
   73 
   74 #define APSB_EXTENDED         15
   75 #define APSF_EXTENDED         (1<<APSB_EXTENDED)
   76 
   77 /* Following are ap_Extended flags, only enabled when ap_StrLen has
   78    APSF_EXTENDED set. Added in dos.library 50.67. */
   79 
   80 /* Return literal softlink names instead of the link destination */
   81 #define APEB_LiteralSLinks    1
   82 #define APEF_LiteralSLinks    (1<<APEB_LiteralSLinks)
   83 
   84 /* Don't follow softlink directories, implies APEF_LiteralSLinks */
   85 #define APEB_DontFollowSLinks 2
   86 #define APEF_DontFollowSLinks (1<<APEB_DontFollowSLinks)
   87 
   88 #define APEB_FutureExtension  7
   89 #define APEF_FutureExtension  (1<<APEB_FutureExtension)
   90 
   91 
   92 struct AChain
   93 {
   94 	struct AChain        *an_Child;
   95 	struct AChain        *an_Parent;
   96 	BPTR                  an_Lock;
   97 	struct FileInfoBlock  an_Info;
   98 	BYTE                  an_Flags;
   99 	UBYTE                 an_String[1];
  100 	/* an_String continues */
  101 };
  102 
  103 
  104 #define DDB_PatternBit   0
  105 #define DDF_PatternBit   (1<<DDB_PatternBit)
  106 
  107 #define DDB_ExaminedBit  1
  108 #define DDF_ExaminedBit  (1<<DDB_ExaminedBit)
  109 
  110 #define DDB_Completed    2
  111 #define DDF_Completed    (1<<DDB_Completed)
  112 
  113 #define DDB_AllBit       3
  114 #define DDF_AllBit       (1<<DDB_AllBit)
  115 
  116 #define DDB_Single       4
  117 #define DDF_Single       (1<<DDB_Single)
  118 
  119 
  120 #define P_ANY       0x80
  121 #define P_SINGLE    0x81
  122 #define P_ORSTART   0x82
  123 #define P_ORNEXT    0x83
  124 #define P_OREND     0x84
  125 #define P_NOT       0x85
  126 #define P_NOTEND    0x86
  127 #define P_NOTCLASS  0x87
  128 #define P_CLASS     0x88
  129 #define P_REPBEG    0x89
  130 #define P_REPEND    0x8A
  131 #define P_STOP      0x8B
  132 
  133 
  134 #define COMPLEX_BIT  1
  135 #define EXAMINE_BIT  2
  136 
  137 
  138 #define ERROR_BUFFER_OVERFLOW  303
  139 #define ERROR_BREAK            304
  140 #define ERROR_NOT_EXECUTABLE   305
  141 
  142 
  143 #pragma pack()
  144 
  145 #endif /* DOS_DOSASL_H */