home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Graphics / Graphics.zip / os2apipm.zip / OS2API / OS2-PIPE.ADS < prev    next >
Text File  |  1996-07-18  |  4KB  |  95 lines

  1.  
  2. -- ╔═══════════════════════════════════════════════════════════════════╗
  3. -- ║       D E S I G N   E N G I N E R I N G              ║D║S║        ║
  4. -- ║            S O F T W A R E                           ╚═╩═╝        ║
  5. -- ║                                                                   ║
  6. -- ║        Package     Os2.PIPE                                       ║
  7. -- ║                                                                   ║
  8. -- ║        Author :  Leonid Dulman     1995                           ║
  9. -- ║                                                                   ║
  10. -- ║             GNU ADA RUNTIME LIBRARY (GNARL) COMPONENTS            ║
  11. -- ║                                                                   ║
  12. -- ║             Pipe      support    of os/2 api functions            ║
  13. -- ║                                                                   ║
  14. -- ╚═══════════════════════════════════════════════════════════════════╝
  15.  
  16.  
  17. with Interfaces.C;         use Interfaces.C;
  18. with Interfaces.C.Strings; use Interfaces.C.Strings;
  19.  
  20. package Os2.Pipe is
  21. pragma Preelaborate (Pipe);
  22.  
  23. --** Pipe and queue support --
  24.  
  25. subtype HQUEUE  is  LHANDLE ;  -- hq --
  26. type PHQUEUE  is access all HQUEUE;
  27.  
  28. subtype HEV is ULONG;
  29. type PHEV is access all HEV;
  30.  
  31. type  REQUESTDATA   is record    -- reqqdata --
  32.   pd           :PID         ;
  33.   ulData       :ULONG       ;
  34. end record;  -- REQUESTDATA;
  35. type PREQUESTDATA is access all REQUESTDATA;
  36.  
  37.  QUE_FIFO              :constant Long:= 0 ;
  38.  QUE_LIFO              :constant Long:= 1 ;
  39.  QUE_PRIORITY          :constant Long:= 2 ;
  40.  QUE_NOCONVERT_ADDRESS :constant Long:= 0 ;
  41.  QUE_CONVERT_ADDRESS   :constant Long:= 4 ;
  42.  
  43. function  DosCreatePipe(phfRead :PHFILE ;
  44.                         phfWrite:PHFILE ;
  45.                         cb      :ULONG  )return apiret;
  46. pragma Import(c,DosCreatePipe, Link_name=>"_DosCreatePipe");
  47.  
  48. function   DosCloseQueue(hq:HQUEUE )return apiret;
  49. pragma Import(c,DosCloseQueue, Link_name=>"_DosCloseQueue");
  50.  
  51. function   DosCreateQueue(phq     :PHQUEUE ;
  52.                           priority:ULONG   ;
  53.                           pszName :PSZ     )return apiret;
  54. pragma Import(c,DosCreateQueue, Link_name=>"_DosCreateQueue");
  55.  
  56. function   DosOpenQueue(ppd    :PPID    ;
  57.                         phq    :PHQUEUE ;
  58.                         pszName:PSZ     )return apiret;
  59. pragma Import(c,DosOpenQueue, Link_name=>"_DosOpenQueue");
  60.  
  61. function   DosPeekQueue(hq       :HQUEUE       ;
  62.                         pRequest :PREQUESTDATA ;
  63.                         pcbData  :PULONG       ;
  64.                         ppbuf    :PPVOID       ;
  65.                         element  :PULONG       ;
  66.                         nowait   :BOOL32       ;
  67.                         ppriority:PBYTE        ;
  68.                         hsem     :HEV          )return apiret;
  69. pragma Import(c,DosPeekQueue, Link_name=>"_DosPeekQueue");
  70.  
  71. function   DosPurgeQueue(hq:HQUEUE )return apiret;
  72. pragma Import(c,DosPurgeQueue, Link_name=>"_DosPurgeQueue");
  73.  
  74. function   DosQueryQueue(hq        :HQUEUE ;
  75.                          pcbEntries:PULONG )return apiret;
  76. pragma Import(c,DosQueryQueue, Link_name=>"_DosQueryQueue");
  77.  
  78. function   DosReadQueue(hq       :HQUEUE       ;
  79.                         pRequest :PREQUESTDATA ;
  80.                         pcbData  :PULONG       ;
  81.                         ppbuf    :PPVOID       ;
  82.                         element  :ULONG        ;
  83.                         wait     :BOOL32       ;
  84.                         ppriority:PBYTE        ;
  85.                         hsem     :HEV          )return apiret;
  86. pragma Import(c,DosReadQueue, Link_name=>"_DosReadQueue");
  87.  
  88. function   DosWriteQueue(hq      :HQUEUE ;
  89.                          request :ULONG  ;
  90.                          cbData  :ULONG  ;
  91.                          pbData  :PVOID  ;
  92.                          priority:ULONG  )return apiret;
  93. pragma Import(c,DosWriteQueue, Link_name=>"_DosWriteQueue");
  94. end Os2.Pipe;
  95.