/*
* ${project trunk_name} - ${project trunk_description}
* Copyright (C) ${date %Y} ${user name}
* Written by ${user email}
*
* This program 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 3 of the License, or (at your
* option) any later version.
*
* This program 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 program. If not, see .
*/
#include
#include
#include
#include
#include
#include <${trim_ext $filename}.h>
#ifdef ${upcase ${basename $filename .c}}
static void
print_data(const explain_iocontrol_t *p, explain_string_buffer_t *sb,
int errnum, int fildes, int request, const void *data)
{
(void)p;
(void)errnum;
(void)fildes;
(void)request;
explain_buffer_${basename $filename .c}(sb, data);
}
static void
print_explanation(const explain_iocontrol_t *p, explain_string_buffer_t *sb,
int errnum, int fildes, int request, const void *data)
{
switch (errnum)
{
case EINVAL:
if (!data)
{
explain_buffer_is_the_null_pointer(sb, "data");
return;
}
...
break;
default:
explain_iocontrol_generic_print_explanation
(
p,
sb,
errnum,
fildes,
request,
data
);
break;
}
}
static void
print_data_returned(const explain_iocontrol_t *p, explain_string_buffer_t *sb,
int errnum, int fildes, int request, const void *data)
{
(void)p;
(void)errnum;
(void)fildes;
(void)request;
explain_buffer_${basename $filename .c}(sb, data);
}
const explain_iocontrol_t explain_iocontrol_${basename $filename .c} =
{
"${upcase ${basename $filename .c}}", /* name */
${upcase ${basename $filename .c}}, /* value */
0, /* disambiguate */
0, /* print_name */
0, /* print_data */
print_explanation,
0, /* print_data_returned */
sizeof(struct ${basename $filename .c}), /* data_size */
"struct ${basename $filename .c} *", /* data_type */
0, /* flags */
__FILE__,
__LINE__,
};
#else /* ndef ${upcase ${basename $filename .c}} */
const explain_iocontrol_t explain_iocontrol_${basename $filename .c} =
{
0, /* name */
0, /* value */
0, /* disambiguate */
0, /* print_name */
0, /* print_data */
0, /* print_explanation */
0, /* print_data_returned */
0, /* data_size */
0, /* data_type */
0, /* flags */
__FILE__,
__LINE__,
};
#endif /* ${upcase ${basename $filename .c}} */
/* vim: set ts=8 sw=4 et : */