libexplain
1.4.D001
|
00001 /* 00002 * libexplain - Explain errno values returned by libc functions 00003 * Copyright (C) 2008-2010, 2013 Peter Miller 00004 * Written by Peter Miller <pmiller@opensource.org.au> 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU Lesser General Public License as published by 00008 * the Free Software Foundation; either version 3 of the License, or (at 00009 * your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public License 00017 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 #ifndef LIBEXPLAIN_PARSE_BITS_H 00021 #define LIBEXPLAIN_PARSE_BITS_H 00022 00023 #include <libexplain/ac/stddef.h> 00024 00025 #include <libexplain/sizeof.h> 00026 00027 typedef struct explain_parse_bits_table_t explain_parse_bits_table_t; 00028 struct explain_parse_bits_table_t 00029 { 00030 const char *name; 00031 int value; 00032 }; 00033 00053 int explain_parse_bits(const char *text, 00054 const explain_parse_bits_table_t *table, size_t table_size, int *result); 00055 00061 const char *explain_parse_bits_get_error(void); 00062 00083 int explain_parse_bits_or_die(const char *text, 00084 const explain_parse_bits_table_t *table, size_t table_size, 00085 const char *caption); 00086 00100 const explain_parse_bits_table_t *explain_parse_bits_find_by_name( 00101 const char *name, const explain_parse_bits_table_t *table, 00102 size_t table_size); 00103 00119 const explain_parse_bits_table_t *explain_parse_bits_find_by_name_fuzzy( 00120 const char *name, const explain_parse_bits_table_t *table, 00121 size_t table_size); 00122 00136 const explain_parse_bits_table_t *explain_parse_bits_find_by_name_fuzzy( 00137 const char *name, const explain_parse_bits_table_t *table, 00138 size_t table_size); 00139 00153 const explain_parse_bits_table_t *explain_parse_bits_find_by_value( 00154 int value, const explain_parse_bits_table_t *table, 00155 size_t table_size); 00156 00157 struct explain_string_buffer_t; /* forward */ 00158 00172 void explain_parse_bits_print(struct explain_string_buffer_t *sb, 00173 int value, const explain_parse_bits_table_t *table, int table_size); 00174 00188 void explain_parse_bits_print_single(struct explain_string_buffer_t *sb, 00189 int value, const explain_parse_bits_table_t *table, int table_size); 00190 00191 #endif /* LIBEXPLAIN_PARSE_BITS_H */ 00192 /* vim: set ts=8 sw=4 et : */