blob: 6a6335ab19a74585fd8916aaa79740a981fc9361 (
plain)
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
|
#!/usr/bin/env bash
# lib9p/srv_generated.c.gen - Generate errno translation tables
#
# Copyright (C) 2025 Luke T. Shumaker <lukeshu@lukeshu.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
error_h=$1
outfile=$2
{
echo "/* ${outfile} - Generated by $0. DO NOT EDIT! */"
echo
echo '#include <libmisc/error.h>'
echo '#include <lib9p/core.h>'
echo '#include "srv_errno.h"'
echo
echo '#if CONFIG_9P_ENABLE_9P2000_u || CONFIG_9P_ENABLE_9P2000_L'
echo 'lib9p_errno_t libmisc_to_linuxgeneric_errno(_errnum errnum) {'
echo $'\tLM_PARTIAL_SWITCH (errnum) {'
sed -nE \
-e 's@^(#define)?\s+(E_POSIX_([_A-Z0-9]+))[ ,][^/]*/\* ([^*(]+) (\*/|\().*@'$'\tcase \\2: return LIB9P_ERRNO_L_\\3;''@p' \
-- "$error_h" |
grep -v -e '_ENOTSUP' -e '_EWOULDBLOCK'
echo $'\tcase E_POSIX_ENOTSUP: return LIB9P_ERRNO_L_EOPNOTSUPP;'
echo $'\tcase E_POSIX_EWOULDBLOCK: return LIB9P_ERRNO_L_EAGAIN;'
echo $'\tdefault: return LIB9P_ERRNO_L_EIO;'
echo $'\t}'
echo '}'
echo '#endif'
} >"$outfile"
|