jehanne/sys/src/lib/jehanne/syscallh.rc.template

52 lines
1.4 KiB
Plaintext

/*
* This file is part of Jehanne.
*
* Copyright (C) 2022 Giacomo Tesio <giacomo@tesio.it>
*
* Jehanne is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* Jehanne 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Jehanne. If not, see <http://www.gnu.org/licenses/>.
*/
/* automatically generated by syscallh.rc.template */
#! fn toPascalCase {
#! sed 's/^\(.\)\(.\+\)/echo -n \1 | tr a-z A-Z; echo \2/g' | rc
#! }
typedef enum Syscalls
{
#! ifs='
#! '
#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs}
#! for (line in $CONFIGURATION){
#! eval $line
#! ENUM_NAME=Sys`{echo $NAME|toPascalCase}
$ENUM_NAME = $ID,
#! }
} Syscalls;
#ifndef KERNEL
#! . $JEHANNE/sys/src/kern/$ARCH/registry-$ARCH.rc.conf
#! ifs='
#! '
#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs}
#! for (line in $CONFIGURATION){
#! eval $line
#! OTHERARGS=()
#! if( ! ~ 1 $#ARGS){
#! OTHERARGS=(', '^$ARGS(2-))
#! }
extern $RET sys_$NAME($ARGS(1) $"OTHERARGS);
#! }
#endif