zcip: make it work on NOMMU (+ improve NOMMU support machinery)

fsck: fix bad English in a comment
This commit is contained in:
Denis Vlasenko
2007-03-26 17:25:33 +00:00
parent 4e1361a481
commit afa7023b46
6 changed files with 102 additions and 90 deletions

View File

@ -40,11 +40,14 @@ pid_t spawn(char **argv)
* (but don't run atexit() stuff, which would screw up parent.)
*/
failed = errno;
_exit(0);
_exit(111);
}
/* parent */
/* Unfortunately, this is not reliable: vfork()
* can be equivalent to fork() according to standards */
/* Unfortunately, this is not reliable: according to standards
* vfork() can be equivalent to fork() and we won't see value
* of 'failed'.
* Interested party can wait on pid and learn exit code.
* If 111 - then it (most probably) failed to exec */
if (failed) {
errno = failed;
return -1;

View File

@ -192,9 +192,16 @@ int wait4pid(int pid)
{
int status;
if (pid == -1 || waitpid(pid, &status, 0) == -1) return -1;
if (WIFEXITED(status)) return WEXITSTATUS(status);
if (WIFSIGNALED(status)) return WTERMSIG(status);
if (pid <= 0) {
errno = ECHILD;
return -1;
}
if (waitpid(pid, &status, 0) == -1)
return -1;
if (WIFEXITED(status))
return WEXITSTATUS(status);
if (WIFSIGNALED(status))
return WTERMSIG(status) + 10000;
return 0;
}