home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cenvi23.zip / ISSEM.CMD < prev    next >
OS/2 REXX Batch file  |  1995-04-07  |  2KB  |  58 lines

  1. EXTPROC CEnvi2
  2. //***********************************************
  3. //*** IsSem.cmd - CEnvi program to check if a ***
  4. //*** ver.1       semaphore exists.  Return   ***
  5. //***             errorlevel 0 if exists,     ***
  6. //***             else errorlevel 1 if the    ***
  7. //***             semaphore isn't there.      ***
  8. //*** Example: IsSem \SEM32\COMMPASS.SEM      ***
  9. //***********************************************
  10.  
  11. #define ORD_DOS32OPENEVENTSEM    325
  12. #define ORD_DOS32CLOSEEVENTSEM   326
  13. #define ORD_DOS32OPENMUTEXSEM    332
  14. #define ORD_DOS32CLOSEMUTEXSEM   333
  15. #define ORD_DOS32OPENMUXWAITSEM  338
  16. #define ORD_DOS32OPENMUXWAITSEM  339
  17.  
  18. main(argc,argv)
  19. {
  20.    if ( argc != 2 ) {
  21.       printf("Must supply semaphore name.\n");
  22.       return 1;
  23.    }
  24.  
  25.    lSemName = argv[1];
  26.  
  27.    if ( !DosOpenSomeKindOfEventSem(lSemName,lSemHandle,Ord=ORD_DOS32OPENEVENTSEM)
  28.      || !DosOpenSomeKindOfEventSem(lSemName,lSemHandle,Ord=ORD_DOS32OPENMUTEXSEM)
  29.      || !DosOpenSomeKindOfEventSem(lSemName,lSemHandle,Ord=ORD_DOS32OPENMUXWAITSEM) ) {
  30.       printf("%s exists.\n",lSemName);
  31.       return 0;
  32.    }
  33.    printf("%s is not there.\n",lSemName);
  34.    return 1;
  35. }
  36.  
  37.  
  38. DosOpenSomeKindOfEventSem(pName,pSemHandle,pDynaLinkOrdinal)
  39.    // pName is NULL or name of semaphore
  40.    // pSemHandle is semaphore handle on output; if pName NULL
  41.    //    then also input
  42.    // return 0 if success, else return error code
  43. {
  44.   BLObPut(lSemBLOb,0,pName ? 0 : pSemHandle,UWORD32);
  45.   lRc = DynamicLink("doscalls",pDynaLinkOrdinal,BIT32,CDECL,
  46.                     pName,lSemBLOb);
  47.   pSemHandle = BLObGet(lSemBLOb,0,UWORD32);
  48.   return lRc;
  49. }
  50.  
  51. DosCloseSomeKindOfEventSem(pSemHandle,pDynLinkOrdinal)
  52.    // pSemaHandle is a semaphore returned from DosOpenEventSem
  53. {
  54.   return DynamicLink("doscalls",pDynLinkOrdinal,BIT32,CDECL,
  55.                      pSemHandle);
  56. }
  57.  
  58.