File indexing completed on 2025-02-21 10:05:33
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef CERN_MASK
0019 #define CERN_MASK
0020
0021 #include "cern_types.h"
0022
0023
0024 #define MASK_BLOCK_SIZE 1024
0025
0026 typedef struct _bit_desc_ {
0027 bool valid;
0028 char *desc;
0029 int selected;
0030 } BitDesc;
0031
0032
0033 typedef struct _mask_ {
0034 char *mname;
0035 char *fname;
0036 FILE *mfp;
0037 Int32 nevt;
0038 bool update;
0039 bool dirty;
0040 BitDesc bits[32];
0041 Int32 buf_index;
0042 Int32 buf[MASK_BLOCK_SIZE];
0043 } Mask;
0044
0045 Mask *
0046 mask_find( const char * const mname );
0047
0048 bool
0049 mask_bit_defined( const Mask * const mp, const int ibit );
0050
0051 bool
0052 mask_writable( const Mask * const mp );
0053
0054 UInt32
0055 mask_get_word( Mask * mp, long ievt, int * errp );
0056
0057 void
0058 mask_set_desc( Mask *mp, int ibit, char * desc );
0059
0060 void
0061 mask_set_bit( Mask * mp, long ievt, int ibit, bool value, int * errp );
0062
0063 int
0064 mask_flush_header( Mask * mp );
0065
0066 int
0067 mask_flush_buf( Mask * mp );
0068
0069 #endif