#!/usr/bin/env bash # lib9p/srv_generated.c.gen - Generate errno translation tables # # Copyright (C) 2025 Luke T. Shumaker # SPDX-License-Identifier: AGPL-3.0-or-later error_h=$1 outfile=$2 { echo "/* ${outfile} - Generated by $0. DO NOT EDIT! */" echo echo '#include ' echo '#include ' 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"