12
fprintf(stderr, "Usage: \n\
13
%s /path/to/ibdata table_id\n", p);
16
int main(int argc, char** argv)
18
unsigned long int pattern_size = 12;
19
byte pattern[pattern_size];
20
unsigned long int cb_buffer_size = 10*1024*1024;
21
unsigned long int i = 0, j, pos;
23
uint64_t table_id = 0;
24
uint64_t index_id = 0;
30
FILE *f = fopen(argv[1], "r");
32
fprintf(stderr, "Can't open file '%s'\n", argv[1]);
39
table_id = (uint64_t)strtoull(argv[2], NULL, 10);
40
for(i = 0; i < 8; i++){
41
byte r = (table_id >> 8*(7 - i) );
43
if(debug) fprintf(stderr, "pattern[%lu] = %02X\n", 2 + i, pattern[2 + i]);
48
fprintf(stderr, "pattern size: %lu\n", pattern_size);
49
fprintf(stderr, "pattern\nascii: ");
50
for(i = 0; i < pattern_size; i++){
51
fprintf(stderr, "%c", pattern[i]);
53
fprintf(stderr, "\n");
54
fprintf(stderr, "hex: ");
55
for(i = 0; i < pattern_size; i++){
56
fprintf(stderr, "%02X ", pattern[i]);
58
fprintf(stderr, "\n");
64
cbInit(&cb, cb_buffer_size);
66
int pattern_found = 0;
70
for(j = 0; j < pattern_size; j++){
76
if(pattern[j] != elem.value){
82
if(debug) fprintf(stderr, "Pattern found\n");
83
// pattern matches if we reached here
84
// read next 8 bytes and print
86
for(j = 0; j < 8; j++){
92
index_id = index_id | (elem.value << (7-j));
95
printf("%" PRIu32 "-%" PRIu32 "\n", (uint32_t)(index_id >> 32), (uint32_t)(index_id & 0x00000000FFFFFFFF));
98
if(debug) fprintf(stderr, "Pattern not found\n");