home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume26 / xinetd-2.1.1 / part01 / xinetd / mask.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-27  |  986 b   |  38 lines

  1. /*
  2.  * (c) Copyright 1992 by Panagiotis Tsirigotis
  3.  * All rights reserved.  The file named COPYRIGHT specifies the terms 
  4.  * and conditions for redistribution.
  5.  */
  6.  
  7. #ifndef MASK_H
  8. #define MASK_H
  9.  
  10. /*
  11.  * $Id: mask.h,v 6.1 1993/04/04 19:46:50 panos Exp $
  12.  */
  13.  
  14. /*
  15.  * Macros about masks
  16.  */
  17.  
  18. typedef unsigned mask_t ;
  19.  
  20. #define MASK_EMPTY                                0
  21. #define MASK_NULL                                    ((mask_t *)0)
  22.  
  23. #define MASK( v )                                    ( 1 << ( (v)-1 ) )
  24.  
  25. #define M_CLEAR_ALL( mask )                    (mask) = 0
  26. #define M_ASSIGN( mask1, mask2 )                (mask1) = (mask2)
  27. #define M_ARE_ALL_CLEAR( mask )                ( (mask) == 0 )
  28. #define M_SET( mask, v )                        (mask) |= MASK(v)
  29. #define M_CLEAR( mask, v )                        (mask) &= ~MASK(v)
  30. #define M_IS_SET( mask, v )                    ( (mask) & MASK(v) )
  31. #define M_IS_CLEAR( mask, v )                    ( ! M_IS_SET( mask, v ) )
  32.  
  33. #define M_AND( mres, m1, m2 )                    ( (mres) = (m1) & (m2) )
  34. #define M_OR( mres, m1, m2 )                    ( (mres) = (m1) | (m2) )
  35. #define M_XOR( mres, m1, m2 )                    ( (mres) = (m1) ^ (m2) )
  36.  
  37. #endif    /* MASK_H */
  38.