home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / dosqueue.def < prev    next >
Text File  |  1994-05-03  |  3KB  |  99 lines

  1. DEFINITION MODULE DOSQUEUES;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for pipe and queue support.
  5.  
  6.   Copyright (c) 1992 by Juergen Neuhoff
  7. *************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11. (*$A         default alignment for record fields                        *)
  12.  
  13. IMPORT SYSTEM;
  14. FROM   OS2DEF  IMPORT TYPEPREFIX, APIRET, LHANDLE, HFILE, PID, HEV;
  15.  
  16. TYPE
  17.   HQUEUE       = LHANDLE;
  18.   PHQUEUE      = POINTER TO HQUEUE;
  19.   REQUESTDATA  = RECORD
  20.     CASE         : TYPEPREFIX OF
  21.     | TRUE       :
  22.       pid        : PID;
  23.       ulData     : LONGCARD;
  24.     | FALSE      :
  25.       PId        : PID;
  26.       Data       : LONGCARD;
  27.     END;         END;
  28.   PREQUESTDATA = POINTER TO REQUESTDATA;
  29.  
  30. CONST (* for DosCreateQueue() QueueFlags *)
  31.   QUE_FIFO              = 0;
  32.   QUE_LIFO              = 1;
  33.   QUE_PRIORITY          = 2;
  34.   QUE_NOCONVERT_ADDRESS = 0;
  35.   QUE_CONVERT_ADDRESS   = 4;
  36.  
  37. PROCEDURE DosCreatePipe
  38. ( VAR ReadHandle        : HFILE;
  39.   VAR WriteHandle       : HFILE;
  40.   PipeSize              : LONGCARD
  41. )                       : APIRET;
  42.  
  43. PROCEDURE DosCloseQueue
  44. ( QueueHandle           : HQUEUE
  45. )                       : APIRET;
  46.  
  47. PROCEDURE DosCreateQueue
  48. ( VAR RWHandle          : HQUEUE;
  49.   QueueFlags            : LONGCARD;
  50.   QueueName             : ARRAY OF CHAR
  51. )                       : APIRET;
  52.  
  53. PROCEDURE DosOpenQueue
  54. ( VAR OwnerPId          : PID;
  55.   VAR QueueHandle       : HQUEUE;
  56.   QueueName             : ARRAY OF CHAR
  57. )                       : APIRET;
  58.  
  59. PROCEDURE DosPeekQueue
  60. ( QueueHandle           : HQUEUE;
  61.   VAR Request           : REQUESTDATA;
  62.   VAR DataLength        : LONGCARD;
  63.   VAR DataAddress       : SYSTEM.ADDRESS;
  64.   VAR ElementCode       : LONGCARD;
  65.   NoWait                : BOOLEAN;
  66.   VAR ElemPriority      : SHORTCARD;
  67.   SemHandle             : HEV
  68. )                       : APIRET;
  69.  
  70. PROCEDURE DosPurgeQueue
  71. ( QueueHandle           : HQUEUE
  72. )                       : APIRET;
  73.  
  74. PROCEDURE DosQueryQueue
  75. ( QueueHandle           : HQUEUE;
  76.   VAR NumberElements    : LONGCARD
  77. )                       : APIRET;
  78.  
  79. PROCEDURE DosReadQueue
  80. ( QueueHandle           : HQUEUE;
  81.   VAR Request           : REQUESTDATA;
  82.   VAR DataLength        : LONGCARD;
  83.   VAR DataAddress       : SYSTEM.ADDRESS;
  84.   ElementCode           : LONGCARD;
  85.   NoWait                : BOOLEAN;
  86.   VAR ElemPriority      : SHORTCARD;
  87.   SemHandle             : HEV
  88. )                       : APIRET;
  89.  
  90. PROCEDURE DosWriteQueue
  91. ( QueueHandle           : HQUEUE;
  92.   Request               : LONGCARD;
  93.   DataLength            : LONGCARD;
  94.   VAR DataBuffer        : ARRAY OF SYSTEM.BYTE;
  95.   ElemPriority          : LONGCARD
  96. )                       : APIRET;
  97.  
  98. END DOSQUEUES.
  99.