- Notifications
You must be signed in to change notification settings - Fork 260
/
Copy pathexplain_flags.cpp
37 lines (33 loc) · 1.43 KB
/
explain_flags.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<iostream>
#include<iomanip>
#include"tools.hpp"
voidflag_bit( uint16_t flags, uint16_t mask, constchar * txt ) {
bool bit = ( flags & mask ) == mask;
uint16_t v = bit ? 1 : 0;
std::cout << std::setw( 20 ) << txt << ": " << v << std::endl;
}
voidexplain( uint16_t flags ) {
std::cout << "FLAGS: " << flags << " - 0x" << std::hex << flags << std::dec << " :" << std::endl;
flag_bit( flags, tools::FLAG_PAIRED, "PAIRED" );
flag_bit( flags, tools::FLAG_PROPPER_ALIGNED, "PROPPER_ALIGNED" );
flag_bit( flags, tools::FLAG_UNMAPPED, "UNMAPPED" );
flag_bit( flags, tools::FLAG_MATE_UNMAPPED, "MATE_UNMAPPED" );
flag_bit( flags, tools::FLAG_REVERSED, "REVERSED" );
flag_bit( flags, tools::FLAG_MATE_REVERSED, "MATE_REVERSED" );
flag_bit( flags, tools::FLAG_IS_READ1, "IS_READ1" );
flag_bit( flags, tools::FLAG_IS_READ2, "IS_READ2" );
flag_bit( flags, tools::FLAG_NOT_PRIMARY, "NOT_PRIMARY" );
flag_bit( flags, tools::FLAG_QUAL_CHECK_FAILED, "QUAL_CHECK_FAILED" );
flag_bit( flags, tools::FLAG_PCR_OR_DUP, "PCR_OR_DUP" );
flag_bit( flags, tools::FLAG_SUPPLEMENTAL, "SUPPLEMENTAL" );
std::cout << std::endl;
}
intmain( int argc, char *argv[] ) {
if ( argc == 2 ) {
explain( tools::str_2_uint16_t( argv[ 1 ] ) );
} elseif ( argc == 3 ) {
explain( tools::str_2_uint16_t( argv[ 1 ] ) );
explain( tools::str_2_uint16_t( argv[ 2 ] ) );
}
return0;
}