home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Exec.def < prev    next >
Text File  |  1994-05-25  |  53KB  |  1,741 lines

  1. |##########|
  2. |#MAGIC   #|CLABLILL
  3. |#PROJECT #|"IMPORTMath"
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx-x-x-xx-x-x-x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|x-------------------------------
  8. |#SWITCHES#|xx----xxxx-xx---
  9. |##########|
  10. DEFINITION MODULE Exec;
  11.  
  12. |   WARNING
  13. |
  14. | autodocs and fdfiles sometimes differ. search for "WARNING"
  15. |
  16.  
  17. |=========================================================================
  18. |
  19. |  Produkt           :  Cluster
  20. |  Projekt           :  Version 2.0
  21. |  Paket             :  Amiga Bibliotheken V2.04
  22. |  Komponente        :  Exec
  23. |  Baustein          :  Definitionsmodul
  24. |
  25. |  Datum        Version Autor           Kommentar
  26. |  ------------ ------- ----- ------------------------------------------------
  27. |   7 Jul 1992   01:13   WB    rem Resources.def from Exec for the hierarchy
  28. |   1 Jul 1992   01:12   WB    cleaning up etc. 11:07:59 AM
  29. |  18 Feb 1992   01:11   WB    added new functions Cache(Pre|Post)DMA
  30. |  27 Jan 1992   01:10   WB    start to change interface to pointers for OO
  31. |                              compatibility. added StackSwap*, changed
  32. |                              variablenames to lowercase.
  33. |  17 Nov 1991   01:09         added ConstGrp
  34. |  16 Nov 1991   01:08   WB    completed *Res Handles, FuncGrp,
  35. |                              PtrGrp and RecordGrp for T_Exec
  36. |  11 Nov 1991   01:07   WB    added IntFunc support
  37. |   8 Nov 1991   01:06   WB    added support for Resource tracking
  38. |   1 Oct 1991   01:05   WB    problem with NodeType fixed.
  39. |  19 Sep 1991   01:04   WB    last check
  40. |  30 Aug 1991   01:00   WB    filecreation
  41. |=========================================================================
  42.  
  43. | $Header: O:usr/Cluster/Modules/Port2.0/txt/RCS/Exec.def,v 1.4 91/09/20
  44. |          20:25:52 baron Exp Locker: baron $
  45.  
  46. | Groups in this module ( in this order ):
  47. |
  48. | Const,      Node,       List,       Int,        Mem,        Task,
  49. | MsgPort,    oldMsgPort, Lib,        DeviceIO,   Semaphore,  Resident,
  50. | ExecBase,   Special,    Signal,     Trap,       Resource,   Kick,
  51. | Private,    Cache,      Child,      Func,       Ptr,        Record
  52. |
  53.  
  54. | No structures are based on ResHandles due to multiple inheritance. Look
  55. | in T_Exec for ResHandles.
  56. |
  57. | MinNode, MinList, List, IntVector, MemChunk, MemEntry, Resident
  58. |
  59.  
  60. (* $A- *)
  61.  
  62.  
  63. FROM System    IMPORT
  64.       (* T *) BITSET,             BPTR,               LONGSET,
  65.           PROC,               Regs,               SysStringPtr;
  66.  
  67. FROM Hardware  IMPORT
  68.       (* T *) CustomPtr,          IntFlags,           IntFlagSet
  69.           (*,LIntFlags *);
  70.  
  71. |
  72. | sometimes you need ...
  73. |
  74. TYPE
  75.  
  76.   LONGPTR = POINTER TO LONGINT;
  77.  
  78. |
  79. | ExecBase forward for Library calls ( found in ExecBaseGrp )
  80. |
  81.  
  82. TYPE ExecBasePtr  = POINTER TO ExecBaseType;
  83.  
  84. VAR  ExecBase : ExecBasePtr;
  85.  
  86.  
  87.  
  88. |-------------------------------------------------------------------------
  89. | types
  90. |-------------------------------------------------------------------------
  91.  
  92. | most of CBM types are superfluous, as Cluster has its own definitions
  93. | This group is not included in All, as the members are not very important.
  94.  
  95. CONST
  96.  
  97.   includeVersion = 36;    | version of the includes used.
  98.   byteMask       = 255;   | For the fumblers.
  99.   libraryMinimum = 33;    | Lowest version supported by Commodore-Amiga.
  100.  
  101. GROUP
  102.  
  103.   ConstGrp = includeVersion, byteMask, libraryMinimum;
  104.  
  105.  
  106.  
  107. |-------------------------------------------------------------------------
  108. | nodes
  109. |-------------------------------------------------------------------------
  110.  
  111. TYPE
  112.  
  113.   | User node types work down from "user"
  114.   NodeType    = ( unknown,            task,               interrupt,
  115.           device,             msgPort,            message,
  116.           freeMsg,            replyMsg,           resoucre,
  117.           library,            memory,             softInt,
  118.           font,               process,            semaphore,
  119.           signalSem,          bootNode,           (* v36 *)
  120.           kickMem,            graphics,           deathMessage,
  121.           user = 254,         extended );
  122.  
  123.   NodePri       = [-128..127]; | SHORTINT;
  124.  
  125.   MinNodePtr    = POINTER TO MinNode;
  126.   MinNode       = RECORD                                | 8 Bytes
  127.             succ,
  128.             pred  : SAMEPTR;
  129.           END;
  130.  
  131.   NodePtr       = POINTER TO Node;
  132.   Node          = RECORD OF MinNode                     | 14 Bytes
  133.             type  : NodeType;
  134.             pri   : NodePri;
  135.             name  : SysStringPtr;
  136.           END;
  137.  
  138. GROUP
  139.  
  140.   NodeGrp =
  141.       (* I *) SysStringPtr,
  142.       (* T *) MinNode,            MinNodePtr,         Node,
  143.           NodePtr,            NodeType;
  144.  
  145.  
  146.  
  147. |-------------------------------------------------------------------------
  148. | lists
  149. |-------------------------------------------------------------------------
  150.  
  151. TYPE
  152.  
  153.   MinListPtr    = POINTER TO MinList;
  154.   MinList       = RECORD                                | 12 Bytes
  155.             head,
  156.             tail,
  157.             tailPred : MinNodePtr
  158.           END;
  159.  
  160.   ListPtr       = POINTER TO List;
  161.   List          = RECORD                                | 14 Bytes
  162.             head,
  163.             tail,
  164.             tailPred : NodePtr;
  165.             type     : NodeType;
  166.             pad      : SHORTCARD
  167.           END;
  168.  
  169. |
  170. | As List cannot be made a successor of MinList, we have to define seperate
  171. | functions for listfunctions, which can be used both for Nodes/Lists and
  172. | MinNodes/MinLists. The Min* variant will have an 'M' before the object.
  173. |
  174.  
  175. LIBRARY ExecBase BY -240
  176.   PROCEDURE AddHead( list IN A0 : ListPtr;
  177.              node IN A1 : NodePtr );
  178.  
  179. LIBRARY ExecBase BY -240
  180.   PROCEDURE AddMHead( minList IN A0 : MinListPtr;
  181.               minNode IN A1 : MinNodePtr );
  182.  
  183. LIBRARY ExecBase BY -246
  184.   PROCEDURE AddTail( list IN A0 : ListPtr;
  185.              node IN A1 : NodePtr );
  186.  
  187. LIBRARY ExecBase BY -246
  188.   PROCEDURE AddMTail( minList IN A0 : MinListPtr;
  189.               minNode IN A1 : MinNodePtr );
  190.  
  191. | initialize a piece of memory pointed to by "list" to be an empty list.
  192. PROCEDURE NewList( VAR list : List;
  193.                type : NodeType );
  194.  
  195. PROCEDURE NewMList( VAR minList : MinList );
  196.  
  197. | no MinNodes allowed.
  198. LIBRARY ExecBase BY -270
  199.   PROCEDURE Enqueue( list IN A0 : ListPtr;
  200.              node IN A1 : NodePtr );
  201.  
  202. LIBRARY ExecBase BY -276
  203.   PROCEDURE FindName( list IN A0 : ListPtr;
  204.               name IN A1 : SysStringPtr ): NodePtr;
  205.  
  206. LIBRARY ExecBase BY -234
  207.   PROCEDURE Insert( list     IN A0 : ListPtr;
  208.             node     IN A1,
  209.             listNode IN A2 : NodePtr );
  210.  
  211. LIBRARY ExecBase BY -234
  212.   PROCEDURE MInsert( minList     IN A0 : MinListPtr;
  213.              minNode     IN A1,
  214.              minListNode IN A2 : MinNodePtr );
  215.  
  216. LIBRARY ExecBase BY -258
  217.   PROCEDURE RemHead( list IN A0 : ListPtr ): NodePtr;
  218.  
  219. LIBRARY ExecBase BY -258
  220.   PROCEDURE RemMHead( minList IN A0 : MinListPtr ): MinNodePtr;
  221.  
  222. | works for Nodes just as well
  223. LIBRARY ExecBase BY -252
  224.   PROCEDURE Remove( minNode IN A1 : MinNodePtr );
  225.  
  226. LIBRARY ExecBase BY -264
  227.   PROCEDURE RemTail( list IN A0 : ListPtr ): NodePtr;
  228.  
  229. LIBRARY ExecBase BY -264
  230.   PROCEDURE RemMTail( minList IN A0 : MinListPtr ): MinNodePtr;
  231.  
  232. GROUP
  233.  
  234.   ListGrp =
  235.       (* I *) NodeGrp,
  236.       (* T *) List,               ListPtr,            MinList,
  237.           MinListPtr,
  238.       (* P *) AddHead,            AddTail,            NewList,
  239.           Enqueue,            FindName,           Insert,
  240.           RemHead,            Remove,             RemTail;
  241.  
  242.  
  243.  
  244. |-------------------------------------------------------------------------
  245. | interrupts
  246. |-------------------------------------------------------------------------
  247.  
  248. TYPE
  249.  
  250.   InterruptPtr    = POINTER TO Interrupt;
  251.  
  252.   | Functions which can be used as interupt code.
  253.   IntFuncPtr      = POINTER TO IntFunc;
  254.   IntFunc         = PROCEDURE( data IN A1 : ANYPTR;       | Interrupt.data
  255.                    custom IN A0 : CustomPtr;
  256.                    int    IN D1 : IntFlagSet; | intenar AND
  257.                               | intreqr
  258.                    mycode IN A5 : IntFuncPtr;
  259.                    exec   IN A6 : ExecBasePtr ) : LONGINT;
  260.  
  261.   Interrupt       = RECORD OF Node                      | 22 Bytes
  262.               data : ANYPTR;
  263.               code : PROC;                      | IntFunc
  264.             END;
  265.  
  266.   | For ExecBase use only
  267.   IntVectorPtr    = POINTER TO IntVector;
  268.   IntVector       = RECORD                              | 12 Bytes
  269.               data : ANYPTR;
  270.               code : PROC;
  271.               node : NodePtr
  272.             END;
  273.  
  274.   | For ExecBase use only
  275.   SoftIntListPtr  = POINTER TO SoftIntList;
  276.   SoftIntList     = RECORD OF List                | 16 Bytes
  277.               pad  : CARDINAL             | keep longword alignment
  278.             END;
  279.  
  280. PROCEDURE AddIntServer( intNumber : IntFlags;      | Autodocs are wrong
  281.             interrupt : InterruptPtr );
  282.  
  283. |LIBRARY ExecBase BY -168
  284.   |PROCEDURE AddIntServer( intNumber IN D0 : IntFlags; | Autodocs are wrong
  285.   |                        interrupt IN A1 : InterruptPtr );
  286.  
  287. LIBRARY ExecBase BY -180
  288.   PROCEDURE Cause( (* REF *) Interrupt IN A1 : InterruptPtr );
  289.  
  290. LIBRARY ExecBase BY -120
  291.   PROCEDURE Disable;
  292.  
  293. LIBRARY ExecBase BY -126
  294.   PROCEDURE Enable;
  295.  
  296. LIBRARY ExecBase BY -132
  297.   PROCEDURE Forbid;
  298.  
  299. LIBRARY ExecBase BY -138
  300.   PROCEDURE Permit;
  301.  
  302.   PROCEDURE RemIntServer( intNumber : IntFlags;        | Autodocs are wrong
  303.               interrupt : InterruptPtr );
  304.  
  305. |LIBRARY ExecBase BY -174
  306.   |PROCEDURE RemIntServer( intNumber IN D0 : IntFlags; | Autodocs are wrong
  307.   |                        interrupt IN A1 : InterruptPtr );
  308.  
  309.  
  310. PROCEDURE SetIntVector( intNumber : IntFlags;          | Autodocs are wrong
  311.             interrupt : InterruptPtr ): InterruptPtr;
  312.  
  313. |LIBRARY ExecBase BY -162
  314.   |PROCEDURE SetIntVector( intNumber IN D0 : IntFlags; | Autodocs are wrong
  315.   |                        interrupt IN A1 : InterruptPtr ): InterruptPtr;
  316.  
  317. LIBRARY ExecBase BY -144
  318.   PROCEDURE SetSR( newSR IN D0 : BITSET; mask IN D1 : BITSET ): BITSET;
  319.  
  320. LIBRARY ExecBase BY -150
  321.   PROCEDURE SuperState(): ANYPTR;
  322.  
  323. LIBRARY ExecBase BY -30
  324.   PROCEDURE Supervisor( userFunction IN A5: PROC );
  325.  
  326. LIBRARY ExecBase BY -156
  327.   PROCEDURE UserState( sysStack IN D0 : ANYPTR );
  328.  
  329.  
  330. GROUP
  331.  
  332.   IntGrp  =
  333.       (* I *) IntFlags,           (*LIntFlags,*)      ListGrp,
  334.           PROC,
  335.       (* T *) Interrupt,          InterruptPtr,       IntFunc,
  336.           IntFuncPtr,         IntVector,          IntVectorPtr,
  337.           SoftIntList,        SoftIntListPtr,
  338.       (* P *) AddIntServer,       Cause,              Disable,
  339.           Enable,             Forbid,             Permit,
  340.           RemIntServer,       SetIntVector,       SetSR,
  341.           SuperState,         Supervisor,         UserState;
  342.  
  343.  
  344.  
  345. |-------------------------------------------------------------------------
  346. | memory
  347. |-------------------------------------------------------------------------
  348.  
  349. TYPE
  350.  
  351.   | local, dma24, reverse and total are new for V36.
  352.   | dma24 is memory within the 24 bit address space.
  353.   MemReqs       = ( public,   chip,     fast,     mr3,      mr4,      mr5,
  354.             mr6,      mr7,      local,    dma24,    mr10,     mr11,
  355.             mr12,     mr13,     mr14,     mr15,     clear, largest,
  356.             reverse,  total );
  357.   | clear used to be memClear when the compiler did not like it
  358.  
  359.   MemReqSet     = SET OF MemReqs;
  360.   MemTypeSet    = SET OF [public..mr15];
  361.  
  362.   MemChunkPtr   = POINTER TO MemChunk;
  363.   MemChunk      = RECORD                                | 8 Bytes
  364.             next  : MemChunkPtr;
  365.             bytes : LONGCARD
  366.           END;
  367.  
  368.   MemHeaderPtr  = POINTER TO MemHeader;
  369.   MemHeader     = RECORD OF Node                        | 32 Bytes
  370.             attributes : MemTypeSet;
  371.             first      : MemChunkPtr;
  372.             lower      : ANYPTR;
  373.             upper      : ANYPTR;
  374.             free       : LONGCARD
  375.           END;
  376.  
  377.   MemEntryPtr   = POINTER TO MemEntry;
  378.   MemEntry      = RECORD                                | 8 Bytes
  379.             IF KEY :INTEGER
  380.               OF 1 THEN reqs : MemReqSet
  381.               OF 2 THEN addr : ANYPTR
  382.             END;
  383.             length : LONGCARD;
  384.           END;
  385.  
  386.   MemListPtr    = POINTER TO MemList;
  387.   MemList       = RECORD OF Node           | 16+me'RANGE*8 Bytes
  388.             numEntries : CARDINAL;
  389.             me         : ARRAY [1000] OF MemEntry;
  390.           END;
  391.  
  392.  
  393. LIBRARY ExecBase BY -204
  394.   PROCEDURE AllocAbs( byteSize IN D0 : LONGINT;
  395.               location IN A1 : ANYPTR ): ANYPTR;
  396.  
  397. LIBRARY ExecBase BY -186
  398.   PROCEDURE Allocate( freeList IN A0 : MemHeaderPtr;
  399.               byteSize IN D0 : LONGCARD ): ANYPTR;
  400.  
  401. LIBRARY ExecBase BY -222
  402.   PROCEDURE AllocEntry( memList IN A0 : MemListPtr ): MemListPtr;
  403.  
  404. LIBRARY ExecBase BY -198
  405.   PROCEDURE AllocMem( byteSize     IN D0 : LONGCARD; | WARNING: used to be
  406.                              | LONGINT
  407.               requirements IN D1 : MemReqSet ): ANYPTR;
  408.  
  409. | no doc available, prototype from fd file and thin air (V37).
  410. LIBRARY ExecBase BY -708
  411.   PROCEDURE AllocPooled( memSize    IN D0 : LONGCARD;
  412.              poolHeader IN A0 : ANYPTR ): ANYPTR;
  413.  
  414. | allocate memory and keep track of the size  (V36)
  415. | like AllocMem, but remembers the size. FREE WITH FreeVec !!!
  416. LIBRARY ExecBase BY -684
  417.   PROCEDURE AllocVec( byteSize     IN D0 : LONGCARD;
  418.               requirements IN D1 : MemReqSet ): ANYPTR;
  419.  
  420. LIBRARY ExecBase BY -216
  421.   PROCEDURE AvailMem( requirements IN D1 : MemReqSet ): LONGCARD;
  422.  
  423. | no doc available, prototype from fd file and thin air (V37).
  424. LIBRARY ExecBase BY -696
  425.   PROCEDURE CreatePrivatePool( requirements IN D0 : MemReqSet; | this is
  426.                                    | a guess
  427.                    puddleSize   IN D1,
  428.                    puddleThresh IN D2 : LONGCARD ): ANYPTR;
  429.  
  430. LIBRARY ExecBase BY -192
  431.   PROCEDURE Deallocate( freeList    IN A0 : MemHeaderPtr;
  432.             memoryBlock IN A1 : ANYPTR;
  433.             byteSize    IN D0 : LONGCARD );
  434.  
  435. | no doc available, prototype from fd file and thin air (V37).
  436. LIBRARY ExecBase BY -702
  437.   PROCEDURE DeletePrivatePool( poolHeader IN A0 : ANYPTR );
  438.  
  439. LIBRARY ExecBase BY -228
  440.   PROCEDURE FreeEntry( memList IN A0 : MemListPtr );
  441.  
  442. LIBRARY ExecBase BY -210
  443.   PROCEDURE FreeMem( memoryBlock IN A1 : ANYPTR;
  444.              byteSize    IN D0 : LONGCARD );
  445.  
  446. | no doc available, prototype from fd file and thin air (V37).
  447. LIBRARY ExecBase BY -714
  448.   PROCEDURE FreePooled( memory IN A1, poolHeader IN A0 : ANYPTR ) : ANYPTR;
  449.  
  450. | return AllocVec() memory to the system  (V36)
  451. LIBRARY ExecBase BY -690
  452.   PROCEDURE FreeVec( memoryBlock IN A1: ANYPTR );
  453.  
  454. LIBRARY ExecBase BY -534
  455.   PROCEDURE TypeOfMem( address IN A0 : ANYPTR ): MemReqSet;
  456.  
  457.  
  458. GROUP
  459.  
  460.   | New for V36 are AllocPooled, AllocVec, CreatePrivatePool,
  461.   | DeletePrivatePool, FreePooled, FreeVec.
  462.   MemGrp  =
  463.       (* I *)   NodeGrp,
  464.       (* T *) MemChunk,           MemChunkPtr,        MemEntry,
  465.           MemEntryPtr,        MemHeader,          MemHeaderPtr,
  466.           MemList,            MemListPtr,         MemReqs,
  467.           MemReqSet,          MemTypeSet,
  468.       (* P *) AllocAbs,           Allocate,           AllocEntry,
  469.           AllocMem,           AllocPooled,        AllocVec,
  470.           AvailMem,           CreatePrivatePool,  Deallocate,
  471.           DeletePrivatePool,  FreeEntry,          FreeMem,
  472.           FreePooled,         FreeVec,            TypeOfMem;
  473.  
  474.  
  475.  
  476. |-------------------------------------------------------------------------
  477. | tasks
  478. |-------------------------------------------------------------------------
  479.  
  480. TYPE
  481.  
  482.   | etask is new for V36
  483.   TaskFlags     = ( procTime,   tf1,        tf2,        etask,
  484.             stackChk,   exception,  switch,     launch );
  485.   TaskFlagSet   = SET OF TaskFlags;
  486.  
  487.   TaskState     = ( inval, added, run, ready, wait, except, removed );
  488.  
  489.   | Signals 0-15 are preallocated, but only some have official names. The
  490.   | highest 16 signals (upto max) are there for the task's use. Please do
  491.   | allocate them before using them
  492.   |
  493.   TaskSignals   = ( noSignal  = -1,
  494.             anySignal = -1,
  495.             abort,        child,        ts2,          ts3,
  496.             blit,         single=4,     intuition,    ts6,
  497.             ts7,          dos,          ts9,          ts10,
  498.             ts11,         ctrlC,        ctrlD,        ctrlE,
  499.             ctrlF,        user16,       user17,       user18,
  500.                     user19,       user20,       user21,       user22,
  501.             user24,       user25,       user26,       user27,
  502.             user28,       user29,       user30,       user31 );
  503.   TaskSigSet    = SET OF TaskSignals;
  504.  
  505.   | Procedures registered as exceptCode get called like this. 'data' is
  506.   | the exceptData field from the Task RECORD. 'signals' is the set of
  507.   | exceptions, that occured. The result value of an ExceptPROC is put
  508.   | into sigExcept, thus setting the signals which can cause a soft
  509.   | exception from then on. The Cluster runtimesystem has an
  510.   | exceptionhandling routine of its own, so be careful to use this
  511.   | possibilty on your own.
  512.   |
  513.   ExceptPROC    = PROCEDURE( signals IN D0 : TaskSigSet;
  514.                  data    IN A1 : ANYPTR ) : TaskSigSet;
  515.  
  516.   TaskPtr       = POINTER TO Task;
  517.   Task          = RECORD OF Node                        | 92 Bytes
  518.             flags     : TaskFlagSet;
  519.             state     : TaskState;
  520.             idNestCnt,
  521.             tdNestCnt : SHORTINT;  | WARNING: used to be SHORTCARD
  522.             sigAlloc,
  523.             sigWait,
  524.             sigRecvd,
  525.             sigExcept : TaskSigSet;
  526.             trapAlloc,
  527.             trapAble  : BITSET;
  528.             exceptData: ANYPTR;
  529.             exceptCode: ExceptPROC;
  530.             trapData  : ANYPTR;
  531.             trapCode  : PROC;
  532.             spReg,
  533.             spLower,
  534.             spUpper   : ANYPTR;
  535.             switch,
  536.             launch    : PROC;
  537.             memEntry  : List;
  538.             userData  : ANYPTR;
  539.           END;
  540.  
  541. CONST
  542.  
  543.   | WARNING: Sig* are now real signals, not the Bit numbers.
  544.   SigAbort    = TaskSigSet:{ abort };
  545.   SigChild    = TaskSigSet:{ child };
  546.   SigBlit     = TaskSigSet:{ blit };      | same as single
  547.   SigSingle   = TaskSigSet:{ single };    | same as blit
  548.   SigDos      = TaskSigSet:{ dos };       | used for Dos calls
  549.   SigCtrlC    = TaskSigSet:{ ctrlC };
  550.   SigCtrlD    = TaskSigSet:{ ctrlD };
  551.   SigCtrlE    = TaskSigSet:{ ctrlE };
  552.   SigCtrlF    = TaskSigSet:{ ctrlF };
  553.  
  554.  
  555. LIBRARY ExecBase BY -282
  556.   PROCEDURE AddTask( task      IN A1 : TaskPtr;
  557.              initialPC IN A2 : ANYPTR;
  558.              finalPC   IN A3 : ANYPTR ): TaskPtr;
  559.  
  560. LIBRARY ExecBase BY -288
  561.   PROCEDURE RemTask( task IN A1 : TaskPtr );
  562.  
  563. LIBRARY ExecBase BY -294
  564.   PROCEDURE FindTask( name IN A1 : SysStringPtr ): TaskPtr;
  565.  
  566. LIBRARY ExecBase BY -300
  567.   PROCEDURE SetTaskPri( task IN A1 : TaskPtr;
  568.             pri  IN D0 : NodePri ): NodePri;
  569.  
  570. | CreateTask and DeleteTask are in T_Exec
  571.  
  572. GROUP
  573.  
  574.   TaskGrp =
  575.       (* I *) ListGrp,            PROC,
  576.       (* T *) ExceptPROC,         Task,               TaskFlags,
  577.           TaskFlagSet,        TaskPtr,            TaskSignals,
  578.           TaskSigSet,         TaskState,
  579.       (* C *) SigAbort,           SigBlit,            SigChild,
  580.           SigDos,             SigSingle,          SigCtrlC,
  581.           SigCtrlD,           SigCtrlE,           SigCtrlF,
  582.       (* P *) AddTask,            FindTask,           RemTask,
  583.           SetTaskPri;
  584.  
  585.  
  586.  
  587. |-------------------------------------------------------------------------
  588. | ports
  589. |-------------------------------------------------------------------------
  590.  
  591. TYPE
  592.  
  593.   MsgPortAction = ( signal, softInt, ignore );
  594.  
  595.   MsgPortPtr    = POINTER TO MsgPort;
  596.   MsgPort       = RECORD OF Node
  597.             IF KEY flags : MsgPortAction
  598.               OF signal  THEN sigBit  : TaskSignals;
  599.                       sigTask : TaskPtr
  600.               OF softInt THEN softInt : InterruptPtr
  601.             END;
  602.             msgList : List;
  603.           END;
  604.  
  605.   MessagePtr    = POINTER TO Message;
  606.   Message       = RECORD OF Node
  607.             replyPort : MsgPortPtr;
  608.             msgSize   : CARDINAL;    | include Message'SIZE !!!
  609.           END;
  610.  
  611.  
  612. LIBRARY ExecBase BY -354
  613.   PROCEDURE AddPort( port IN A1 : MsgPortPtr );
  614.  
  615. | Allocate and initialize a new message port  (V36)
  616. | Alloc a signal, clear msgList and set port to signal the calling task.
  617. | To make public, set name and pri, AddPort, use, RemPort and DeleteMsgPort.
  618. | YOU *MUST* USE DeleteMsgPort TO DELETE PORTS CREATED WITH CreateMsgPort!
  619. LIBRARY ExecBase BY -666
  620.   PROCEDURE CreateMsgPort(): MsgPortPtr;
  621.  
  622. | Free a message port created by CreateMsgPort  (V36)
  623. | port may be NIL. msgList MUST already be empty.
  624. LIBRARY ExecBase BY -672
  625.   PROCEDURE DeleteMsgPort( port IN A0 : MsgPortPtr );
  626.  
  627. LIBRARY ExecBase BY -390
  628.   PROCEDURE FindPort( REF name IN A1 : STRING ): MsgPortPtr;
  629.  
  630. LIBRARY ExecBase BY -372
  631.   PROCEDURE GetMsg( port IN A0 : MsgPortPtr ): MessagePtr;
  632.  
  633. LIBRARY ExecBase BY -366
  634.   PROCEDURE PutMsg( port IN A0 : MsgPortPtr;
  635.             msg  IN A1 : MessagePtr );
  636.  
  637. LIBRARY ExecBase BY -360
  638.   PROCEDURE RemPort( port IN A1 : MsgPortPtr );
  639.  
  640. LIBRARY ExecBase BY -378
  641.   PROCEDURE ReplyMsg( msg IN A1 : MessagePtr );
  642.  
  643. LIBRARY ExecBase BY -384
  644.   PROCEDURE WaitPort( port IN A0 : MsgPortPtr ): MessagePtr;
  645.  
  646. GROUP
  647.  
  648.   MsgPortGrp =
  649.   (* I *)   TaskGrp,
  650.   (* T *)   Message,        MessagePtr,     MsgPort,        MsgPortAction,
  651.         MsgPortPtr,
  652.   (* P *)   AddPort,        CreateMsgPort,  DeleteMsgPort,  FindPort,
  653.         GetMsg,         PutMsg,         RemPort,
  654.         ReplyMsg,       WaitPort;
  655.  
  656.  
  657. |-------------------------------------------------------------------------
  658. | libraries
  659. |-------------------------------------------------------------------------
  660.  
  661. CONST
  662.  
  663.   vectSize      = 6;
  664.   reserved      = 4;
  665.   base          = -vectSize;
  666.   userDef       = base-reserved*vectSize;
  667.   nonStd        = userDef;
  668.  
  669.   extFunc       = -24;  | user functions begin here
  670.   expunge       = -18;
  671.   close         = -12;
  672.   open          = -6;
  673.  
  674. TYPE
  675.  
  676.   LibFlags      = ( summing,  | currently being checksummed
  677.             changed,  | has just been changed
  678.             sumUsed,  | should be summed
  679.             delExp ); | delayed expunge
  680.   LibFlagSet    = SET OF LibFlags;
  681.  
  682.   LibraryPtr    = POINTER TO Library;
  683.   Library       = RECORD OF Node                  | 34 Bytes
  684.             flags    : LibFlagSet;
  685.             libPad   : SHORTCARD;   | WARNING: was missing here
  686.             negSize,
  687.             posSize,
  688.             version,
  689.             revision : CARDINAL;
  690.             idString : SysStringPtr;
  691.             sum      : LONGCARD;
  692.             openCnt  : CARDINAL;
  693.           END;                   | Warning: not a longword multiple
  694.  
  695.   LibInitProc   = PROCEDURE ( lib     IN D0 : LibraryPtr;
  696.                   segList IN A0 : BPTR;
  697.                   exec    IN A6 : ExecBasePtr ): LibraryPtr;
  698.  
  699.   FuncArrayPtr  = POINTER TO ARRAY OF PROC;
  700.  
  701. LIBRARY ExecBase BY -396
  702.   PROCEDURE AddLibrary( library IN A1 : LibraryPtr );
  703.  
  704. LIBRARY ExecBase BY -414
  705.   PROCEDURE CloseLibrary( library IN A1 : LibraryPtr );
  706.  
  707. LIBRARY ExecBase BY -90
  708.   PROCEDURE MakeFunctions( target        IN A0 : ANYPTR;
  709.                functArray    IN A1 : ANYPTR;
  710.                functDispBase IN A2 : ANYPTR );
  711.  
  712. LIBRARY ExecBase BY -84
  713.   PROCEDURE MakeLibrary( vectors   IN A0 : FuncArrayPtr;
  714.              structure IN A1 : ANYPTR;
  715.              init      IN A2 : LibInitProc;
  716.              dataSize  IN D0 : LONGCARD;
  717.              segList   IN D1 : BPTR ): LibraryPtr;
  718.  
  719. LIBRARY ExecBase BY -408
  720.   PROCEDURE OldOpenLibrary( REF name IN A1 : STRING ): LibraryPtr;
  721.  
  722. LIBRARY ExecBase BY -552
  723.   PROCEDURE OpenLibrary( REF name    IN A1 : STRING;
  724.                  version IN D0 : LONGINT ): LibraryPtr;
  725.  
  726. LIBRARY ExecBase BY -402
  727.   PROCEDURE RemLibrary( library IN A1 : LibraryPtr );
  728.  
  729. LIBRARY ExecBase BY -420
  730.   PROCEDURE SetFunction( library    IN A1 : LibraryPtr;
  731.              funcOffset IN A0 : INTEGER;
  732.              funcEntry  IN D0 : ANYPTR   ): ANYPTR;
  733.  
  734. | no doc available, prototype from fd file and thin air.
  735. LIBRARY ExecBase BY -720
  736.   PROCEDURE SetFunction8( funcOffset  IN D0 : LONGCARD;
  737.               newFunction IN D1 : ANYPTR;
  738.               array       IN A0 : ANYPTR;
  739.               library     IN A1 : LibraryPtr ): ANYPTR;
  740.  
  741. LIBRARY ExecBase BY -426
  742.   PROCEDURE SumLibrary( library IN A1 : LibraryPtr );
  743.  
  744. GROUP
  745.  
  746.   | New for V36 is SetFunction8.
  747.   LibGrp  =
  748.   (* I *)   BPTR,           NodeGrp,
  749.   (* T *)   FuncArrayPtr,   LibInitProc,    Library,        LibraryPtr,
  750.   (* C *)   base,           close,          expunge,        extFunc,
  751.         nonStd,         open,           reserved,       userDef,
  752.         vectSize,
  753.   (* P *)   AddLibrary,     CloseLibrary,   MakeFunctions,  MakeLibrary,
  754.         OldOpenLibrary, OpenLibrary,    RemLibrary,     SetFunction,
  755.         SetFunction8,   SumLibrary;
  756.  
  757.  
  758.  
  759. |-------------------------------------------------------------------------
  760. | devices
  761. |-------------------------------------------------------------------------
  762.  
  763. TYPE
  764.  
  765.   DevicePtr     = POINTER TO Device;
  766.   Device        = RECORD OF Library END;
  767.  
  768.   UnitFlags     = ( active, inTask );
  769.   UnitFlagSet   = SET OF UnitFlags;
  770.  
  771.   UnitPtr       = POINTER TO Unit;
  772.   Unit          = RECORD OF MsgPort;
  773.             flags    : UnitFlagSet;
  774.             unit_Pad : SHORTCARD;     | WARNING: added
  775.             openCnt  : CARDINAL
  776.           END;
  777.  
  778. |-------------------------------------------------------------------------
  779. | + io
  780. |-------------------------------------------------------------------------
  781.  
  782. TYPE
  783.  
  784.   IOFlags       = ( IOquick, IO1, IO2, IO3, IO4, IO5, IO6, IO7 );
  785.   IOFlagSet     = SET OF IOFlags;
  786.  
  787.   | CARDINAL values for I/O command
  788.   IOCommand   = ( invalid,            reset,              read,
  789.           write,              update,             clear,
  790.           stop,               start,              flush,
  791.           nonstd,             makemecard = $7FFF );
  792.  
  793.   | SHORTCARD return values for device IO functions and the error field
  794.   IOReturn    = ( badLength = $FC,
  795.           noCmd     = $FD,
  796.           aborted   = $FE,
  797.           openFail  = $FF,
  798.           ioOk      = 0);
  799.  
  800. CONST
  801.  
  802.   | used more easily to extend IOCommand
  803.   nonstdVAL    = CARDINAL( nonstd );
  804.  
  805.   | offsets into device structures
  806.   abortIO       = -36;
  807.   beginIO       = -30;
  808.  
  809.   quick         = IOFlagSet:{ IOquick };
  810.  
  811.  
  812. TYPE
  813.  
  814.   IORequestPtr  = POINTER TO IORequest;
  815.   IORequest     = RECORD OF Message
  816.             device  : DevicePtr;
  817.             unit    : UnitPtr;
  818.             command : IOCommand;     | CARDINAL
  819.             flags   : IOFlagSet;
  820.             error   : IOReturn;      | SHORTCARD
  821.           END;
  822.  
  823.   IOStdReqPtr   = POINTER TO IOStdReq;
  824.   IOStdReq      = RECORD OF IORequest
  825.             actual,
  826.             length  : LONGCARD;
  827.             data    : ANYPTR;
  828.             offset  : LONGCARD;
  829.           END;
  830.  
  831. | devices
  832.  
  833. LIBRARY ExecBase BY -432
  834.   PROCEDURE AddDevice( device IN A1 : DevicePtr );
  835.  
  836. LIBRARY ExecBase BY -450
  837.   PROCEDURE CloseDevice( ioRequest IN A1 : IORequestPtr );
  838.  
  839. | create an IORequest structure  (V36)
  840. | Allocates memory for and initializes a new IO request block.
  841. | size must be at least Message'SIZE
  842. | port may be the non-NIL return value of CreateMsgPort.
  843. | returns a pointer to the new IORequest block, or NIL.
  844. LIBRARY ExecBase BY -654
  845.   PROCEDURE CreateIORequest( port IN A0 : MsgPortPtr;
  846.                  size IN D0 : LONGCARD ): IORequestPtr;
  847.  
  848. | DeleteIORequest() - Free a request made by CreateIORequest()  (V36)
  849. LIBRARY ExecBase BY -660
  850.   PROCEDURE DeleteIORequest( iorequest IN A0 : IORequestPtr );
  851.  
  852. |   OpenDevice
  853. |
  854. | returns a sign extended copy of ioRequest.error.
  855. LIBRARY ExecBase BY -444
  856.   PROCEDURE OpenDevice( REF devName   IN A0 : STRING;
  857.                 unit      IN D0 : LONGCARD;
  858.                 ioRequest IN A1 : IORequestPtr;
  859.                 flags     IN D1 : LONGSET ): IOReturn;
  860.  
  861. LIBRARY ExecBase BY -438
  862.   PROCEDURE RemDevice( device IN A1 : DevicePtr );
  863.  
  864. |
  865. |  I/O Functions
  866. |
  867. | !! NOTE !! LONGINT return values are the sign extended version of
  868. | ioRequest.error !
  869. |
  870.  
  871. LIBRARY ExecBase BY -480
  872.   PROCEDURE AbortIO( ioRequest IN A1 : IORequestPtr );
  873.  
  874. LIBRARY ExecBase BY -468
  875.   PROCEDURE CheckIO( ioRequest IN A1 : IORequestPtr ): IORequestPtr;
  876.  
  877. LIBRARY ExecBase BY -456
  878.   PROCEDURE DoIO( ioRequest IN A1 : IORequestPtr ): IOReturn;
  879.  
  880. LIBRARY ExecBase BY -462
  881.   PROCEDURE SendIO( ioRequest IN A1 : IORequestPtr );
  882.  
  883. LIBRARY ExecBase BY -474
  884.   PROCEDURE WaitIO( ioRequest IN A1 : IORequestPtr ): IOReturn;
  885.  
  886. GROUP
  887.  
  888.   | new for V36 are CreateIORequest and DeleteIORequest.
  889.   DeviceIOGrp =
  890.   (* I *)       LibGrp,           MsgPortGrp,
  891.   (* T *)       Device,           DevicePtr,        IOFlagSet,
  892.         IORequest,        IORequestPtr,     IOStdReq,
  893.         IOStdReqPtr,      Unit,             UnitFlags,
  894.         UnitFlagSet,      UnitPtr,
  895.   (* C *)       abortIO,          beginIO,          nonStd,
  896.         nonstdVAL,        quick,
  897.   (* P *)       AbortIO,          AddDevice,        CheckIO,
  898.         CloseDevice,      CreateIORequest,  DeleteIORequest,
  899.         DoIO,             OpenDevice,       RemDevice,
  900.         SendIO,           WaitIO;
  901.  
  902.  
  903.  
  904. |-------------------------------------------------------------------------
  905. | semaphores
  906. |-------------------------------------------------------------------------
  907.  
  908. TYPE
  909.  
  910.   SemaphoreRequestPtr = POINTER TO SemaphoreRequest;
  911.   SemaphoreRequest    = RECORD OF MinNode
  912.               waiter : TaskPtr;
  913.             END;
  914.  
  915.   SignalSemaphorePtr  = POINTER TO SignalSemaphore;
  916.   SignalSemaphore     = RECORD OF Node
  917.               nestCount    : INTEGER;
  918.               waitQueue    : MinList;
  919.               multipleLink : SemaphoreRequest;
  920.               owner        : TaskPtr;
  921.               queueCount   : INTEGER;
  922.             END;
  923.  
  924.   SemaphorePtr        = POINTER TO Semaphore;
  925.   Semaphore           = RECORD OF MsgPort
  926.               bids : INTEGER
  927.             END;
  928.  
  929. LIBRARY ExecBase BY -600
  930.   PROCEDURE AddSemaphore( sigSema IN A1 : SignalSemaphorePtr );
  931.  
  932. LIBRARY ExecBase BY -576
  933.   PROCEDURE AttemptSemaphore(sigSema IN A0 : SignalSemaphorePtr):BOOLEAN;
  934.  
  935. LIBRARY ExecBase BY -594
  936.   PROCEDURE FindSemaphore( name IN A1 : SysStringPtr ): SignalSemaphore;
  937.  
  938. LIBRARY ExecBase BY -558
  939.   PROCEDURE InitSemaphore( sigSema IN A0 : SignalSemaphorePtr );
  940.  
  941. LIBRARY ExecBase BY -564
  942.   PROCEDURE ObtainSemaphore( sigSema IN A0 : SignalSemaphorePtr );
  943.  
  944. LIBRARY ExecBase BY -582
  945.   PROCEDURE ObtainSemaphoreList( list IN A0 : ListPtr );
  946.  
  947. | gain shared access to a semaphore (V36)
  948. | works like you would expect even on older SignalSemaphores
  949. LIBRARY ExecBase BY -678
  950.   PROCEDURE ObtainSemaphoreShared( sigSema IN A0 : SignalSemaphorePtr );
  951.  
  952. LIBRARY ExecBase BY -540
  953.   PROCEDURE Procure( sema   IN A0 : SemaphorePtr;
  954.              bidMsg IN A1 : MessagePtr ): BOOLEAN;
  955.  
  956. LIBRARY ExecBase BY -570
  957.   PROCEDURE ReleaseSemaphore( sigSema IN A0 : SignalSemaphorePtr );
  958.  
  959. LIBRARY ExecBase BY -588
  960.   PROCEDURE ReleaseSemaphoreList( list IN A0 : ListPtr );
  961.  
  962. LIBRARY ExecBase BY -606
  963.   PROCEDURE RemSemaphore( sigSema IN A1 : SignalSemaphorePtr );
  964.  
  965. LIBRARY ExecBase BY -546
  966.   PROCEDURE Vacate( sema IN A0 : SemaphorePtr );
  967.  
  968. GROUP
  969.  
  970.   | New for V36 is ObtainSemaphoreShared.
  971.   SemaphoreGrp  =
  972.   (* I *)         MsgPortGrp,
  973.   (* T *)         Semaphore,              SemaphorePtr,
  974.           SemaphoreRequest,       SemaphoreRequestPtr,
  975.           SignalSemaphore,        SignalSemaphorePtr,
  976.   (* P *)         AddSemaphore,           AttemptSemaphore,
  977.           FindSemaphore,          InitSemaphore,
  978.           ObtainSemaphore,        ObtainSemaphoreList,
  979.           ObtainSemaphoreShared,  Procure,
  980.           ReleaseSemaphore,       ReleaseSemaphoreList,
  981.           RemSemaphore,           Vacate;
  982.  
  983.  
  984.  
  985. |-------------------------------------------------------------------------
  986. | resident
  987. |-------------------------------------------------------------------------
  988.  
  989. TYPE
  990.  
  991.   | singleTask and afterDos are new for V36
  992.   ResidentFlags   = ( coldStart,  singleTask, afterDos,   rf3,
  993.               rf4,        rf5,        rf6,        autoinit );
  994.   ResidentFlagSet = SET OF ResidentFlags;
  995.  
  996.   ResidentPri     = NodePri;
  997.  
  998.   ResidentPtr     = POINTER TO Resident;
  999.   Resident        = RECORD                              | 26 Bytes
  1000.               matchWord : CARDINAL;
  1001.               matchTag  : ResidentPtr;
  1002.               endSkip   : ANYPTR;
  1003.               flags     : ResidentFlagSet;
  1004.               version   : SHORTCARD;
  1005.               type      : NodeType;
  1006.               priority  : ResidentPri;
  1007.               name      : SysStringPtr;
  1008.               idString  : SysStringPtr;
  1009.               init      : ANYPTR
  1010.             END;
  1011.  
  1012. CONST
  1013.   matchWord       = $4AFC;  | = the 68000 "ILLEGAL" instruction
  1014.  
  1015. LIBRARY ExecBase BY -96
  1016.   PROCEDURE FindResident( name IN A1 : SysStringPtr ): ResidentPtr;
  1017.  
  1018. LIBRARY ExecBase BY -72
  1019.   PROCEDURE InitCode( startClass IN D0 : ResidentFlagSet;
  1020.               version    IN D1 : LONGINT );
  1021.  
  1022. LIBRARY ExecBase BY -102
  1023.   PROCEDURE InitResident( resident IN A1 : ResidentPtr;
  1024.               segList  IN D1 : BPTR );
  1025.  
  1026. GROUP
  1027.  
  1028.   ResidentGrp =
  1029.   (* I *)       BPTR,             NodeGrp,
  1030.   (* T *)       Resident,         ResidentFlags,
  1031.         ResidentFlagSet,  ResidentPtr,
  1032.   (* C *)       matchWord,
  1033.   (* P *)       FindResident,     InitCode,         InitResident;
  1034.  
  1035.  
  1036.  
  1037. |-------------------------------------------------------------------------
  1038. | execbase
  1039. |-------------------------------------------------------------------------
  1040.  
  1041. TYPE
  1042.   AttnFlags     = ( m68010, m68020, m68030, m68040, m68881,
  1043.             m68882, af6,    af7,    af8,    af9 );
  1044.   AttnFlagSet   = SET OF AttnFlags; | 2 Bytes
  1045.  
  1046. TYPE
  1047.   ExecBaseType  = RECORD OF Library
  1048.             softVer               : CARDINAL;
  1049.             lowMemChkSum          : INTEGER;
  1050.             chkBase               : LONGCARD;
  1051.  
  1052.             | A nice hidingplace for the classic virussians.
  1053.             coldCapture,
  1054.             coolCapture,
  1055.             warmCapture           : PROC;
  1056.             sysStkUpper,
  1057.             sysStkLower           : ANYPTR;
  1058.             maxLocMem             : LONGCARD;
  1059.  
  1060.             | Debug() address.
  1061.             debugEntry            : PROC;
  1062.             debugData,
  1063.             alertData             : ANYPTR;
  1064.             maxExtMem             : ANYPTR;
  1065.             chkSum                : CARDINAL;
  1066.  
  1067.             | Interface to these with the AddIntServer Function
  1068.             intVects              : ARRAY IntFlags OF IntVector;
  1069.  
  1070.             | "There can be only one" on single CPU machines ...
  1071.             thisTask              : TaskPtr;
  1072.  
  1073.             | All the statistics you get from Exec.
  1074.             idleCount,
  1075.             dispCount             : LONGCARD;
  1076.             quantum,
  1077.             elapsed               : CARDINAL;
  1078.             sysFlags              : CARDINAL;
  1079.  
  1080.             | Interrupt disable nest count
  1081.             idNestCnt,
  1082.  
  1083.             | Task disable nest count
  1084.             tdNestCnt             : SHORTCARD;
  1085.  
  1086.             | Attention flags
  1087.             attnFlags             : AttnFlagSet;
  1088.  
  1089.             | Rescheduling attention
  1090.             attnResched           : CARDINAL;
  1091.  
  1092.             | resident module array pointer
  1093.             resModules            : ANYPTR;
  1094.  
  1095.             | task administration
  1096.             taskTrapCode,
  1097.             taskExceptCode,
  1098.             taskExitCode          : PROC;
  1099.             taskSigAlloc          : LONGSET;
  1100.             taskTrapAlloc         : BITSET;
  1101.  
  1102.             | The most often read systemlists (read only in
  1103.             | Disable()ed code.
  1104.             memList,
  1105.             resourceList,
  1106.             deviceList,
  1107.             intrList,
  1108.             libList,
  1109.             portList,
  1110.             taskReady,
  1111.             taskWait              : List;
  1112.  
  1113.             | the list of pending software interrupts. They have
  1114.             | the priorities of -32, -16, 0, 16 and 32.
  1115.             softInts              : ARRAY [0..4] OF SoftIntList;
  1116.             lastAlert             : ARRAY [0..3] OF LONGINT;
  1117.  
  1118.             | the next two should usualy contain 50 or 60
  1119.             vBlankFrequency       : SHORTCARD;
  1120.             powerSupplyFrequency  : SHORTCARD;
  1121.             semaphoreList         : List;
  1122.             kickMemPtr,
  1123.             kickTagPtr            : ANYPTR;
  1124.             kickCheckSum          : LONGCARD;
  1125. | >= V36
  1126.             exPad0                : CARDINAL;
  1127.             exReserved0           : LONGCARD;
  1128.             RamLibPrivate         : ANYPTR;
  1129.             eClockFrequency,                  | readable
  1130.             cacheControl,                     | private
  1131.             taskID,
  1132.             puddleSize,
  1133.             poolThreshold         : LONGCARD;
  1134.             publicPool            : MinList;
  1135.             mmuLock               : ANYPTR;
  1136.             exReserved1           : ARRAY[ 0..11 ] OF SHORTCARD;
  1137.  
  1138. | <V36              execBaseReserved,
  1139. | <V36              execbaseNewReserved   : ARRAY [0..9] OF SHORTCARD;
  1140.           END;
  1141.  
  1142. GROUP
  1143.  
  1144.   ExecBaseGrp =
  1145.   (* I *)       IntGrp,       LibGrp,       TaskGrp,      BITSET,
  1146.   (* T *)       AttnFlags,    AttnFlagSet,  ExecBase,     ExecBasePtr,
  1147.         ExecBaseType;
  1148.  
  1149.  
  1150.  
  1151. |-------------------------------------------------------------------------
  1152. | special
  1153. |-------------------------------------------------------------------------
  1154.  
  1155. TYPE
  1156.  
  1157.   PutChProc    = PROCEDURE( ch IN D0 : CHAR; data IN A3 : ANYPTR );
  1158.  
  1159.   | new for V37
  1160.   StackSwapStructPtr = POINTER TO StackSwapStruct;
  1161.   StackSwapStruct    = RECORD
  1162.              lower,            | new lower bound
  1163.              upper,            | new upper bound
  1164.              pointer : ANYPTR; | stack pointer at switch point
  1165.                END;
  1166.  
  1167.  
  1168. LIBRARY ExecBase BY -108
  1169.   PROCEDURE Alert( alertNum IN D7  : LONGINT );
  1170. | WARNING: used to be parameter 2 :'Params   IN A5 : ANYPTR'
  1171.  
  1172. | try to reboot the Amiga (V36)
  1173. LIBRARY ExecBase BY -726
  1174.   PROCEDURE ColdReboot();
  1175.  
  1176. LIBRARY ExecBase BY -114
  1177.   PROCEDURE Debug();
  1178.  
  1179. LIBRARY ExecBase BY -528
  1180.   PROCEDURE GetCC(): BITSET;
  1181.  
  1182. LIBRARY ExecBase BY -78
  1183.   PROCEDURE InitStruct( initTable IN A1  : ANYPTR;
  1184.             memory    IN A2 : ANYPTR;
  1185.             size      IN D0  : LONGCARD );
  1186.  
  1187. LIBRARY ExecBase BY -522
  1188.   PROCEDURE RawDoFmt( formatString IN A0 : SysStringPtr;
  1189.               dataStream   IN A1 : ANYPTR;
  1190.               putChProc    IN A2 : PutChProc;
  1191.               putChData    IN A3 : ANYPTR );
  1192.  
  1193. | new for V37 and 1:10
  1194. LIBRARY ExecBase BY -732
  1195.   PROCEDURE StackSwap( newStack IN A0 : StackSwapStructPtr ): ANYPTR;
  1196.  
  1197. GROUP
  1198.  
  1199.   | New for V36/V37 are ColdReboot and StackSwap.
  1200.   SpecialGrp  =
  1201.   (* T *)       PutChProc,
  1202.   (* P *)       Alert,              ColdReboot,         Debug,
  1203.         GetCC,              InitStruct,         RawDoFmt,
  1204.         StackSwap,          StackSwapStruct,    StackSwapStructPtr;
  1205.  
  1206.  
  1207.  
  1208. |-------------------------------------------------------------------------
  1209. | signals
  1210. |-------------------------------------------------------------------------
  1211.  
  1212. LIBRARY ExecBase BY -330
  1213.   PROCEDURE AllocSignal( sigNum IN D0 : TaskSignals ): TaskSignals;
  1214.  
  1215. LIBRARY ExecBase BY -336
  1216.   PROCEDURE FreeSignal( sigNum IN D0 : TaskSignals );
  1217.  
  1218. LIBRARY ExecBase BY -312
  1219.   PROCEDURE SetExcept( newSigs IN D0,
  1220.                sigMask IN D1 : TaskSigSet ): TaskSigSet;
  1221.  
  1222. LIBRARY ExecBase BY -306
  1223.   PROCEDURE SetSignal( newSigs IN D0,
  1224.                sigMask IN D1 : TaskSigSet ): TaskSigSet;
  1225.  
  1226. LIBRARY ExecBase BY -324
  1227.   PROCEDURE Signal( task    IN A1 : TaskPtr;
  1228.             signal  IN D0 : TaskSigSet );
  1229.  
  1230. LIBRARY ExecBase BY -318
  1231.   PROCEDURE Wait( signals IN D0 : TaskSigSet ): TaskSigSet;
  1232.  
  1233.  
  1234. GROUP
  1235.  
  1236.   SignalGrp     =
  1237.       (* I *) TaskGrp,
  1238.       (* P *) AllocSignal,        FreeSignal,         SetExcept,
  1239.           SetSignal,          Signal,             Wait;
  1240.  
  1241.  
  1242.  
  1243. |-------------------------------------------------------------------------
  1244. |      traps
  1245. |-------------------------------------------------------------------------
  1246.  
  1247. |
  1248. | The Cluster runtime system uses several traps and has a traphandler. Thus,
  1249. | TRAPs are off limits for Cluster programs. You can, of course, use TRAPs
  1250. | in your own exec tasks.
  1251. |
  1252.  
  1253.  
  1254. LIBRARY ExecBase BY -342
  1255.   PROCEDURE AllocTrap( trapNum IN D0 : LONGINT ): LONGINT;
  1256.  
  1257. LIBRARY ExecBase BY -348
  1258.   PROCEDURE FreeTrap( trapNum IN D0 : LONGINT );
  1259.  
  1260. GROUP
  1261.  
  1262.   TrapGrp       =
  1263.         (*P*) AllocTrap,          FreeTrap;
  1264.  
  1265.  
  1266.  
  1267. |-------------------------------------------------------------------------
  1268. | resources
  1269. |-------------------------------------------------------------------------
  1270.  
  1271. TYPE
  1272.  
  1273.   ResourcePtr = POINTER TO Resource;
  1274.   Resource    = RECORD OF Library END;
  1275.  
  1276. LIBRARY ExecBase BY -486
  1277.   PROCEDURE AddResource( resource IN A1 : ResourcePtr );
  1278.  
  1279. LIBRARY ExecBase BY -492
  1280.   PROCEDURE RemResource( resource IN A1 : ResourcePtr );
  1281.  
  1282. | WARNING: 2nd parameter "Version IN D0 : LONGCARD" removed, as it does not
  1283. | occur in the autodocs.
  1284. LIBRARY ExecBase BY -498
  1285.   PROCEDURE OpenResource( REF name IN A1 : STRING;
  1286.                   vers IN D0 : LONGCARD ): ResourcePtr;
  1287.  
  1288. GROUP
  1289.  
  1290.   ResourceGrp =
  1291.   (* I *)       LibGrp,
  1292.   (* T *)       Resource,             ResourcePtr,
  1293.   (* P *)       AddResource,          RemResource,        OpenResource;
  1294.  
  1295.  
  1296.  
  1297. |-------------------------------------------------------------------------
  1298. | kickstart
  1299. |-------------------------------------------------------------------------
  1300.  
  1301. LIBRARY ExecBase BY -612
  1302.   PROCEDURE SumKickData;
  1303.  
  1304. LIBRARY ExecBase BY -618
  1305.   PROCEDURE AddMemList(    size       IN D0 : LONGINT;
  1306.                attributes IN D1 : MemReqSet;
  1307.                priority   IN D2 : NodePri;
  1308.                base       IN A0 : ANYPTR;
  1309.                REF name       IN A1 : STRING ): LONGINT;
  1310.  
  1311. LIBRARY ExecBase BY -624
  1312.   PROCEDURE CopyMem( source IN A0,
  1313.              dest   IN A1  : ANYPTR;
  1314.              size   IN D0  : LONGCARD );
  1315.  
  1316. | highest offset for <V36
  1317. LIBRARY ExecBase BY -630
  1318.   PROCEDURE CopyMemQuick( source IN A0,
  1319.               dest   IN A1  : ANYPTR;
  1320.               size   IN D0  : LONGCARD );
  1321.  
  1322. GROUP
  1323.  
  1324.   KickGrp       =
  1325.         (*P*) SumKickData,        AddMemList,         CopyMem,
  1326.           CopyMemQuick;
  1327.  
  1328.  
  1329.  
  1330. |-------------------------------------------------------------------------
  1331. | private Exec functions. Only in PrivateGrp, not in All.
  1332. |-------------------------------------------------------------------------
  1333.  
  1334. |
  1335. | though ExecBase.negSize is 810, the newest functions have not been
  1336. | documented at all yet. Please write a thank-you letter to CBM in
  1337. | WestChester. You should only use other private functions if you really
  1338. | know what to do with them and are writing really low level code.
  1339. |
  1340.  
  1341. LIBRARY ExecBase BY -60
  1342.   PROCEDURE Dispatch();
  1343.  
  1344. LIBRARY ExecBase BY -66
  1345.   PROCEDURE Exception();
  1346.  
  1347. | no docs available
  1348. LIBRARY ExecBase BY -774
  1349.   PROCEDURE ExecReserved00( nothing IN D0 : ANYPTR );
  1350.  
  1351. | no docs available
  1352. LIBRARY ExecBase BY -780
  1353.   PROCEDURE ExecReserved01( nothing IN D0 : ANYPTR );
  1354.  
  1355. | no docs available
  1356. LIBRARY ExecBase BY -786
  1357.   PROCEDURE ExecReserved02( nothing IN D0 : ANYPTR );
  1358.  
  1359. | no docs available
  1360. LIBRARY ExecBase BY -792
  1361.   PROCEDURE ExecReserved03( nothing IN D0 : ANYPTR );
  1362.  
  1363. LIBRARY ExecBase BY -36
  1364.   PROCEDURE ExitIntr();
  1365.  
  1366. LIBRARY ExecBase BY -504
  1367.   PROCEDURE RawIOInit;
  1368.  
  1369. LIBRARY ExecBase BY -510
  1370.   PROCEDURE RawMayGetChar(): CHAR;
  1371.  
  1372. LIBRARY ExecBase BY -516
  1373.   PROCEDURE RawPutChar( ch IN D0 : CHAR );
  1374.  
  1375. LIBRARY ExecBase BY -48
  1376.   PROCEDURE Reschedule();
  1377.  
  1378. LIBRARY ExecBase BY -42
  1379.   PROCEDURE Schedule();
  1380.  
  1381. LIBRARY ExecBase BY -54
  1382.   PROCEDURE Switch();
  1383.  
  1384.  
  1385. GROUP
  1386.  
  1387.   | ExecReserved?? are new for V36
  1388.   PrivateGrp    =
  1389.         (*P*) Dispatch,           Exception,          ExecReserved00,
  1390.           ExecReserved01,     ExecReserved02,     ExecReserved03,
  1391.           ExitIntr,           RawIOInit,          RawMayGetChar,
  1392.           RawPutChar,         Reschedule,         Schedule,
  1393.           Switch;
  1394.  
  1395.  
  1396.  
  1397. |-------------------------------------------------------------------------
  1398. | caches
  1399. |-------------------------------------------------------------------------
  1400.  
  1401. TYPE
  1402.  
  1403.   Caches    = ( enableI,       | Enable instruction cache
  1404.         freezeI,       | Freeze instruction cache
  1405.         cacr2,
  1406.         clearI,        | Clear instruction cache
  1407.         ibe,           | Instruction burst enable
  1408.         cacr5, cacr6,
  1409.         cacr7,
  1410.         enableD,       | 68030 Enable data cache
  1411.         freezeD,       | 68030 Freeze data cache
  1412.         cacr10,
  1413.         clearD,        | 68030 Clear data cache
  1414.         dbe,           | 68030 Data burst enable
  1415.         writeAllocate, | 68030 Write-Allocate mode
  1416.                    | (must always be set!)
  1417.         cacr14,
  1418.         cacr15, cacr16, cacr17, cacr18, cacr19,
  1419.         cacr20, cacr21, cacr22, cacr23, cacr24,
  1420.         cacr25, cacr26, cacr27, cacr28, cacr29,
  1421.         cacr30,
  1422.         copyBack       | Master enable for copyback caches
  1423.           );
  1424.   CacheSet  = SET OF Caches;
  1425.  
  1426.   CacheDMAFlags = ( continue=1,   | continue a broken up request (Pre)
  1427.             noModify );   | dma didn't modify memory     (Post)
  1428.   CacheDMAFlagSet = SET OF CacheDMAFlags;
  1429.  
  1430. | User callable simple cache clearing (V37)
  1431. | Flush out the contents of any CPU instruction or data caches.
  1432. LIBRARY ExecBase BY -636
  1433.   PROCEDURE CacheClearU();
  1434.  
  1435. | Cache clearing with extended control (V37)
  1436. | WARNING: Cluster still uses the wrong LONGACARD'MAX=2^31-1. Should be
  1437. | 2^32-1. length = LONGCARD'MAX (= CAST(LONGCARD,-1)) means clear all
  1438. | addresses clearCaches must be IN {clearI,clearD}
  1439. LIBRARY ExecBase BY -642
  1440.   PROCEDURE CacheClearE( address     IN A0 : ANYPTR;
  1441.              length      IN D0 : LONGCARD;
  1442.              clearCaches IN D1 : CacheSet );
  1443.  
  1444. | Instruction & data cache control (V37?)
  1445. | Set global cachebits in mask to the values in bits and return old values.
  1446. LIBRARY ExecBase BY -648
  1447.   PROCEDURE CacheControl( bits IN D0, mask IN D1 : CacheSet ): CacheSet;
  1448.  
  1449.  
  1450. | note that length *must* remain a valid variable upto the CachePostDMA
  1451. | call.
  1452. | WARNING: Autodocs say D0 for flags, fd file says D1...
  1453. LIBRARY ExecBase BY -762
  1454.   PROCEDURE CachePreDMA(     vaddress IN A0 : ANYPTR;    | virtual address
  1455.              VAR length   IN A1 : LONGCARD;  | to be updated
  1456.                  flags    IN D1 : CacheDMAFlagSet; ) : ANYPTR;
  1457.  
  1458. | WARNING: Autodocs say D0 for flags, fd file says D1...
  1459. LIBRARY ExecBase BY -768
  1460.   PROCEDURE CachePostDMA(     vaddress IN A0 : ANYPTR;   | same as for
  1461.                              | CachePreDMA
  1462.               VAR length   IN A1 : LONGINT;  | same as for
  1463.                              | CachePreDMA
  1464.                   flags    IN D1 : CacheDMAFlagSet; );
  1465. GROUP
  1466.  
  1467.   | All new for V36
  1468.   CacheGrp      =
  1469.         (*T*) Caches,             CacheSet,           CacheDMAFlags,
  1470.           CacheDMAFlagSet,
  1471.         (*P*) CacheClearE,        CacheClearU,        CacheControl,
  1472.           CachePreDMA,        CachePostDMA;
  1473.  
  1474.  
  1475.  
  1476. |-------------------------------------------------------------------------
  1477. | kids. The docs are not ready yet.
  1478. | The return value might not be valid.
  1479. |-------------------------------------------------------------------------
  1480.  
  1481. | no doc available, prototype from fd file and thin air.
  1482. LIBRARY ExecBase BY -738
  1483.   PROCEDURE ChildFree( tid IN D0 : ANYPTR ) : ANYPTR;
  1484.  
  1485. | no doc available, prototype from fd file and thin air.
  1486. LIBRARY ExecBase BY -744
  1487.   PROCEDURE ChildOrphan( tid IN D0 : ANYPTR ) : ANYPTR;
  1488.  
  1489. | no doc available, prototype from fd file and thin air.
  1490. LIBRARY ExecBase BY -750
  1491.   PROCEDURE ChildStatus( tid IN D0 : ANYPTR ) : ANYPTR;
  1492.  
  1493. | no doc available, prototype from fd file and thin air.
  1494. LIBRARY ExecBase BY -756
  1495.   PROCEDURE ChildWait( tid IN D0 : ANYPTR ) : ANYPTR;
  1496.  
  1497. GROUP
  1498.  
  1499.   | all new for V36
  1500.   ChildGrp      =
  1501.         (*P*) ChildFree,          ChildOrphan,        ChildStatus,
  1502.           ChildWait;
  1503.  
  1504.   | Just for compatibility at the moment.
  1505.   ExecIOGrp     = DeviceIOGrp;
  1506.   MsgGrp        = MsgPortGrp;
  1507.  
  1508.   | New for V36 are Cache, Child, DeviceIO, Resource and SpecialGrp.
  1509.   | Groups not included are Const, Private, Func, Ptr and Record.
  1510.   All           =
  1511.         (*I*) CacheGrp,           ChildGrp,           DeviceIOGrp,
  1512.           ExecBaseGrp,
  1513.   | compat
  1514.           ExecIOGrp,          MsgGrp,
  1515.  
  1516.           IntGrp,             KickGrp,            LibGrp,
  1517.           ListGrp,            MemGrp,             MsgPortGrp,
  1518.           NodeGrp,
  1519.   | old           oldMsgPortGrp,
  1520.           ResidentGrp,        ResourceGrp,        SemaphoreGrp,
  1521.           SignalGrp,          SpecialGrp,         TaskGrp,
  1522.           TrapGrp;
  1523.  
  1524.   | All Functions in this module (including Cluster coded functions)
  1525.   FuncGrp   = AbortIO,                AddDevice,              AddHead,
  1526.           AddIntServer,           AddLibrary,             AddMemList,
  1527.           AddPort,                AddResource,            AddSemaphore,
  1528.           AddTail,                AddTask,                Alert,
  1529.           AllocAbs,               Allocate,               AllocEntry,
  1530.           AllocMem,               AllocPooled,            AllocSignal,
  1531.           AllocTrap,              AllocVec,
  1532.           AttemptSemaphore,
  1533.           AvailMem,               CacheClearE,            CacheClearU,
  1534.           CacheControl,           Cause,                  CheckIO,
  1535.           ChildFree,              ChildOrphan,            ChildStatus,
  1536.           ChildWait,              CloseDevice,            CloseLibrary,
  1537.           ColdReboot,             CopyMem,                CopyMemQuick,
  1538.           CreateIORequest,        CreateMsgPort,
  1539.           CreatePrivatePool,      Deallocate,             Debug,
  1540.           DeleteIORequest,        DeleteMsgPort,
  1541.           DeletePrivatePool,
  1542.           Disable,                Dispatch,               DoIO,
  1543.           Enable,                 Enqueue,                Exception,
  1544.           ExitIntr,               FindName,
  1545.           FindPort,               FindResident,           FindSemaphore,
  1546.           FindTask,               Forbid,                 FreeEntry,
  1547.           FreeMem,                FreePooled,             FreeSignal,
  1548.           FreeTrap,               FreeVec,                GetCC,
  1549.           GetMsg,                 InitCode,               InitResident,
  1550.           InitSemaphore,          InitStruct,             Insert,
  1551.           MakeFunctions,          MakeLibrary,            NewList,
  1552.           ObtainSemaphore,        ObtainSemaphoreList,
  1553.           ObtainSemaphoreShared,
  1554.           OldOpenLibrary,         OpenDevice,             OpenLibrary,
  1555.           OpenResource,           Permit,                 Procure,
  1556.           PutMsg,                 RawDoFmt,               RawIOInit,
  1557.           RawMayGetChar,          RawPutChar,
  1558.           ReleaseSemaphore,
  1559.           ReleaseSemaphoreList,   RemDevice,              RemHead,
  1560.           RemIntServer,           RemLibrary,             Remove,
  1561.           RemPort,                RemResource,            RemSemaphore,
  1562.           RemTail,                RemTask,                ReplyMsg,
  1563.           Reschedule,             Schedule,               SendIO,
  1564.           SetExcept,              SetFunction,            SetFunction8,
  1565.           SetIntVector,           SetSignal,              SetSR,
  1566.           SetTaskPri,             Signal,                 StackSwap,
  1567.           SumKickData,            SumLibrary,             SuperState,
  1568.           Supervisor,             Switch,                 TypeOfMem,
  1569.           UserState,              Vacate,                 Wait,
  1570.           WaitIO,                 WaitPort;
  1571.  
  1572.   PtrGrp    = DevicePtr,              ExecBasePtr,            FuncArrayPtr,
  1573.           InterruptPtr,           IntFuncPtr,             IntVectorPtr,
  1574.           IORequestPtr,           IOStdReqPtr,            LibraryPtr,
  1575.           ListPtr,                MemChunkPtr,            MemEntryPtr,
  1576.           MemHeaderPtr,           MemListPtr,             MessagePtr,
  1577.           MinListPtr,             MinNodePtr,             MsgPortPtr,
  1578.           NodePtr,                ResidentPtr,            ResourcePtr,
  1579.           SemaphorePtr,           SemaphoreRequestPtr,
  1580.           SignalSemaphorePtr,
  1581.           SoftIntListPtr,         TaskPtr,                UnitPtr;
  1582.  
  1583.   RecordGrp = Device,                 ExecBaseType,           Interrupt,
  1584.           IntVector,              IORequest,              IOStdReq,
  1585.           Library,                List,                   MemChunk,
  1586.           MemEntry,               MemHeader,              MemList,
  1587.           Message,                MinList,                MinNode,
  1588.           MsgPort,                Node,                   Resident,
  1589.           Resource,               Semaphore,
  1590.           SemaphoreRequest,
  1591.           SignalSemaphore,        SoftIntList,            Task,
  1592.           Unit;
  1593.  
  1594.  
  1595. END Exec.
  1596.  
  1597.  
  1598. TABLE OF CONTENTS
  1599.  
  1600. FUNCTION              GRP               V36?
  1601.  
  1602. AbortIO               DeviceIO
  1603. AddDevice             DeviceIO
  1604. AddHead               List
  1605. AddIntServer          Int
  1606. AddLibrary            Lib
  1607. AddMemList            Kick
  1608. AddPort               MsgPort
  1609. AddResource           Resource
  1610. AddSemaphore          Semaphore
  1611. AddTail               List
  1612. AddTask               Task
  1613. Alert                 Special
  1614. AllocAbs              Mem
  1615. Allocate              Mem
  1616. AllocEntry            Mem
  1617. AllocMem              Mem
  1618. AllocPooled           Mem               V36
  1619. AllocSignal           Signal
  1620. AllocTrap             Trap
  1621. AllocVec              Mem               V36
  1622. AttemptSemaphore      Semaphore
  1623. AvailMem              Mem
  1624. CacheClearE           Cache             V36
  1625. CacheClearU           Cache             V36
  1626. CacheControl          Cache             V36
  1627. Cause                 Int
  1628. CheckIO               DeviceIO
  1629. ChildFree             Child             V36
  1630. ChildOrphan           Child             V36
  1631. ChildStatus           Child             V36
  1632. ChildWait             Child             V36
  1633. CloseDevice           DeviceIO
  1634. CloseLibrary          Lib
  1635. ColdReboot            Special           V36
  1636. CopyMem               Kick
  1637. CopyMemQuick          Kick
  1638. CreateIORequest       DeviceIO          V36
  1639. |CreateMsgPort         MsgPort           V36
  1640. CreatePrivatePool     Mem               V36
  1641. Deallocate            Mem
  1642. Debug                 Special
  1643. DeleteIORequest       DeviceIO          V36
  1644. |DeleteMsgPort         MsgPort           V36
  1645. DeletePrivatePool     Mem               V36
  1646. Disable               Int
  1647. Dispatch              Private
  1648. DoIO                  DeviceIO
  1649. Enable                Int
  1650. Enqueue               List
  1651. Exception             Private
  1652. ExecReserved00        Private           V36
  1653. ExecReserved01        Private           V36
  1654. ExecReserved02        Private           V36
  1655. ExecReserved03        Private           V36
  1656. ExitIntr              Private
  1657. FindName              List
  1658. FindPort              MsgPort
  1659. FindResident          Resident
  1660. FindSemaphore         Semaphore
  1661. FindTask              Task
  1662. Forbid                Int
  1663. FreeEntry             Mem
  1664. FreeMem               Mem
  1665. FreePooled            Mem               V36
  1666. FreeSignal            Signal
  1667. FreeTrap              Trap
  1668. FreeVec               Mem               V36
  1669. GetCC                 Special
  1670. GetMsg                MsgPort
  1671. InitCode              Resident
  1672. InitResident          Resident
  1673. InitSemaphore         Semaphore
  1674. InitStruct            Special
  1675. Insert                List
  1676. MakeFunctions         Lib
  1677. MakeLibrary           Lib
  1678. ObtainSemaphore       Semaphore
  1679. ObtainSemaphoreList   Semaphore
  1680. ObtainSemaphoreShared Semaphore         V36
  1681. OldOpenLibrary        Lib
  1682. OpenDevice            DeviceIO
  1683. OpenLibrary           Lib
  1684. OpenResource          Resource
  1685. Permit                Int
  1686. Procure               Semaphore
  1687. PutMsg                MsgPort
  1688. RawDoFmt              Special
  1689. RawIOInit             Private
  1690. RawMayGetChar         Private
  1691. RawPutChar            Private
  1692. ReleaseSemaphore      Semaphore
  1693. ReleaseSemaphoreList  Semaphore
  1694. RemDevice             DeviceIO
  1695. RemHead               List
  1696. RemIntServer          Int
  1697. RemLibrary            Lib
  1698. Remove                List
  1699. RemPort               MsgPort
  1700. RemResource           Resource
  1701. RemSemaphore          Semaphore
  1702. RemTail               List
  1703. RemTask               Task
  1704. ReplyMsg              MsgPort
  1705. Reschedule            Private
  1706. Schedule              Private
  1707. SendIO                DeviceIO
  1708. SetExcept             Signal
  1709. SetFunction           Lib
  1710. SetFunction8          Lib               V36
  1711. SetIntVector          Int
  1712. SetSignal             Signal
  1713. SetSR                 Int
  1714. SetTaskPri            Task
  1715. Signal                Signal
  1716. StackSwap             Special           V36
  1717. SumKickData           Kick
  1718. SumLibrary            Lib
  1719. SuperState            Int
  1720. Supervisor            Int
  1721. Switch                Private
  1722. TypeOfMem             Mem
  1723. UserState             Int
  1724. Vacate                Semaphore
  1725. Wait                  Signal
  1726. WaitIO                DeviceIO
  1727. WaitPort              MsgPort
  1728.  
  1729.  
  1730. NodeType
  1731. MemReqs
  1732. TaskFlags
  1733. TaskState
  1734. MsgPortAction
  1735. LibFlags
  1736. UnitFlags
  1737. ResidentFlags
  1738. AttnFlags
  1739. Caches
  1740.  
  1741.