libexplain
1.4.D001
|
00001 /* 00002 * libexplain - Explain errno values returned by libc functions 00003 * Copyright (C) 2009, 2011, 2013 Peter Miller 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU Lesser General Public License as 00007 * published by the Free Software Foundation; either version 3 of the 00008 * License, or (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 * Lesser General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU Lesser General Public License 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 */ 00018 00019 #include <libexplain/ac/sys/mtio.h> 00020 00021 #include <libexplain/buffer/mtconfiginfo.h> 00022 #include <libexplain/buffer/pointer.h> 00023 #include <libexplain/is_efault.h> 00024 00025 00026 #ifdef MTIOCSETCONFIG 00027 00028 void 00029 explain_buffer_mtconfiginfo(explain_string_buffer_t *sb, 00030 const struct mtconfiginfo *data) 00031 { 00032 if (explain_is_efault_pointer(data, sizeof(*data))) 00033 explain_buffer_pointer(sb, data); 00034 else 00035 { 00036 explain_string_buffer_printf(sb, "{ mt_type = %ld, ", data->mt_type); 00037 #ifdef __linux__ 00038 explain_string_buffer_printf(sb, "ifc_type = %ld, ", data->ifc_type); 00039 explain_string_buffer_printf(sb, "irqnr = %u, ", data->irqnr); 00040 explain_string_buffer_printf(sb, "dmanr = %u, ", data->dmanr); 00041 explain_string_buffer_printf(sb, "port = %u, ", data->port); 00042 explain_string_buffer_printf(sb, "debug = %#lx, ", data->debug); 00043 explain_string_buffer_printf 00044 ( 00045 sb, 00046 "have_dens = %d, ", 00047 data->have_dens 00048 ); 00049 explain_string_buffer_printf(sb, "have_bsf = %d, ", data->have_bsf); 00050 explain_string_buffer_printf(sb, "have_fsr = %d, ", data->have_fsr); 00051 explain_string_buffer_printf(sb, "have_bsr = %d, ", data->have_bsr); 00052 explain_string_buffer_printf(sb, "have_eod = %d, ", data->have_eod); 00053 explain_string_buffer_printf 00054 ( 00055 sb, 00056 "have_seek = %d, ", 00057 data->have_seek 00058 ); 00059 explain_string_buffer_printf 00060 ( 00061 sb, 00062 "have_tell = %d, ", 00063 data->have_tell 00064 ); 00065 explain_string_buffer_printf 00066 ( 00067 sb, 00068 "have_ras1 = %d, ", 00069 data->have_ras1 00070 ); 00071 explain_string_buffer_printf 00072 ( 00073 sb, 00074 "have_ras2 = %d, ", 00075 data->have_ras2 00076 ); 00077 explain_string_buffer_printf 00078 ( 00079 sb, 00080 "have_ras3 = %d, ", 00081 data->have_ras3 00082 ); 00083 explain_string_buffer_printf 00084 ( 00085 sb, 00086 "have_qfa = %d, ", 00087 data->have_qfa 00088 ); 00089 #endif 00090 explain_string_buffer_puts(sb, " }"); 00091 } 00092 } 00093 00094 #else 00095 00096 void 00097 explain_buffer_mtconfiginfo(explain_string_buffer_t *sb, 00098 const struct mtconfiginfo *data) 00099 { 00100 explain_buffer_pointer(sb, data); 00101 } 00102 00103 #endif 00104 00105 00106 /* vim: set ts=8 sw=4 et : */