home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / fd2inline-1.0-bin.lha / include / inline / dos.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-12  |  21.2 KB  |  692 lines

  1. #ifndef _INLINE_DOS_H
  2. #define _INLINE_DOS_H
  3.  
  4. #ifndef __INLINE_MACROS_H
  5. #include <inline/macros.h>
  6. #endif
  7.  
  8. #ifndef DOS_BASE_NAME
  9. #define DOS_BASE_NAME DOSBase
  10. #endif
  11.  
  12. #define AbortPkt(port, pkt) \
  13.     LP2NR(0x108, AbortPkt, struct MsgPort *, port, d1, struct DosPacket *, pkt, d2, \
  14.     , DOS_BASE_NAME)
  15.  
  16. #define AddBuffers(name, number) \
  17.     LP2(0x2dc, LONG, AddBuffers, STRPTR, name, d1, long, number, d2, \
  18.     , DOS_BASE_NAME)
  19.  
  20. #define AddDosEntry(dlist) \
  21.     LP1(0x2a6, LONG, AddDosEntry, struct DosList *, dlist, d1, \
  22.     , DOS_BASE_NAME)
  23.  
  24. #define AddPart(dirname, filename, size) \
  25.     LP3(0x372, BOOL, AddPart, STRPTR, dirname, d1, STRPTR, filename, d2, unsigned long, size, d3, \
  26.     , DOS_BASE_NAME)
  27.  
  28. #define AddSegment(name, seg, system) \
  29.     LP3(0x306, LONG, AddSegment, STRPTR, name, d1, BPTR, seg, d2, long, system, d3, \
  30.     , DOS_BASE_NAME)
  31.  
  32. #define AllocDosObject(type, tags) \
  33.     LP2(0xe4, APTR, AllocDosObject, unsigned long, type, d1, struct TagItem *, tags, d2, \
  34.     , DOS_BASE_NAME)
  35.  
  36. #define AllocDosObjectTagList(a0, a1) AllocDosObject ((a0), (a1))
  37.  
  38. #ifndef NO_INLINE_STDARG
  39. #define AllocDosObjectTags(a0, tags...) \
  40.     ({ULONG _tags[] = { tags }; AllocDosObject((a0), (struct TagItem *)_tags);})
  41. #endif /* !NO_INLINE_STDARG */
  42.  
  43. #define AssignAdd(name, lock) \
  44.     LP2(0x276, BOOL, AssignAdd, STRPTR, name, d1, BPTR, lock, d2, \
  45.     , DOS_BASE_NAME)
  46.  
  47. #define AssignLate(name, path) \
  48.     LP2(0x26a, BOOL, AssignLate, STRPTR, name, d1, STRPTR, path, d2, \
  49.     , DOS_BASE_NAME)
  50.  
  51. #define AssignLock(name, lock) \
  52.     LP2(0x264, LONG, AssignLock, STRPTR, name, d1, BPTR, lock, d2, \
  53.     , DOS_BASE_NAME)
  54.  
  55. #define AssignPath(name, path) \
  56.     LP2(0x270, BOOL, AssignPath, STRPTR, name, d1, STRPTR, path, d2, \
  57.     , DOS_BASE_NAME)
  58.  
  59. #define AttemptLockDosList(flags) \
  60.     LP1(0x29a, struct DosList *, AttemptLockDosList, unsigned long, flags, d1, \
  61.     , DOS_BASE_NAME)
  62.  
  63. #define ChangeMode(type, fh, newmode) \
  64.     LP3(0x1c2, LONG, ChangeMode, long, type, d1, BPTR, fh, d2, long, newmode, d3, \
  65.     , DOS_BASE_NAME)
  66.  
  67. #define CheckSignal(mask) \
  68.     LP1(0x318, LONG, CheckSignal, long, mask, d1, \
  69.     , DOS_BASE_NAME)
  70.  
  71. #define Cli() \
  72.     LP0(0x1ec, struct CommandLineInterface *, Cli, \
  73.     , DOS_BASE_NAME)
  74.  
  75. #define CliInitNewcli(dp) \
  76.     LP1(0x3a2, LONG, CliInitNewcli, struct DosPacket *, dp, a0, \
  77.     , DOS_BASE_NAME)
  78.  
  79. #define CliInitRun(dp) \
  80.     LP1(0x3a8, LONG, CliInitRun, struct DosPacket *, dp, a0, \
  81.     , DOS_BASE_NAME)
  82.  
  83. #define Close(file) \
  84.     LP1(0x24, LONG, Close, BPTR, file, d1, \
  85.     , DOS_BASE_NAME)
  86.  
  87. #define CompareDates(date1, date2) \
  88.     LP2(0x2e2, LONG, CompareDates, struct DateStamp *, date1, d1, struct DateStamp *, date2, d2, \
  89.     , DOS_BASE_NAME)
  90.  
  91. #define CreateDir(name) \
  92.     LP1(0x78, BPTR, CreateDir, STRPTR, name, d1, \
  93.     , DOS_BASE_NAME)
  94.  
  95. #define CreateNewProc(tags) \
  96.     LP1(0x1f2, struct Process *, CreateNewProc, struct TagItem *, tags, d1, \
  97.     , DOS_BASE_NAME)
  98.  
  99. #define CreateNewProcTagList(a0) CreateNewProc ((a0))
  100.  
  101. #ifndef NO_INLINE_STDARG
  102. #define CreateNewProcTags(tags...) \
  103.     ({ULONG _tags[] = { tags }; CreateNewProc((struct TagItem *)_tags);})
  104. #endif /* !NO_INLINE_STDARG */
  105.  
  106. #define CreateProc(name, pri, segList, stackSize) \
  107.     LP4(0x8a, struct MsgPort *, CreateProc, STRPTR, name, d1, long, pri, d2, BPTR, segList, d3, long, stackSize, d4, \
  108.     , DOS_BASE_NAME)
  109.  
  110. #define CurrentDir(lock) \
  111.     LP1(0x7e, BPTR, CurrentDir, BPTR, lock, d1, \
  112.     , DOS_BASE_NAME)
  113.  
  114. #define DateStamp(date) \
  115.     LP1(0xc0, struct DateStamp *, DateStamp, struct DateStamp *, date, d1, \
  116.     , DOS_BASE_NAME)
  117.  
  118. #define DateToStr(datetime) \
  119.     LP1(0x2e8, LONG, DateToStr, struct DateTime *, datetime, d1, \
  120.     , DOS_BASE_NAME)
  121.  
  122. #define Delay(timeout) \
  123.     LP1NR(0xc6, Delay, long, timeout, d1, \
  124.     , DOS_BASE_NAME)
  125.  
  126. #define DeleteFile(name) \
  127.     LP1(0x48, LONG, DeleteFile, STRPTR, name, d1, \
  128.     , DOS_BASE_NAME)
  129.  
  130. #define DeleteVar(name, flags) \
  131.     LP2(0x390, LONG, DeleteVar, STRPTR, name, d1, unsigned long, flags, d2, \
  132.     , DOS_BASE_NAME)
  133.  
  134. #define DeviceProc(name) \
  135.     LP1(0xae, struct MsgPort *, DeviceProc, STRPTR, name, d1, \
  136.     , DOS_BASE_NAME)
  137.  
  138. #define DoPkt(port, action, arg1, arg2, arg3, arg4, arg5) \
  139.     LP7(0xf0, LONG, DoPkt, struct MsgPort *, port, d1, long, action, d2, long, arg1, d3, long, arg2, d4, long, arg3, d5, long, arg4, d6, long, arg5, d7, \
  140.     , DOS_BASE_NAME)
  141.  
  142. #define DoPkt0(port, action) \
  143.     LP2(0xf0, LONG, DoPkt0, struct MsgPort *, port, d1, long, action, d2, \
  144.     , DOS_BASE_NAME)
  145.  
  146. #define DoPkt1(port, action, arg1) \
  147.     LP3(0xf0, LONG, DoPkt1, struct MsgPort *, port, d1, long, action, d2, long, arg1, d3, \
  148.     , DOS_BASE_NAME)
  149.  
  150. #define DoPkt2(port, action, arg1, arg2) \
  151.     LP4(0xf0, LONG, DoPkt2, struct MsgPort *, port, d1, long, action, d2, long, arg1, d3, long, arg2, d4, \
  152.     , DOS_BASE_NAME)
  153.  
  154. #define DoPkt3(port, action, arg1, arg2, arg3) \
  155.     LP5(0xf0, LONG, DoPkt3, struct MsgPort *, port, d1, long, action, d2, long, arg1, d3, long, arg2, d4, long, arg3, d5, \
  156.     , DOS_BASE_NAME)
  157.  
  158. #define DoPkt4(port, action, arg1, arg2, arg3, arg4) \
  159.     LP6(0xf0, LONG, DoPkt4, struct MsgPort *, port, d1, long, action, d2, long, arg1, d3, long, arg2, d4, long, arg3, d5, long, arg4, d6, \
  160.     , DOS_BASE_NAME)
  161.  
  162. #define DupLock(lock) \
  163.     LP1(0x60, BPTR, DupLock, BPTR, lock, d1, \
  164.     , DOS_BASE_NAME)
  165.  
  166. #define DupLockFromFH(fh) \
  167.     LP1(0x174, BPTR, DupLockFromFH, BPTR, fh, d1, \
  168.     , DOS_BASE_NAME)
  169.  
  170. #define EndNotify(notify) \
  171.     LP1NR(0x37e, EndNotify, struct NotifyRequest *, notify, d1, \
  172.     , DOS_BASE_NAME)
  173.  
  174. #define ErrorReport(code, type, arg1, device) \
  175.     LP4(0x1e0, LONG, ErrorReport, long, code, d1, long, type, d2, unsigned long, arg1, d3, struct MsgPort *, device, d4, \
  176.     , DOS_BASE_NAME)
  177.  
  178. #define ExAll(lock, buffer, size, data, control) \
  179.     LP5(0x1b0, LONG, ExAll, BPTR, lock, d1, struct ExAllData *, buffer, d2, long, size, d3, long, data, d4, struct ExAllControl *, control, d5, \
  180.     , DOS_BASE_NAME)
  181.  
  182. #define ExAllEnd(lock, buffer, size, data, control) \
  183.     LP5NR(0x3de, ExAllEnd, BPTR, lock, d1, struct ExAllData *, buffer, d2, long, size, d3, long, data, d4, struct ExAllControl *, control, d5, \
  184.     , DOS_BASE_NAME)
  185.  
  186. #define ExNext(lock, fileInfoBlock) \
  187.     LP2(0x6c, LONG, ExNext, BPTR, lock, d1, struct FileInfoBlock *, fileInfoBlock, d2, \
  188.     , DOS_BASE_NAME)
  189.  
  190. #define Examine(lock, fileInfoBlock) \
  191.     LP2(0x66, LONG, Examine, BPTR, lock, d1, struct FileInfoBlock *, fileInfoBlock, d2, \
  192.     , DOS_BASE_NAME)
  193.  
  194. #define ExamineFH(fh, fib) \
  195.     LP2(0x186, BOOL, ExamineFH, BPTR, fh, d1, struct FileInfoBlock *, fib, d2, \
  196.     , DOS_BASE_NAME)
  197.  
  198. #define Execute(string, file, file2) \
  199.     LP3(0xde, LONG, Execute, STRPTR, string, d1, BPTR, file, d2, BPTR, file2, d3, \
  200.     , DOS_BASE_NAME)
  201.  
  202. #define Exit(returnCode) \
  203.     LP1NR(0x90, Exit, long, returnCode, d1, \
  204.     , DOS_BASE_NAME)
  205.  
  206. #define FGetC(fh) \
  207.     LP1(0x132, LONG, FGetC, BPTR, fh, d1, \
  208.     , DOS_BASE_NAME)
  209.  
  210. #define FGets(fh, buf, buflen) \
  211.     LP3(0x150, STRPTR, FGets, BPTR, fh, d1, STRPTR, buf, d2, unsigned long, buflen, d3, \
  212.     , DOS_BASE_NAME)
  213.  
  214. #define FPutC(fh, ch) \
  215.     LP2(0x138, LONG, FPutC, BPTR, fh, d1, long, ch, d2, \
  216.     , DOS_BASE_NAME)
  217.  
  218. #define FPuts(fh, str) \
  219.     LP2(0x156, LONG, FPuts, BPTR, fh, d1, STRPTR, str, d2, \
  220.     , DOS_BASE_NAME)
  221.  
  222. #define FRead(fh, block, blocklen, number) \
  223.     LP4(0x144, LONG, FRead, BPTR, fh, d1, APTR, block, d2, unsigned long, blocklen, d3, unsigned long, number, d4, \
  224.     , DOS_BASE_NAME)
  225.  
  226. #define FWrite(fh, block, blocklen, number) \
  227.     LP4(0x14a, LONG, FWrite, BPTR, fh, d1, APTR, block, d2, unsigned long, blocklen, d3, unsigned long, number, d4, \
  228.     , DOS_BASE_NAME)
  229.  
  230. #define Fault(code, header, buffer, len) \
  231.     LP4(0x1d4, BOOL, Fault, long, code, d1, STRPTR, header, d2, STRPTR, buffer, d3, long, len, d4, \
  232.     , DOS_BASE_NAME)
  233.  
  234. #define FilePart(path) \
  235.     LP1(0x366, STRPTR, FilePart, STRPTR, path, d1, \
  236.     , DOS_BASE_NAME)
  237.  
  238. #define FindArg(keyword, arg_template) \
  239.     LP2(0x324, LONG, FindArg, STRPTR, keyword, d1, STRPTR, arg_template, d2, \
  240.     , DOS_BASE_NAME)
  241.  
  242. #define FindCliProc(num) \
  243.     LP1(0x222, struct Process *, FindCliProc, unsigned long, num, d1, \
  244.     , DOS_BASE_NAME)
  245.  
  246. #define FindDosEntry(dlist, name, flags) \
  247.     LP3(0x2ac, struct DosList *, FindDosEntry, struct DosList *, dlist, d1, STRPTR, name, d2, unsigned long, flags, d3, \
  248.     , DOS_BASE_NAME)
  249.  
  250. #define FindSegment(name, seg, system) \
  251.     LP3(0x30c, struct Segment *, FindSegment, STRPTR, name, d1, struct Segment *, seg, d2, long, system, d3, \
  252.     , DOS_BASE_NAME)
  253.  
  254. #define FindVar(name, type) \
  255.     LP2(0x396, struct LocalVar *, FindVar, STRPTR, name, d1, unsigned long, type, d2, \
  256.     , DOS_BASE_NAME)
  257.  
  258. #define Flush(fh) \
  259.     LP1(0x168, LONG, Flush, BPTR, fh, d1, \
  260.     , DOS_BASE_NAME)
  261.  
  262. #define Format(filesystem, volumename, dostype) \
  263.     LP3(0x2ca, BOOL, Format, STRPTR, filesystem, d1, STRPTR, volumename, d2, unsigned long, dostype, d3, \
  264.     , DOS_BASE_NAME)
  265.  
  266. #define FreeArgs(args) \
  267.     LP1NR(0x35a, FreeArgs, struct RDArgs *, args, d1, \
  268.     , DOS_BASE_NAME)
  269.  
  270. #define FreeDeviceProc(dp) \
  271.     LP1NR(0x288, FreeDeviceProc, struct DevProc *, dp, d1, \
  272.     , DOS_BASE_NAME)
  273.  
  274. #define FreeDosEntry(dlist) \
  275.     LP1NR(0x2be, FreeDosEntry, struct DosList *, dlist, d1, \
  276.     , DOS_BASE_NAME)
  277.  
  278. #define FreeDosObject(type, ptr) \
  279.     LP2NR(0xea, FreeDosObject, unsigned long, type, d1, APTR, ptr, d2, \
  280.     , DOS_BASE_NAME)
  281.  
  282. #define GetArgStr() \
  283.     LP0(0x216, STRPTR, GetArgStr, \
  284.     , DOS_BASE_NAME)
  285.  
  286. #define GetConsoleTask() \
  287.     LP0(0x1fe, struct MsgPort *, GetConsoleTask, \
  288.     , DOS_BASE_NAME)
  289.  
  290. #define GetCurrentDirName(buf, len) \
  291.     LP2(0x234, BOOL, GetCurrentDirName, STRPTR, buf, d1, long, len, d2, \
  292.     , DOS_BASE_NAME)
  293.  
  294. #define GetDeviceProc(name, dp) \
  295.     LP2(0x282, struct DevProc *, GetDeviceProc, STRPTR, name, d1, struct DevProc *, dp, d2, \
  296.     , DOS_BASE_NAME)
  297.  
  298. #define GetFileSysTask() \
  299.     LP0(0x20a, struct MsgPort *, GetFileSysTask, \
  300.     , DOS_BASE_NAME)
  301.  
  302. #define GetProgramDir() \
  303.     LP0(0x258, BPTR, GetProgramDir, \
  304.     , DOS_BASE_NAME)
  305.  
  306. #define GetProgramName(buf, len) \
  307.     LP2(0x240, BOOL, GetProgramName, STRPTR, buf, d1, long, len, d2, \
  308.     , DOS_BASE_NAME)
  309.  
  310. #define GetPrompt(buf, len) \
  311.     LP2(0x24c, BOOL, GetPrompt, STRPTR, buf, d1, long, len, d2, \
  312.     , DOS_BASE_NAME)
  313.  
  314. #define GetVar(name, buffer, size, flags) \
  315.     LP4(0x38a, LONG, GetVar, STRPTR, name, d1, STRPTR, buffer, d2, long, size, d3, long, flags, d4, \
  316.     , DOS_BASE_NAME)
  317.  
  318. #define Info(lock, parameterBlock) \
  319.     LP2(0x72, LONG, Info, BPTR, lock, d1, struct InfoData *, parameterBlock, d2, \
  320.     , DOS_BASE_NAME)
  321.  
  322. #define Inhibit(name, onoff) \
  323.     LP2(0x2d6, LONG, Inhibit, STRPTR, name, d1, long, onoff, d2, \
  324.     , DOS_BASE_NAME)
  325.  
  326. #define Input() \
  327.     LP0(0x36, BPTR, Input, \
  328.     , DOS_BASE_NAME)
  329.  
  330. #define InternalLoadSeg(fh, table, funcarray, stack) \
  331.     LP4(0x2f4, BPTR, InternalLoadSeg, BPTR, fh, d0, BPTR, table, a0, LONG *, funcarray, a1, LONG *, stack, a2, \
  332.     , DOS_BASE_NAME)
  333.  
  334. #define InternalUnLoadSeg(seglist, freefunc) \
  335.     LP2FP(0x2fa, BOOL, InternalUnLoadSeg, BPTR, seglist, d1, __fpt, freefunc, a1, \
  336.     , DOS_BASE_NAME, void (*__fpt)())
  337.  
  338. #define IoErr() \
  339.     LP0(0x84, LONG, IoErr, \
  340.     , DOS_BASE_NAME)
  341.  
  342. #define IsFileSystem(name) \
  343.     LP1(0x2c4, BOOL, IsFileSystem, STRPTR, name, d1, \
  344.     , DOS_BASE_NAME)
  345.  
  346. #define IsInteractive(file) \
  347.     LP1(0xd8, LONG, IsInteractive, BPTR, file, d1, \
  348.     , DOS_BASE_NAME)
  349.  
  350. #define LoadSeg(name) \
  351.     LP1(0x96, BPTR, LoadSeg, STRPTR, name, d1, \
  352.     , DOS_BASE_NAME)
  353.  
  354. #define Lock(name, type) \
  355.     LP2(0x54, BPTR, Lock, STRPTR, name, d1, long, type, d2, \
  356.     , DOS_BASE_NAME)
  357.  
  358. #define LockDosList(flags) \
  359.     LP1(0x28e, struct DosList *, LockDosList, unsigned long, flags, d1, \
  360.     , DOS_BASE_NAME)
  361.  
  362. #define LockRecord(fh, offset, length, mode, timeout) \
  363.     LP5(0x10e, BOOL, LockRecord, BPTR, fh, d1, unsigned long, offset, d2, unsigned long, length, d3, unsigned long, mode, d4, unsigned long, timeout, d5, \
  364.     , DOS_BASE_NAME)
  365.  
  366. #define LockRecords(recArray, timeout) \
  367.     LP2(0x114, BOOL, LockRecords, struct RecordLock *, recArray, d1, unsigned long, timeout, d2, \
  368.     , DOS_BASE_NAME)
  369.  
  370. #define MakeDosEntry(name, type) \
  371.     LP2(0x2b8, struct DosList *, MakeDosEntry, STRPTR, name, d1, long, type, d2, \
  372.     , DOS_BASE_NAME)
  373.  
  374. #define MakeLink(name, dest, soft) \
  375.     LP3(0x1bc, LONG, MakeLink, STRPTR, name, d1, long, dest, d2, long, soft, d3, \
  376.     , DOS_BASE_NAME)
  377.  
  378. #define MatchEnd(anchor) \
  379.     LP1NR(0x342, MatchEnd, struct AnchorPath *, anchor, d1, \
  380.     , DOS_BASE_NAME)
  381.  
  382. #define MatchFirst(pat, anchor) \
  383.     LP2(0x336, LONG, MatchFirst, STRPTR, pat, d1, struct AnchorPath *, anchor, d2, \
  384.     , DOS_BASE_NAME)
  385.  
  386. #define MatchNext(anchor) \
  387.     LP1(0x33c, LONG, MatchNext, struct AnchorPath *, anchor, d1, \
  388.     , DOS_BASE_NAME)
  389.  
  390. #define MatchPattern(pat, str) \
  391.     LP2(0x34e, BOOL, MatchPattern, STRPTR, pat, d1, STRPTR, str, d2, \
  392.     , DOS_BASE_NAME)
  393.  
  394. #define MatchPatternNoCase(pat, str) \
  395.     LP2(0x3cc, BOOL, MatchPatternNoCase, STRPTR, pat, d1, STRPTR, str, d2, \
  396.     , DOS_BASE_NAME)
  397.  
  398. #define MaxCli() \
  399.     LP0(0x228, ULONG, MaxCli, \
  400.     , DOS_BASE_NAME)
  401.  
  402. #define NameFromFH(fh, buffer, len) \
  403.     LP3(0x198, LONG, NameFromFH, BPTR, fh, d1, STRPTR, buffer, d2, long, len, d3, \
  404.     , DOS_BASE_NAME)
  405.  
  406. #define NameFromLock(lock, buffer, len) \
  407.     LP3(0x192, LONG, NameFromLock, BPTR, lock, d1, STRPTR, buffer, d2, long, len, d3, \
  408.     , DOS_BASE_NAME)
  409.  
  410. #define NewLoadSeg(file, tags) \
  411.     LP2(0x300, BPTR, NewLoadSeg, STRPTR, file, d1, struct TagItem *, tags, d2, \
  412.     , DOS_BASE_NAME)
  413.  
  414. #define NewLoadSegTagList(a0, a1) NewLoadSeg ((a0), (a1))
  415.  
  416. #ifndef NO_INLINE_STDARG
  417. #define NewLoadSegTags(a0, tags...) \
  418.     ({ULONG _tags[] = { tags }; NewLoadSeg((a0), (struct TagItem *)_tags);})
  419. #endif /* !NO_INLINE_STDARG */
  420.  
  421. #define NextDosEntry(dlist, flags) \
  422.     LP2(0x2b2, struct DosList *, NextDosEntry, struct DosList *, dlist, d1, unsigned long, flags, d2, \
  423.     , DOS_BASE_NAME)
  424.  
  425. #define Open(name, accessMode) \
  426.     LP2(0x1e, BPTR, Open, STRPTR, name, d1, long, accessMode, d2, \
  427.     , DOS_BASE_NAME)
  428.  
  429. #define OpenFromLock(lock) \
  430.     LP1(0x17a, BPTR, OpenFromLock, BPTR, lock, d1, \
  431.     , DOS_BASE_NAME)
  432.  
  433. #define Output() \
  434.     LP0(0x3c, BPTR, Output, \
  435.     , DOS_BASE_NAME)
  436.  
  437. #define ParentDir(lock) \
  438.     LP1(0xd2, BPTR, ParentDir, BPTR, lock, d1, \
  439.     , DOS_BASE_NAME)
  440.  
  441. #define ParentOfFH(fh) \
  442.     LP1(0x180, BPTR, ParentOfFH, BPTR, fh, d1, \
  443.     , DOS_BASE_NAME)
  444.  
  445. #define ParsePattern(pat, buf, buflen) \
  446.     LP3(0x348, LONG, ParsePattern, STRPTR, pat, d1, STRPTR, buf, d2, long, buflen, d3, \
  447.     , DOS_BASE_NAME)
  448.  
  449. #define ParsePatternNoCase(pat, buf, buflen) \
  450.     LP3(0x3c6, LONG, ParsePatternNoCase, STRPTR, pat, d1, STRPTR, buf, d2, long, buflen, d3, \
  451.     , DOS_BASE_NAME)
  452.  
  453. #define PathPart(path) \
  454.     LP1(0x36c, STRPTR, PathPart, STRPTR, path, d1, \
  455.     , DOS_BASE_NAME)
  456.  
  457. #define PrintFault(code, header) \
  458.     LP2(0x1da, BOOL, PrintFault, long, code, d1, STRPTR, header, d2, \
  459.     , DOS_BASE_NAME)
  460.  
  461. #define PutStr(str) \
  462.     LP1(0x3b4, LONG, PutStr, STRPTR, str, d1, \
  463.     , DOS_BASE_NAME)
  464.  
  465. #define Read(file, buffer, length) \
  466.     LP3(0x2a, LONG, Read, BPTR, file, d1, APTR, buffer, d2, long, length, d3, \
  467.     , DOS_BASE_NAME)
  468.  
  469. #define ReadArgs(arg_template, array, args) \
  470.     LP3(0x31e, struct RDArgs *, ReadArgs, STRPTR, arg_template, d1, LONG *, array, d2, struct RDArgs *, args, d3, \
  471.     , DOS_BASE_NAME)
  472.  
  473. #define ReadItem(name, maxchars, cSource) \
  474.     LP3(0x32a, LONG, ReadItem, STRPTR, name, d1, long, maxchars, d2, struct CSource *, cSource, d3, \
  475.     , DOS_BASE_NAME)
  476.  
  477. #define ReadLink(port, lock, path, buffer, size) \
  478.     LP5(0x1b6, LONG, ReadLink, struct MsgPort *, port, d1, BPTR, lock, d2, STRPTR, path, d3, STRPTR, buffer, d4, unsigned long, size, d5, \
  479.     , DOS_BASE_NAME)
  480.  
  481. #define Relabel(drive, newname) \
  482.     LP2(0x2d0, LONG, Relabel, STRPTR, drive, d1, STRPTR, newname, d2, \
  483.     , DOS_BASE_NAME)
  484.  
  485. #define RemAssignList(name, lock) \
  486.     LP2(0x27c, LONG, RemAssignList, STRPTR, name, d1, BPTR, lock, d2, \
  487.     , DOS_BASE_NAME)
  488.  
  489. #define RemDosEntry(dlist) \
  490.     LP1(0x2a0, BOOL, RemDosEntry, struct DosList *, dlist, d1, \
  491.     , DOS_BASE_NAME)
  492.  
  493. #define RemSegment(seg) \
  494.     LP1(0x312, LONG, RemSegment, struct Segment *, seg, d1, \
  495.     , DOS_BASE_NAME)
  496.  
  497. #define Rename(oldName, newName) \
  498.     LP2(0x4e, LONG, Rename, STRPTR, oldName, d1, STRPTR, newName, d2, \
  499.     , DOS_BASE_NAME)
  500.  
  501. #define ReplyPkt(dp, res1, res2) \
  502.     LP3NR(0x102, ReplyPkt, struct DosPacket *, dp, d1, long, res1, d2, long, res2, d3, \
  503.     , DOS_BASE_NAME)
  504.  
  505. #define RunCommand(seg, stack, paramptr, paramlen) \
  506.     LP4(0x1f8, LONG, RunCommand, BPTR, seg, d1, long, stack, d2, STRPTR, paramptr, d3, long, paramlen, d4, \
  507.     , DOS_BASE_NAME)
  508.  
  509. #define SameDevice(lock1, lock2) \
  510.     LP2(0x3d8, BOOL, SameDevice, BPTR, lock1, d1, BPTR, lock2, d2, \
  511.     , DOS_BASE_NAME)
  512.  
  513. #define SameLock(lock1, lock2) \
  514.     LP2(0x1a4, LONG, SameLock, BPTR, lock1, d1, BPTR, lock2, d2, \
  515.     , DOS_BASE_NAME)
  516.  
  517. #define Seek(file, position, offset) \
  518.     LP3(0x42, LONG, Seek, BPTR, file, d1, long, position, d2, long, offset, d3, \
  519.     , DOS_BASE_NAME)
  520.  
  521. #define SelectInput(fh) \
  522.     LP1(0x126, BPTR, SelectInput, BPTR, fh, d1, \
  523.     , DOS_BASE_NAME)
  524.  
  525. #define SelectOutput(fh) \
  526.     LP1(0x12c, BPTR, SelectOutput, BPTR, fh, d1, \
  527.     , DOS_BASE_NAME)
  528.  
  529. #define SendPkt(dp, port, replyport) \
  530.     LP3NR(0xf6, SendPkt, struct DosPacket *, dp, d1, struct MsgPort *, port, d2, struct MsgPort *, replyport, d3, \
  531.     , DOS_BASE_NAME)
  532.  
  533. #define SetArgStr(string) \
  534.     LP1(0x21c, BOOL, SetArgStr, STRPTR, string, d1, \
  535.     , DOS_BASE_NAME)
  536.  
  537. #define SetComment(name, comment) \
  538.     LP2(0xb4, LONG, SetComment, STRPTR, name, d1, STRPTR, comment, d2, \
  539.     , DOS_BASE_NAME)
  540.  
  541. #define SetConsoleTask(task) \
  542.     LP1(0x204, struct MsgPort *, SetConsoleTask, struct MsgPort *, task, d1, \
  543.     , DOS_BASE_NAME)
  544.  
  545. #define SetCurrentDirName(name) \
  546.     LP1(0x22e, BOOL, SetCurrentDirName, STRPTR, name, d1, \
  547.     , DOS_BASE_NAME)
  548.  
  549. #define SetFileDate(name, date) \
  550.     LP2(0x18c, LONG, SetFileDate, STRPTR, name, d1, struct DateStamp *, date, d2, \
  551.     , DOS_BASE_NAME)
  552.  
  553. #define SetFileSize(fh, pos, mode) \
  554.     LP3(0x1c8, LONG, SetFileSize, BPTR, fh, d1, long, pos, d2, long, mode, d3, \
  555.     , DOS_BASE_NAME)
  556.  
  557. #define SetFileSysTask(task) \
  558.     LP1(0x210, struct MsgPort *, SetFileSysTask, struct MsgPort *, task, d1, \
  559.     , DOS_BASE_NAME)
  560.  
  561. #define SetIoErr(result) \
  562.     LP1(0x1ce, LONG, SetIoErr, long, result, d1, \
  563.     , DOS_BASE_NAME)
  564.  
  565. #define SetMode(fh, mode) \
  566.     LP2(0x1aa, LONG, SetMode, BPTR, fh, d1, long, mode, d2, \
  567.     , DOS_BASE_NAME)
  568.  
  569. #define SetOwner(name, owner_info) \
  570.     LP2(0x3e4, BOOL, SetOwner, STRPTR, name, d1, long, owner_info, d2, \
  571.     , DOS_BASE_NAME)
  572.  
  573. #define SetProgramDir(lock) \
  574.     LP1(0x252, BPTR, SetProgramDir, BPTR, lock, d1, \
  575.     , DOS_BASE_NAME)
  576.  
  577. #define SetProgramName(name) \
  578.     LP1(0x23a, BOOL, SetProgramName, STRPTR, name, d1, \
  579.     , DOS_BASE_NAME)
  580.  
  581. #define SetPrompt(name) \
  582.     LP1(0x246, BOOL, SetPrompt, STRPTR, name, d1, \
  583.     , DOS_BASE_NAME)
  584.  
  585. #define SetProtection(name, protect) \
  586.     LP2(0xba, LONG, SetProtection, STRPTR, name, d1, long, protect, d2, \
  587.     , DOS_BASE_NAME)
  588.  
  589. #define SetVBuf(fh, buff, type, size) \
  590.     LP4(0x16e, LONG, SetVBuf, BPTR, fh, d1, STRPTR, buff, d2, long, type, d3, long, size, d4, \
  591.     , DOS_BASE_NAME)
  592.  
  593. #define SetVar(name, buffer, size, flags) \
  594.     LP4(0x384, BOOL, SetVar, STRPTR, name, d1, STRPTR, buffer, d2, long, size, d3, long, flags, d4, \
  595.     , DOS_BASE_NAME)
  596.  
  597. #define SplitName(name, seperator, buf, oldpos, size) \
  598.     LP5(0x19e, WORD, SplitName, STRPTR, name, d1, unsigned long, seperator, d2, STRPTR, buf, d3, long, oldpos, d4, long, size, d5, \
  599.     , DOS_BASE_NAME)
  600.  
  601. #define StartNotify(notify) \
  602.     LP1(0x378, BOOL, StartNotify, struct NotifyRequest *, notify, d1, \
  603.     , DOS_BASE_NAME)
  604.  
  605. #define StrToDate(datetime) \
  606.     LP1(0x2ee, LONG, StrToDate, struct DateTime *, datetime, d1, \
  607.     , DOS_BASE_NAME)
  608.  
  609. #define StrToLong(string, value) \
  610.     LP2(0x330, LONG, StrToLong, STRPTR, string, d1, LONG *, value, d2, \
  611.     , DOS_BASE_NAME)
  612.  
  613. #define SystemTagList(command, tags) \
  614.     LP2(0x25e, LONG, SystemTagList, STRPTR, command, d1, struct TagItem *, tags, d2, \
  615.     , DOS_BASE_NAME)
  616.  
  617. #define System(a0, a1) SystemTagList ((a0), (a1))
  618.  
  619. #ifndef NO_INLINE_STDARG
  620. #define SystemTags(a0, tags...) \
  621.     ({ULONG _tags[] = { tags }; SystemTagList((a0), (struct TagItem *)_tags);})
  622. #endif /* !NO_INLINE_STDARG */
  623.  
  624. #define UnGetC(fh, character) \
  625.     LP2(0x13e, LONG, UnGetC, BPTR, fh, d1, long, character, d2, \
  626.     , DOS_BASE_NAME)
  627.  
  628. #define UnLoadSeg(seglist) \
  629.     LP1NR(0x9c, UnLoadSeg, BPTR, seglist, d1, \
  630.     , DOS_BASE_NAME)
  631.  
  632. #define UnLock(lock) \
  633.     LP1NR(0x5a, UnLock, BPTR, lock, d1, \
  634.     , DOS_BASE_NAME)
  635.  
  636. #define UnLockDosList(flags) \
  637.     LP1NR(0x294, UnLockDosList, unsigned long, flags, d1, \
  638.     , DOS_BASE_NAME)
  639.  
  640. #define UnLockRecord(fh, offset, length) \
  641.     LP3(0x11a, BOOL, UnLockRecord, BPTR, fh, d1, unsigned long, offset, d2, unsigned long, length, d3, \
  642.     , DOS_BASE_NAME)
  643.  
  644. #define UnLockRecords(recArray) \
  645.     LP1(0x120, BOOL, UnLockRecords, struct RecordLock *, recArray, d1, \
  646.     , DOS_BASE_NAME)
  647.  
  648. #define VFPrintf(fh, format, argarray) \
  649.     LP3(0x162, LONG, VFPrintf, BPTR, fh, d1, STRPTR, format, d2, APTR, argarray, d3, \
  650.     , DOS_BASE_NAME)
  651.  
  652. #ifndef NO_INLINE_STDARG
  653. #define FPrintf(a0, a1, tags...) \
  654.     ({ULONG _tags[] = { tags }; VFPrintf((a0), (a1), (APTR)_tags);})
  655. #endif /* !NO_INLINE_STDARG */
  656.  
  657. #define VFWritef(fh, format, argarray) \
  658.     LP3NR(0x15c, VFWritef, BPTR, fh, d1, STRPTR, format, d2, LONG *, argarray, d3, \
  659.     , DOS_BASE_NAME)
  660.  
  661. #ifndef NO_INLINE_STDARG
  662. #define FWritef(a0, a1, tags...) \
  663.     ({ULONG _tags[] = { tags }; VFWritef((a0), (a1), (LONG *)_tags);})
  664. #endif /* !NO_INLINE_STDARG */
  665.  
  666. #define VPrintf(format, argarray) \
  667.     LP2(0x3ba, LONG, VPrintf, STRPTR, format, d1, APTR, argarray, d2, \
  668.     , DOS_BASE_NAME)
  669.  
  670. #ifndef NO_INLINE_STDARG
  671. #define Printf(a0, tags...) \
  672.     ({ULONG _tags[] = { tags }; VPrintf((a0), (APTR)_tags);})
  673. #endif /* !NO_INLINE_STDARG */
  674.  
  675. #define WaitForChar(file, timeout) \
  676.     LP2(0xcc, LONG, WaitForChar, BPTR, file, d1, long, timeout, d2, \
  677.     , DOS_BASE_NAME)
  678.  
  679. #define WaitPkt() \
  680.     LP0(0xfc, struct DosPacket *, WaitPkt, \
  681.     , DOS_BASE_NAME)
  682.  
  683. #define Write(file, buffer, length) \
  684.     LP3(0x30, LONG, Write, BPTR, file, d1, APTR, buffer, d2, long, length, d3, \
  685.     , DOS_BASE_NAME)
  686.  
  687. #define WriteChars(buf, buflen) \
  688.     LP2(0x3ae, LONG, WriteChars, STRPTR, buf, d1, unsigned long, buflen, d2, \
  689.     , DOS_BASE_NAME)
  690.  
  691. #endif /* _INLINE_DOS_H */
  692.