tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
 * Author: Joshua Brindle <jbrindle@tresys.com>
 *
 * Copyright (C) 2006 Tresys Technology, LLC
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
 
/* This includes functions used to debug tests (display bitmaps, conditional expressions, etc */
 
#include "debug.h"
 
#include <stdlib.h>
 
void print_ebitmap(ebitmap_t * bitmap, FILE * fp)
{
   uint32_t i;
   for (i = 0; i < bitmap->highbit; i++) {
       fprintf(fp, "%d", ebitmap_get_bit(bitmap, i));
   }
   fprintf(fp, "\n");
}
 
/* stolen from dispol.c */
void display_expr(policydb_t * p, cond_expr_t * exp, FILE * fp)
{
 
   cond_expr_t *cur;
   for (cur = exp; cur != NULL; cur = cur->next) {
       switch (cur->expr_type) {
       case COND_BOOL:
           fprintf(fp, "%s ", p->p_bool_val_to_name[cur->bool - 1]);
           break;
       case COND_NOT:
           fprintf(fp, "! ");
           break;
       case COND_OR:
           fprintf(fp, "|| ");
           break;
       case COND_AND:
           fprintf(fp, "&& ");
           break;
       case COND_XOR:
           fprintf(fp, "^ ");
           break;
       case COND_EQ:
           fprintf(fp, "== ");
           break;
       case COND_NEQ:
           fprintf(fp, "!= ");
           break;
       default:
           fprintf(fp, "error! (%d)", cur->expr_type);
           break;
       }
   }
}