Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/sys/wait.c

    reb1edb0 r4cf8ca6  
    3939#include "wait.h"
    4040
    41 #include "../libc/task.h"
    42 #include "../assert.h"
    43 #include "../errno.h"
    44 #include "../limits.h"
    45 #include "../signal.h"
    46 
    47 int __posix_wifexited(int status) {
    48         return status != INT_MIN;
    49 }
    50 
    51 int __posix_wexitstatus(int status) {
    52         assert(__posix_wifexited(status));
    53         return status;
    54 }
    55 
    56 int __posix_wifsignaled(int status) {
    57         return status == INT_MIN;
    58 }
    59 
    60 int __posix_wtermsig(int status) {
    61         assert(__posix_wifsignaled(status));
    62         /* There is no way to distinguish reason
    63          * for unexpected termination at the moment.
    64          */
    65         return SIGABRT;
    66 }
    67 
    6841/**
    6942 *
     
    7346posix_pid_t posix_wait(int *stat_ptr)
    7447{
    75         /* HelenOS does not support this. */
    76         errno = ENOSYS;
    77         return (posix_pid_t) -1;
     48        // TODO: low priority, just a compile-time dependency of binutils
     49        not_implemented();
    7850}
    7951
     
    8759posix_pid_t posix_waitpid(posix_pid_t pid, int *stat_ptr, int options)
    8860{
    89         assert(stat_ptr != NULL);
    90         assert(options == 0 /* None of the options are supported. */);
    91        
    92         task_exit_t texit;
    93         int retval;
    94        
    95         int rc = task_wait((task_id_t) pid, &texit, &retval);
    96        
    97         if (rc < 0) {
    98                 /* Unable to retrieve status. */
    99                 errno = -rc;
    100                 return (posix_pid_t) -1;
    101         }
    102        
    103         if (texit == TASK_EXIT_NORMAL) {
    104                 // FIXME: relies on application not returning this value
    105                 assert(retval != INT_MIN);
    106                 *stat_ptr = retval;
    107         } else {
    108                 /* Reserve the lowest value for unexpected termination. */
    109                 *stat_ptr = INT_MIN;
    110         }
    111        
    112         return pid;
     61        // TODO: low priority, just a compile-time dependency of binutils
     62        not_implemented();
    11363}
    11464
Note: See TracChangeset for help on using the changeset viewer.