1255e72915d4cbddceb435e13d81601755714e9fSE Android/* 2255e72915d4cbddceb435e13d81601755714e9fSE Android * Author: Joshua Brindle <jbrindle@tresys.com> 3255e72915d4cbddceb435e13d81601755714e9fSE Android * 4255e72915d4cbddceb435e13d81601755714e9fSE Android * Copyright (C) 2006 Tresys Technology, LLC 5255e72915d4cbddceb435e13d81601755714e9fSE Android * 6255e72915d4cbddceb435e13d81601755714e9fSE Android * This library is free software; you can redistribute it and/or 7255e72915d4cbddceb435e13d81601755714e9fSE Android * modify it under the terms of the GNU Lesser General Public 8255e72915d4cbddceb435e13d81601755714e9fSE Android * License as published by the Free Software Foundation; either 9255e72915d4cbddceb435e13d81601755714e9fSE Android * version 2.1 of the License, or (at your option) any later version. 10255e72915d4cbddceb435e13d81601755714e9fSE Android * 11255e72915d4cbddceb435e13d81601755714e9fSE Android * This library is distributed in the hope that it will be useful, 12255e72915d4cbddceb435e13d81601755714e9fSE Android * but WITHOUT ANY WARRANTY; without even the implied warranty of 13255e72915d4cbddceb435e13d81601755714e9fSE Android * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14255e72915d4cbddceb435e13d81601755714e9fSE Android * Lesser General Public License for more details. 15255e72915d4cbddceb435e13d81601755714e9fSE Android * 16255e72915d4cbddceb435e13d81601755714e9fSE Android * You should have received a copy of the GNU Lesser General Public 17255e72915d4cbddceb435e13d81601755714e9fSE Android * License along with this library; if not, write to the Free Software 18255e72915d4cbddceb435e13d81601755714e9fSE Android * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19255e72915d4cbddceb435e13d81601755714e9fSE Android */ 20255e72915d4cbddceb435e13d81601755714e9fSE Android 21255e72915d4cbddceb435e13d81601755714e9fSE Android/* This includes functions used to debug tests (display bitmaps, conditional expressions, etc */ 22255e72915d4cbddceb435e13d81601755714e9fSE Android 23255e72915d4cbddceb435e13d81601755714e9fSE Android#include "debug.h" 24255e72915d4cbddceb435e13d81601755714e9fSE Android 25255e72915d4cbddceb435e13d81601755714e9fSE Android#include <stdlib.h> 26255e72915d4cbddceb435e13d81601755714e9fSE Android 27255e72915d4cbddceb435e13d81601755714e9fSE Androidvoid print_ebitmap(ebitmap_t * bitmap, FILE * fp) 28255e72915d4cbddceb435e13d81601755714e9fSE Android{ 29255e72915d4cbddceb435e13d81601755714e9fSE Android uint32_t i; 30255e72915d4cbddceb435e13d81601755714e9fSE Android for (i = 0; i < bitmap->highbit; i++) { 31255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "%d", ebitmap_get_bit(bitmap, i)); 32255e72915d4cbddceb435e13d81601755714e9fSE Android } 33255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "\n"); 34255e72915d4cbddceb435e13d81601755714e9fSE Android} 35255e72915d4cbddceb435e13d81601755714e9fSE Android 36255e72915d4cbddceb435e13d81601755714e9fSE Android/* stolen from dispol.c */ 37255e72915d4cbddceb435e13d81601755714e9fSE Androidvoid display_expr(policydb_t * p, cond_expr_t * exp, FILE * fp) 38255e72915d4cbddceb435e13d81601755714e9fSE Android{ 39255e72915d4cbddceb435e13d81601755714e9fSE Android 40255e72915d4cbddceb435e13d81601755714e9fSE Android cond_expr_t *cur; 41255e72915d4cbddceb435e13d81601755714e9fSE Android for (cur = exp; cur != NULL; cur = cur->next) { 42255e72915d4cbddceb435e13d81601755714e9fSE Android switch (cur->expr_type) { 43255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_BOOL: 44255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "%s ", p->p_bool_val_to_name[cur->bool - 1]); 45255e72915d4cbddceb435e13d81601755714e9fSE Android break; 46255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_NOT: 47255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "! "); 48255e72915d4cbddceb435e13d81601755714e9fSE Android break; 49255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_OR: 50255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "|| "); 51255e72915d4cbddceb435e13d81601755714e9fSE Android break; 52255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_AND: 53255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "&& "); 54255e72915d4cbddceb435e13d81601755714e9fSE Android break; 55255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_XOR: 56255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "^ "); 57255e72915d4cbddceb435e13d81601755714e9fSE Android break; 58255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_EQ: 59255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "== "); 60255e72915d4cbddceb435e13d81601755714e9fSE Android break; 61255e72915d4cbddceb435e13d81601755714e9fSE Android case COND_NEQ: 62255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "!= "); 63255e72915d4cbddceb435e13d81601755714e9fSE Android break; 64255e72915d4cbddceb435e13d81601755714e9fSE Android default: 65255e72915d4cbddceb435e13d81601755714e9fSE Android fprintf(fp, "error! (%d)", cur->expr_type); 66255e72915d4cbddceb435e13d81601755714e9fSE Android break; 67255e72915d4cbddceb435e13d81601755714e9fSE Android } 68255e72915d4cbddceb435e13d81601755714e9fSE Android } 69255e72915d4cbddceb435e13d81601755714e9fSE Android} 70