home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2i.zip / NAMPIPES.PAS < prev    next >
Pascal/Delphi Source File  |  1994-05-31  |  9KB  |  293 lines

  1. (* ====================================================== *)
  2. (*                        NAMPIPES.PAS                    *)
  3. (*    Implementation of the functions of NAMPIPES.DLL     *)
  4. (*          Translation to Pascal by jb / toolbox mag     *)
  5. (* ====================================================== *)
  6. {$IFNDEF OS2}
  7.   Error: Wrong target/Compiler not patched
  8. {$ENDIF}
  9.  
  10. UNIT NamPipes;
  11.  
  12. INTERFACE
  13.  
  14. USES
  15.   Os2Def;
  16.  
  17. TYPE
  18.   PTraceBuf = RECORD
  19.     pID     : WORD;
  20.     tID     : WORD;
  21.     cmd     : WORD;
  22.     value   : WORD;
  23.     offv    : WORD;
  24.     segv    : WORD;
  25.     mte     : WORD;
  26.     rAX     : WORD;
  27.     rBX     : WORD;
  28.     rCX     : WORD;
  29.     rDX     : WORD;
  30.     rSI     : WORD;
  31.     rDI     : WORD;
  32.     rBP     : WORD;
  33.     rDS     : WORD;
  34.     rES     : WORD;
  35.     rIP     : WORD;
  36.     rCS     : WORD;
  37.     rF      : WORD;
  38.     rSP     : WORD;
  39.     rSS     : WORD;
  40.   END;
  41.  
  42. TYPE
  43.   PipeInfo = RECORD
  44.     cbOut           : WORD;
  45.     cbIn            : WORD;
  46.     cbMaxInst       : CHAR;
  47.     cbCurInst       : CHAR;
  48.     cbName          : CHAR;
  49.     szName          : ARRAY [0..0] OF CHAR;
  50.   END;
  51.  
  52.   NPI_Data1 = RECORD
  53.     npi_obuflen     : WORD;
  54.     npi_ibuflen     : WORD;
  55.     npi_maxicnt     : CHAR;
  56.     npi_curicnt     : CHAR;
  57.     npi_namlen      : CHAR;
  58.     npi_name        : ARRAY [0..0] OF CHAR;
  59.   END;
  60.  
  61.   PipesEmSTate = RECORD
  62.     fStatus : CHAR;
  63.     fFlag   : CHAR;
  64.     usKey   : WORD;
  65.     usAvail : WORD;
  66.   END;
  67.  
  68.   NpSs = RECORD
  69.     npss_status     : CHAR;
  70.     npss_flag       : CHAR;
  71.     npss_key        : WORD;
  72.     npss_avail      : WORD;
  73.   END;
  74.  
  75. CONST
  76.   NpSs_EoI            = 0;
  77.   npss_RDATA          = 1;
  78.   npss_WSPACE         = 2;
  79.   npss_CLOSE          = 3;
  80.  
  81.   npss_WAIT           = 1;
  82.  
  83.   np_BLK              = $8000;
  84.   np_SERVER           = $4000;
  85.   np_WMESG            = $100;
  86.   np_ICOUNT           = $0FF;
  87.  
  88.   np_DISCONNECTED     = 1;
  89.   np_LISTENING        = 2;
  90.   np_CONNECTED        = 3;
  91.   np_CLOSING          = 4;
  92.  
  93.   np_ACCESS_INBOUND   = 0;
  94.   np_ACCESS_OUTBOUND  = 1;
  95.   np_ACCESS_DUPLEX    = 2;
  96.   np_INHERIT          = 0;
  97.   np_NOINHERIT        = $80;
  98.   np_WRITEBEHIND      = 0;
  99.   np_NOWRITEBEHIND    = $4000;
  100.  
  101.   np_READMODE_BYTE    = 0;
  102.   np_READMODE_MESSAGE = $100;
  103.   np_TYPE_BYTE        = 0;
  104.   np_TYPE_MESSAGE     = $400;
  105.   np_END_CLIENT       = 0;
  106.   np_END_SERVER       = $4000;
  107.   np_WAIT             = 0;
  108.   np_NOWAIT           = $8000;
  109.   np_UNLIMITED_INSTANCES = $FF;
  110.  
  111. TYPE
  112.   AvailData = RECORD
  113.     cbpipe          : WORD;
  114.     cbmessage       : WORD;
  115.  END;
  116.  
  117.  
  118. FUNCTION DosCallNmPipe(    a : pChar;
  119.                            b : Pointer;
  120.                            c : WORD;
  121.                            d : Pointer;
  122.                            e : WORD;
  123.                        VAR f : WORD;
  124.                            g :LongInt {LONGCARD}
  125.                            ) : WORD;
  126.  
  127. FUNCTION DosConnectNmPipe(a : WORD) : WORD;
  128.  
  129. FUNCTION DosDisConnectNmPipe(a : WORD) : WORD;
  130.  
  131. FUNCTION DosMakeNmPipe(    a : pChar;
  132.                        VAR b : WORD;
  133.                            c : WORD;
  134.                            d : WORD;
  135.                            e : WORD;
  136.                            f : WORD;
  137.                            g :LongInt {LONGCARD}
  138.                            ) : WORD;
  139.  
  140. FUNCTION DosPeekNmPipe(   a : WORD;
  141.                           b : Pointer;
  142.                           c : WORD;
  143.                       VAR d : WORD;
  144.                       VAR e : AvailData;
  145.                       VAR f : WORD
  146.                           ) : WORD;
  147.  
  148. FUNCTION DosQNmPHandState(a : WORD; VAR b : WORD) : WORD;
  149.  
  150. FUNCTION DosQNmPipeInfo(a : WORD;
  151.                         b : WORD;
  152.                         c : Pointer;
  153.                         d : LongInt {LONGCARD}
  154.                         ) : WORD;
  155.  
  156. FUNCTION DosQNmPipeSemState(    a : SemaPhore;
  157.                             VAR b : PipesEmSTate;
  158.                                 c : WORD
  159.                                 ) : WORD;
  160.  
  161. FUNCTION DosSetNmPHandState(a, b: WORD) : WORD;
  162.  
  163. FUNCTION DosSetNmPipeSem(a : WORD;
  164.                          b : SemaPhore;
  165.                          c : WORD
  166.                          ) : WORD;
  167.  
  168. FUNCTION DosTransactNmPipe(    a : WORD;
  169.                                b : Pointer;
  170.                                c : WORD;
  171.                                d : Pointer;
  172.                                e : WORD;
  173.                            VAR f : WORD
  174.                                ) : WORD;
  175.  
  176. FUNCTION DosWaitNmPipe(a : pChar;
  177.                        b : LongInt {LONGCARD}) : WORD;
  178.  
  179. FUNCTION Dos16CallNmPipe(    a : pChar;
  180.                              b : Pointer;
  181.                              c : WORD;
  182.                              d : Pointer;
  183.                              e : WORD;
  184.                          VAR f : WORD;
  185.                              g :LongInt {LONGCARD}
  186.                              ) : WORD;
  187.  
  188. FUNCTION Dos16ConnectNmPipe(a : WORD) : WORD;
  189.  
  190. FUNCTION Dos16DisConnectNmPipe(a : WORD) : WORD;
  191.  
  192. FUNCTION Dos16MakeNmPipe(    a : pChar;
  193.                          VAR b : WORD;
  194.                              c : WORD;
  195.                              d : WORD;
  196.                              e : WORD;
  197.                              f : WORD;
  198.                              g : LongInt {LONGCARD}
  199.                              ) : WORD;
  200.  
  201. FUNCTION Dos16PeekNmPipe(a : WORD;
  202.                          b : Pointer;
  203.                          c : WORD;
  204.                      VAR d : WORD;
  205.                      VAR e : AvailData;
  206.                      VAR f : WORD
  207.                          ) : WORD;
  208.  
  209. FUNCTION Dos16QNmPHandState(    a : WORD;
  210.                             VAR b : WORD
  211.                                 ) : WORD;
  212.  
  213. FUNCTION Dos16QNmPipeInfo(a : WORD;
  214.                           b : WORD;
  215.                           c : Pointer;
  216.                           d : LongInt {LONGCARD}
  217.                           ) : WORD;
  218.  
  219. FUNCTION Dos16QNmPipeSemState(    a : SemaPhore;
  220.                               VAR b : PipesEmSTate;
  221.                                   c : WORD
  222.                                   ) : WORD;
  223.  
  224. FUNCTION Dos16SetNmPHandState(a, b: WORD): WORD;
  225.  
  226. FUNCTION Dos16SetNmPipeSem(a : WORD;
  227.                            b : SemaPhore;
  228.                            c : WORD
  229.                            ) : WORD;
  230.  
  231. FUNCTION Dos16TransactNmPipe(    a : WORD;
  232.                                  b : Pointer;
  233.                                  c : WORD;
  234.                                  d : Pointer;
  235.                                  e : WORD;
  236.                              VAR f : WORD
  237.                                  ) : WORD;
  238.  
  239. FUNCTION Dos16WaitNmPipe(a : pChar;
  240.                          b : LongInt {LONGCARD}
  241.                          ) : WORD;
  242.  
  243. IMPLEMENTATION
  244.  
  245.   FUNCTION DosMakeNmPipe;      EXTERNAL 'NAMPipes' INDEX  1;
  246.   FUNCTION Dos16MakeNmPipe;    EXTERNAL 'NAMPipes' INDEX  1;
  247.  
  248.   FUNCTION DosQNmPipeInfo;     EXTERNAL 'NAMPipes' INDEX  2;
  249.   FUNCTION Dos16QNmPipeInfo;   EXTERNAL 'NAMPipes' INDEX  2;
  250.  
  251.   FUNCTION DosConnectNmPipe;   EXTERNAL 'NAMPipes' INDEX  3;
  252.   FUNCTION Dos16ConnectNmPipe; EXTERNAL 'NAMPipes' INDEX  3;
  253.  
  254.   FUNCTION DosDisConnectNmPipe; EXTERNAL 'NAMPipes' INDEX 4;
  255.   FUNCTION Dos16DisConnectNmPipe;
  256.   EXTERNAL 'NAMPipes' INDEX 4;
  257.  
  258.   FUNCTION DosQNmPHandState;    EXTERNAL 'NAMPipes' INDEX 5;
  259.   FUNCTION Dos16QNmPHandState;  EXTERNAL 'NAMPipes' INDEX 5;
  260.  
  261.   FUNCTION DosSetNmPHandState;  EXTERNAL 'NAMPipes' INDEX 6;
  262.   FUNCTION Dos16SetNmPHandState;EXTERNAL 'NAMPipes' INDEX 6;
  263.  
  264.   FUNCTION DosPeekNmPipe;       EXTERNAL 'NAMPipes' INDEX 7;
  265.   FUNCTION Dos16PeekNmPipe;     EXTERNAL 'NAMPipes' INDEX 7;
  266.  
  267.   FUNCTION DosWaitNmPipe;       EXTERNAL 'NAMPipes' INDEX 8;
  268.   FUNCTION Dos16WaitNmPipe;     EXTERNAL 'NAMPipes' INDEX 8;
  269.  
  270.   FUNCTION DosTransactNmPipe;   EXTERNAL 'NAMPipes' INDEX 9;
  271.   FUNCTION Dos16TransactNmPipe; EXTERNAL 'NAMPipes' INDEX 9;
  272.  
  273.   FUNCTION DosCallNmPipe;      EXTERNAL 'NAMPipes' INDEX 10;
  274.   FUNCTION Dos16CallNmPipe;    EXTERNAL 'NAMPipes' INDEX 10;
  275. {
  276.   FUNCTION DosRawReadNMPipe;   External 'NAMPipes' INDEX 11;
  277.   FUNCTION Dos16RawReadNMPipe; External 'NAMPipes' INDEX 11;
  278.  
  279.   FUNCTION DosRawWriteNMPipe;  External 'NAMPipes' INDEX 12;
  280.   FUNCTION Dos16RawWriteNMPipe;External 'NAMPipes' INDEX 12;
  281. }
  282.   FUNCTION DosSetNmPipeSem;    EXTERNAL 'NAMPipes' INDEX 13;
  283.   FUNCTION Dos16SetNmPipeSem;  EXTERNAL 'NAMPipes' INDEX 13;
  284.  
  285.   FUNCTION DosQNmPipeSemState; EXTERNAL 'NAMPipes' INDEX 14;
  286.   FUNCTION Dos16QNmPipeSemState;
  287.   EXTERNAL 'NAMPipes' INDEX 14;
  288.  
  289. END.
  290.  
  291. (* ====================================================== *)
  292. (*                    Ende von NAMPIPES.PAS               *)
  293.