home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l196 / 1.ddi / BSEDOSPC.BI$ / BSEDOSPC.bin
Encoding:
Text File  |  1990-06-24  |  11.1 KB  |  505 lines

  1. '-----------------------------------------------------------------------------
  2. '
  3. 'Module Name: BSEDOSPC.BI
  4. '
  5. '  OS/2 Base Include File - Process Control and Interprocess Communication
  6. '
  7. '  The Process Control and Interprocess Communication calls have been
  8. '  organized into the following catagories:
  9. '
  10. '       Process Control
  11. '       Semaphores
  12. '       Signals
  13. '       Pipes and Queues
  14. '       Error Handling and Messages
  15. '       Session Manager
  16. '
  17. ' Copyright (c) 1987-1990 Microsoft Corporation
  18. '-----------------------------------------------------------------------------
  19.  
  20. TYPE ADDRESS
  21.         Offset     AS INTEGER
  22.         Segment    AS INTEGER
  23. END TYPE
  24.  
  25. TYPE RESULTCODES
  26.     codeTerminate  AS INTEGER
  27.     codeResult     AS INTEGER
  28. END TYPE
  29.  
  30. TYPE STARTDATA
  31.     cb           AS INTEGER
  32.     Related        AS INTEGER
  33.     FgBg           AS INTEGER
  34.     TraceOpt       AS INTEGER
  35.     PgmTitle       AS ADDRESS 'Address of STRING
  36.     PgmName        AS ADDRESS 'Address of STRING
  37.     PgmInputs      AS ADDRESS 'Address of STRING
  38.     TermQ           AS ADDRESS 'Address of STRING
  39.     Environment    AS ADDRESS 'Address of STRING
  40.     InheritOpt     AS INTEGER
  41.     SessionType    AS INTEGER
  42.     IconFile       AS ADDRESS 'Address of STRING
  43.     PgmHandle      AS LONG
  44.     PgmControl     AS INTEGER
  45.     InitXPos       AS INTEGER
  46.     InitYPos       AS INTEGER
  47.     InitXSize      AS INTEGER
  48.     InitYSize      AS INTEGER
  49. END TYPE
  50.  
  51. TYPE STATUSDATA
  52.     cb           AS INTEGER
  53.     SelectInd      AS INTEGER
  54.     BindInd        AS INTEGER
  55. END TYPE
  56.  
  57. TYPE PIDINFO
  58.     pid           AS INTEGER
  59.     tid           AS INTEGER
  60.     pidParent      AS INTEGER
  61. END TYPE
  62.  
  63. TYPE DOSFSRSEM
  64.     cb           AS INTEGER
  65.     pid           AS INTEGER
  66.     tid           AS INTEGER
  67.     cUsage           AS INTEGER
  68.     client           AS INTEGER
  69.     sem           AS LONG
  70. END TYPE
  71.  
  72. ' codeTerminate values for RESULTCODES type
  73.  
  74. CONST    TCEXIT        = 0
  75. CONST    TCHARDERROR    = 1
  76. CONST    TCTRAP        = 2
  77. CONST    TCKILLPROCESS    = 3
  78.  
  79. ' Action Code Values for DosCWait
  80.  
  81. CONST    DCWAPROCESS    = 0
  82. CONST    DCWAPROCESSTREE = 1
  83.  
  84. ' Wait option values for DosCWait
  85.  
  86. CONST    DCWWWAIT    = 0
  87. CONST    DCWWNOWAIT    = 1
  88.  
  89. ' DosExecPgm functions
  90.  
  91. CONST    EXECSYNC    = 0
  92. CONST    EXECASYNC    = 1
  93. CONST    EXECASYNCRESULT = 2
  94. CONST    EXECTRACE    = 3
  95. CONST    EXECBACKGROUND    = 4
  96.  
  97. ' Priority scopes for DosGetPtry/DosSetPtry
  98.  
  99. CONST    PRTYSPROCESS    = 0
  100. CONST    PRTYSPROCESSTREE= 1
  101. CONST    PRTYSTHREAD    = 2
  102.  
  103. ' Priority classes for DosGetPtry/DosSetPtry
  104.  
  105. CONST    PRTYCNOCHANGE    = 0
  106. CONST    PRTYCIDLETIME    = 1
  107. CONST    PRTYCREGULAR    = 2
  108. CONST    PRTYCTIMECRITICAL= 3
  109.  
  110. ' Priority deltas for DosGetPtry/DosSetPtry
  111.  
  112. CONST    PRTYDMINIMUM    = -31
  113. CONST    PRTYDMAXIMUM    = 31
  114.  
  115. ' Process scopes for DosKillProcess
  116.  
  117. CONST    DKPPROCESS    = 0
  118. CONST    DKPROCESSTREE    = 1
  119.  
  120. 'Semaphore Types for DosCreateSem
  121.  
  122. CONST    CSEMPRIVATE    = 0
  123. CONST    CSEMPUBLIC    = 1
  124.  
  125. 'Semaphore durations
  126.  
  127. CONST    SEMIMMEDIATERETURN = 0
  128. CONST    SEMINDEFINITEWAIT  = -1
  129.  
  130. 'DosHoldSignal constants
  131.  
  132. CONST    HLDSIGENABLE    = 0
  133. CONST    HLDSIGDISABLE    = 1
  134.  
  135. 'Flag numbers for DosFlagProcess
  136.  
  137. CONST    PFLGA        = 0   'Process Flag A
  138. CONST    PFLGB        = 1   'Process Flag B
  139. CONST    PFLGC        = 2   'Process Flag C
  140.  
  141. 'DosFlagProcess codes
  142.  
  143. CONST    FLGPSUBTREE    = 0
  144. CONST    FLGPPID     = 1
  145.  
  146. 'Signal actions
  147.  
  148. CONST    SIGAKILL    = 0
  149. CONST    SIGAIGNORE    = 1
  150. CONST    SIGAACCEPT    = 2
  151. CONST    SIGAERROR    = 3
  152. CONST    SIGAACKNOWLEDGE = 4
  153.  
  154. ' Signal Numbers for DosSetSigHandler
  155.  
  156. CONST    SIGCTRLC    = 1
  157. CONST    SIGKILLPROCESS    = 3
  158. CONST    SIGCTRLBREAK    = 4
  159. CONST    SIGPFLGA    = 5
  160. CONST    SIGPFLGB    = 6
  161. CONST    SIGPFLGC    = 7
  162.  
  163. ' DosExit codes
  164.  
  165. CONST    EXITTHREAD    = 0
  166. CONST    EXITPROCESS    = 1
  167.  
  168. ' DosSearchPath constants
  169.  
  170. CONST    DSPPATH     = 0
  171. CONST    DSPCURDIRECTORY = 1
  172. CONST    DSPENVIRONMENT    = 2
  173. CONST    DSPIGNORENETERR = 4
  174.  
  175. CONST    SEARCHPATH    = DSPPATH
  176. CONST    SEARCHCURDIRECTORY = DSPCURDIRECTORY
  177.  
  178. ' DosCreateQueue priority
  179.  
  180. CONST    QUEFIFO     = 0
  181. CONST    QUELIFO     = 1
  182. CONST    QUEPRIORITY    = 2
  183.  
  184. ' SelectInd constants for STATUSDATA
  185.  
  186. CONST    TARGETUNCHANGED = 0
  187. CONST    TARGETSELECTABLE = 1
  188. CONST    TARGETNOTSELECTABLE = 2
  189.  
  190. ' BindInd constants for STATUSDATA
  191.  
  192. CONST    BINDUNCHANGED    = 0
  193. CONST    BINDCHILD    = 1
  194. CONST    BINDNONE    = 2
  195.  
  196. ' DosGetMachineMode machine modes
  197.  
  198. CONST    MODEREAL    = 0
  199. CONST    MODEPROTECTED    = 1
  200.  
  201. ' DosQAppType application types
  202.  
  203. CONST    NOTSPECIFIED    = &H0000
  204. CONST    NOTWINDOWCOMPAT = &H0001
  205. CONST    WINDOWCOMPAT    = &H0002
  206. CONST    WINDOWAPI    = &H0003
  207. CONST    BOUND        = &H0008
  208. CONST    DYNAMICLINK    = &H0010
  209. CONST    DOSFORMAT    = &H0020
  210.  
  211. ' DosQSysInfo index
  212.  
  213. CONST    QMAXPATHLENGTH    = 0
  214.  
  215. '
  216. 'Process Control
  217. '
  218.  
  219. DECLARE FUNCTION DosBeep%( _
  220.         BYVAL P1 AS INTEGER,_
  221.         BYVAL P2 AS INTEGER)
  222.  
  223. DECLARE SUB DosExit( _
  224.         BYVAL P1 AS INTEGER,_
  225.         BYVAL P2 AS INTEGER)
  226.  
  227. DECLARE FUNCTION DosCWait%( _
  228.         BYVAL P1 AS INTEGER,_
  229.         BYVAL P2 AS INTEGER,_
  230.     SEG   P3 AS RESULTCODES,_
  231.         SEG   P4 AS INTEGER,_
  232.         BYVAL P5 AS INTEGER)
  233.  
  234. DECLARE FUNCTION DosSleep%( _
  235.         BYVAL P1 AS LONG)
  236.  
  237. DECLARE SUB DosEnterCritSec()
  238.  
  239. DECLARE SUB DosExitCritSec()
  240.  
  241.  
  242. DECLARE FUNCTION DosExecPgm%( _
  243.         BYVAL P1s AS INTEGER,_ 
  244.         BYVAL P1o AS INTEGER,_
  245.         BYVAL P2 AS INTEGER,_
  246.         BYVAL P3 AS INTEGER,_
  247.         BYVAL P4s AS INTEGER,_ 
  248.         BYVAL P4o AS INTEGER,_
  249.         BYVAL P5s AS INTEGER,_ 
  250.         BYVAL P5o AS INTEGER,_
  251.     SEG   P6 AS RESULTCODES,_
  252.         BYVAL P7s AS INTEGER,_ 
  253.         BYVAL P7o AS INTEGER)
  254.  
  255. DECLARE FUNCTION DosGetPID%( _
  256.     SEG   P1 AS PIDINFO)
  257.  
  258. DECLARE FUNCTION DosGetPrty%( _
  259.         BYVAL P1 AS INTEGER,_
  260.         SEG   P2 AS INTEGER,_
  261.         BYVAL P3 AS INTEGER)
  262.  
  263. DECLARE FUNCTION DosSetPrty%( _
  264.         BYVAL P1 AS INTEGER,_
  265.         BYVAL P2 AS INTEGER,_
  266.         BYVAL P3 AS INTEGER,_
  267.         BYVAL P4 AS INTEGER)
  268.  
  269. DECLARE FUNCTION DosKillProcess%( _
  270.         BYVAL P1 AS INTEGER,_
  271.     BYVAL P2 AS INTEGER)
  272.  
  273. DECLARE FUNCTION DosGetPPID%( _
  274.     BYVAL P1 AS INTEGER,_
  275.     SEG   P2 AS INTEGER)
  276.  
  277. '
  278. ' Semaphores
  279. '
  280.  
  281. DECLARE FUNCTION DosSemClear%( _
  282.         BYVAL P1 AS LONG)
  283.  
  284. DECLARE FUNCTION DosSemRequest%( _
  285.         BYVAL P1 AS LONG,_
  286.         BYVAL P2 AS LONG)
  287.  
  288. DECLARE FUNCTION DosSemSet%( _
  289.         BYVAL P1 AS LONG)
  290.  
  291. DECLARE FUNCTION DosSemSetWait%( _
  292.         BYVAL P1 AS LONG,_
  293.         BYVAL P2 AS LONG)
  294.  
  295. DECLARE FUNCTION DosSemWait%( _
  296.         BYVAL P1 AS LONG,_
  297.         BYVAL P2 AS LONG)
  298.  
  299. DECLARE FUNCTION DosCreateSem%( _
  300.         BYVAL P1 AS INTEGER,_
  301.         SEG   P2 AS LONG,_
  302.         BYVAL P3s AS INTEGER,_ 
  303.         BYVAL P3o AS INTEGER)
  304.  
  305. DECLARE FUNCTION DosOpenSem%( _
  306.         SEG   P1 AS LONG,_
  307.         BYVAL P2s AS INTEGER,_ 
  308.         BYVAL P2o AS INTEGER)
  309.  
  310. DECLARE FUNCTION DosCloseSem%( _
  311.         BYVAL P1 AS LONG)
  312.  
  313. DECLARE FUNCTION DosMuxSemWait%( _
  314.         SEG   P1 AS INTEGER,_
  315.     BYVAL P2s AS INTEGER,_
  316.     BYVAL P2o AS INTEGER,_
  317.     BYVAL P3 AS LONG)
  318.  
  319. DECLARE FUNCTION DosFSRamSemRequest%( _
  320.     SEG   P1 AS DOSFSRSEM,_
  321.     BYVAL P2 AS LONG)
  322.  
  323. DECLARE FUNCTION DosFsRamSemClear%( _
  324.     SEG   P1 AS DOSFSRSEM)
  325.  
  326. '
  327. ' Signals
  328. '
  329.  
  330. DECLARE FUNCTION DosHoldSignal%( _
  331.         BYVAL P1 AS INTEGER)
  332.  
  333. DECLARE FUNCTION DosFlagProcess%( _
  334.         BYVAL P1 AS INTEGER,_
  335.         BYVAL P2 AS INTEGER,_
  336.         BYVAL P3 AS INTEGER,_
  337.         BYVAL P4 AS INTEGER)
  338.  
  339. DECLARE FUNCTION DosSendSignal%( _
  340.         BYVAL P1 AS INTEGER,_
  341.         BYVAL P2 AS INTEGER)
  342.  
  343. '
  344. ' Pipes and Queues
  345. '
  346.  
  347. DECLARE FUNCTION DosMakePipe%( _
  348.         SEG   P1 AS INTEGER,_
  349.         SEG   P2 AS INTEGER,_
  350.         BYVAL P3 AS INTEGER)
  351.  
  352. DECLARE FUNCTION DosCloseQueue%( _
  353.         BYVAL P1 AS INTEGER)
  354.  
  355. DECLARE FUNCTION DosCreateQueue%( _
  356.         SEG   P1 AS INTEGER,_
  357.         BYVAL P2 AS INTEGER,_
  358.         BYVAL P3s AS INTEGER,_ 
  359.         BYVAL P3o AS INTEGER)
  360.  
  361. DECLARE FUNCTION DosOpenQueue%( _
  362.         SEG   P1 AS INTEGER,_
  363.         SEG   P2 AS INTEGER,_
  364.         BYVAL P3s AS INTEGER,_ 
  365.         BYVAL P3o AS INTEGER)
  366.  
  367. DECLARE FUNCTION DosPeekQueue%( _
  368.         BYVAL P1 AS INTEGER,_
  369.         SEG   P2 AS LONG,_
  370.         SEG   P3 AS INTEGER,_
  371.         SEG   P4 AS LONG,_
  372.         SEG   P5 AS INTEGER,_
  373.         BYVAL P6 AS INTEGER,_
  374.         BYVAL P7s AS INTEGER,_ 
  375.         BYVAL P7o AS INTEGER,_
  376.         BYVAL P8 AS LONG)
  377.  
  378. DECLARE FUNCTION DosPurgeQueue%( _
  379.         BYVAL P1 AS INTEGER)
  380.  
  381. DECLARE FUNCTION DosQueryQueue%( _
  382.         BYVAL P1 AS INTEGER,_
  383.         SEG   P2 AS INTEGER)
  384.  
  385. DECLARE FUNCTION DosReadQueue%( _
  386.         BYVAL P1 AS INTEGER,_
  387.         SEG   P2 AS LONG,_
  388.         SEG   P3 AS INTEGER,_
  389.         SEG   P4 AS LONG,_
  390.         BYVAL P5 AS INTEGER,_
  391.         BYVAL P6 AS INTEGER,_
  392.         BYVAL P7s AS INTEGER,_ 
  393.         BYVAL P7o AS INTEGER,_
  394.         BYVAL P8 AS LONG)
  395.  
  396. DECLARE FUNCTION DosWriteQueue%( _
  397.         BYVAL P1 AS INTEGER,_
  398.         BYVAL P2 AS INTEGER,_
  399.         BYVAL P3 AS INTEGER,_
  400.         BYVAL P4s AS INTEGER,_ 
  401.         BYVAL P4o AS INTEGER,_
  402.         BYVAL P5 AS INTEGER)
  403.  
  404. '
  405. ' Error Handling and Messages
  406. '
  407.  
  408. DECLARE FUNCTION DosError%( _
  409.         BYVAL P1 AS INTEGER)
  410.  
  411. DECLARE FUNCTION DosGetMessage%( _
  412.         BYVAL P1s AS INTEGER,_ 
  413.         BYVAL P1o AS INTEGER,_
  414.         BYVAL P2 AS INTEGER,_
  415.         BYVAL P3s AS INTEGER,_ 
  416.         BYVAL P3o AS INTEGER,_
  417.         BYVAL P4 AS INTEGER,_
  418.         BYVAL P5 AS INTEGER,_
  419.         BYVAL P6s AS INTEGER,_ 
  420.         BYVAL P6o AS INTEGER,_
  421.         SEG   P7 AS INTEGER)
  422.  
  423. DECLARE FUNCTION DosErrClass%( _
  424.         BYVAL P1 AS INTEGER,_
  425.         SEG   P2 AS INTEGER,_
  426.         SEG   P3 AS INTEGER,_
  427.         SEG   P4 AS INTEGER)
  428.  
  429. DECLARE FUNCTION DosInsMessage%( _
  430.         BYVAL P1s AS INTEGER,_ 
  431.         BYVAL P1o AS INTEGER,_
  432.         BYVAL P2 AS INTEGER,_
  433.         BYVAL P3s AS INTEGER,_ 
  434.         BYVAL P3o AS INTEGER,_
  435.         BYVAL P4 AS INTEGER,_
  436.         BYVAL P5s AS INTEGER,_ 
  437.         BYVAL P5o AS INTEGER,_
  438.         BYVAL P6 AS INTEGER,_
  439.         SEG   P7 AS INTEGER)
  440.  
  441. DECLARE FUNCTION DosPutMessage%( _
  442.         BYVAL P1 AS INTEGER,_
  443.         BYVAL P2 AS INTEGER,_
  444.         BYVAL P3s AS INTEGER,_ 
  445.         BYVAL P3o AS INTEGER)
  446.  
  447. DECLARE FUNCTION DosGetEnv%( _
  448.         SEG   P1 AS INTEGER,_
  449.         SEG   P2 AS INTEGER)
  450.  
  451. DECLARE FUNCTION DosScanEnv%( _
  452.         BYVAL P1s AS INTEGER,_ 
  453.         BYVAL P1o AS INTEGER,_
  454.     SEG   P2  AS ADDRESS)
  455.  
  456. DECLARE FUNCTION DosSearchPath%( _
  457.     BYVAL P1 AS INTEGER,_
  458.         BYVAL P2s AS INTEGER,_ 
  459.         BYVAL P2o AS INTEGER,_
  460.         BYVAL P3s AS INTEGER,_ 
  461.         BYVAL P3o AS INTEGER,_
  462.         BYVAL P4s AS INTEGER,_ 
  463.         BYVAL P4o AS INTEGER,_
  464.         BYVAL P5 AS INTEGER)
  465.  
  466. DECLARE FUNCTION DosGetVersion%( _
  467.         SEG   P1 AS INTEGER)
  468.  
  469. DECLARE FUNCTION DosGetMachineMode%( _
  470.         BYVAL P1s AS INTEGER,_ 
  471.     BYVAL P1o AS INTEGER)
  472.  
  473. DECLARE FUNCTION DosQSysInfo%( _
  474.     BYVAL P1 AS INTEGER,_
  475.     BYVAL P2s AS INTEGER,_
  476.     BYVAL P2o AS INTEGER,_
  477.     BYVAL P3 AS INTEGER)
  478.  
  479. '
  480. ' Session Manager
  481. '
  482.  
  483. DECLARE FUNCTION DosStartSession%( _
  484.     SEG   P1 AS STARTDATA,_
  485.         SEG   P2 AS INTEGER,_
  486.         SEG   P3 AS INTEGER)
  487.  
  488. DECLARE FUNCTION DosSetSession%( _
  489.         BYVAL P1 AS INTEGER,_
  490.     SEG   P2 AS STATUSDATA)
  491.  
  492. DECLARE FUNCTION DosSelectSession%( _
  493.         BYVAL P1 AS INTEGER,_
  494.         BYVAL P2 AS LONG)
  495.  
  496. DECLARE FUNCTION DosStopSession%( _
  497.         BYVAL P1 AS INTEGER,_
  498.         BYVAL P2 AS INTEGER,_
  499.         BYVAL P3 AS LONG)
  500.  
  501. DECLARE FUNCTION DosQAppType%( _
  502.     BYVAL P1s AS INTEGER,_
  503.     BYVAL P1o AS INTEGER,_
  504.     SEG   P2 AS INTEGER)
  505.