diff --git a/kaem.run b/kaem.run index 2d8780d7..78b44865 100644 --- a/kaem.run +++ b/kaem.run @@ -84,7 +84,7 @@ M2-Planet \ -f lib/linux/ioctl3.c \ -f lib/m2/isatty.c \ -f lib/linux/fork.c \ - -f lib/linux/execve.c \ + -f lib/m2/execve.c \ -f lib/m2/execv.c \ -f lib/m2/waitpid.c \ -f lib/linux/gettimeofday.c \ diff --git a/lib/linux/execve.c b/lib/linux/execve.c index cd3ae1a9..51c8b4ff 100644 --- a/lib/linux/execve.c +++ b/lib/linux/execve.c @@ -1,6 +1,6 @@ /* -*-comment-start: "//";comment-end:""-*- * GNU Mes --- Maxwell Equations of Software - * Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen + * Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen * * This file is part of GNU Mes. * @@ -18,15 +18,11 @@ * along with GNU Mes. If not, see . */ -#include #include #include int -execve (char const *file_name, char **argv, char **env) +execve (char const *file_name, char *const argv[], char *const env[]) { - long long_file_name = cast_voidp_to_long (file_name); - long long_argv = cast_voidp_to_long (argv); - long long_env = cast_voidp_to_long (env); - return _sys_call3 (SYS_execve, long_file_name, long_argv, long_env); + return _sys_call3 (SYS_execve, (long) file_name, (long) argv, (long) env); } diff --git a/lib/m2/execve.c b/lib/m2/execve.c new file mode 100644 index 00000000..7fe7c9ba --- /dev/null +++ b/lib/m2/execve.c @@ -0,0 +1,31 @@ +/* -*-comment-start: "//";comment-end:""-*- + * GNU Mes --- Maxwell Equations of Software + * Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen + * + * This file is part of GNU Mes. + * + * GNU Mes 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; either version 3 of the License, or (at + * your option) any later version. + * + * GNU Mes 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 GNU Mes. If not, see . + */ + +#include +#include + +int +execve (char const *file_name, char **argv, char **env) +{ + long long_file_name = file_name; + long long_argv = argv; + long long_env = env; + return _sys_call3 (SYS_execve, file_name, argv, env); +} diff --git a/simple.make b/simple.make index 283b2994..6626e7d7 100644 --- a/simple.make +++ b/simple.make @@ -122,7 +122,7 @@ M2_SOURCES = \ lib/linux/ioctl3.c \ lib/m2/isatty.c \ lib/linux/fork.c \ - lib/linux/execve.c \ + lib/m2/execve.c \ lib/m2/execv.c \ lib/m2/waitpid.c \ lib/linux/gettimeofday.c \