diff options
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/hurd.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/hurd/hurd.h b/hurd/hurd.h index ec07827..c089d4c 100644 --- a/hurd/hurd.h +++ b/hurd/hurd.h @@ -75,6 +75,35 @@ __hurd_fail (error_t err) errno = err; return -1; } + +_HURD_H_EXTERN_INLINE int +__hurd_fail_noerrno (error_t err) +{ + switch (err) + { + case EMACH_SEND_INVALID_DEST: + case EMIG_SERVER_DIED: + /* The server has disappeared! */ + err = EIEIO; + break; + + case KERN_NO_SPACE: + err = ENOMEM; + break; + + case KERN_INVALID_ARGUMENT: + err = EINVAL; + break; + + case 0: + return 0; + + default: + break; + } + + return -1; +} /* Basic ports and info, initialized by startup. */ |