3 dnl Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
5 dnl This program is free software; you can redistribute it and/or modify
6 dnl it under the terms of the GNU General Public License as published by
7 dnl the Free Software Foundation; version 2 of the License.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program; if not, write to the Free Software
16 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 dnl Usage: ENSC_SYSCALLNR(<syscall>,<default>)
20 AC_DEFUN([ENSC_SYSCALLNR],
22 AC_REQUIRE([AC_PROG_CPP])
23 AC_REQUIRE([AC_PROG_EGREP])
24 AC_REQUIRE([ENSC_KERNEL_HEADERS])
26 AC_CACHE_CHECK([for number of syscall '$1'], [ensc_cv_value_syscall_$1],
30 #include <asm/unistd.h>
32 ensc_syscall_tmp_nr=__NR_$1;
33 ensc_syscall_tmp_src=ENSC_MARK
38 test "$ensc_syscall_tmp_nr" || \
39 eval $($CPP $CPPFLAGS -D ENSC_MARK='glibc' conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$')
40 test "$ensc_syscall_tmp_nr" || \
41 eval $($CPP $CPPFLAGS -D ENSC_MARK='kernel' -I $ensc_cv_path_kernelheaders conftest.c | $EGREP '^ensc_syscall_tmp_(nr=[[1-9]][[0-9]]*;|src=.*)$')
42 test "$ensc_syscall_tmp_nr" || {
43 ensc_syscall_tmp_nr=$2
44 ensc_syscall_tmp_src=default
47 if test x"$ensc_syscall_tmp_nr" = x; then
49 [Can not determine value of __NR_$1; please verify your glibc/kernelheaders, and/or set CPPFLAGS='-D__NR_$1=<value>' environment when calling configure.])
53 ensc_cv_value_syscall_$1="$ensc_syscall_tmp_nr/$ensc_syscall_tmp_src"
56 ensc_syscall_tmp_nr=${ensc_cv_value_syscall_$1%/*}
57 ensc_syscall_tmp_src=${ensc_cv_value_syscall_$1#*/}
59 if test x"$ensc_syscall_tmp_src" != x'glibc'; then
60 AC_DEFINE_UNQUOTED(ENSC_SYSCALL__NR_$1, $ensc_syscall_tmp_nr, [The number of the $1 syscall])