From 7ae8399e43449d4cfeaf76d6497ff04888df1a99 Mon Sep 17 00:00:00 2001 From: Olaf Barthel Date: Thu, 16 Sep 2004 08:45:03 +0000 Subject: [PATCH] - Fixed the broken umask() function definition for GCC 68k and SAS/C: it does have a return value... git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14727 87f5fb63-7c3d-0410-a384-fd976d0f7a62 --- library/usergroup_headers.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/library/usergroup_headers.h b/library/usergroup_headers.h index 104ce85..f54bc38 100644 --- a/library/usergroup_headers.h +++ b/library/usergroup_headers.h @@ -1,5 +1,5 @@ /* - * $Id: usergroup_headers.h,v 1.1.1.1 2004-07-26 16:32:38 obarthel Exp $ + * $Id: usergroup_headers.h,v 1.2 2004-09-16 08:45:03 obarthel Exp $ * * :ts=4 * @@ -519,14 +519,18 @@ extern int __root_egid; #define __umask(mask) ({ \ ULONG _umask_mask = (mask); \ - { \ + ULONG _umask__re = \ + ({ \ register struct Library * const __umask__bn __asm("a6") = (struct Library *) (__UserGroupBase);\ + register ULONG __umask__re __asm("d0"); \ register ULONG __umask_mask __asm("d0") = (_umask_mask); \ __asm volatile ("jsr a6@(-192:W)" \ - : \ - : "r"(__umask__bn), "r"(__umask_mask) \ - : "d0", "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \ - } \ + : "=r"(__umask__re) \ + : "r"(__umask__bn), "r"(__umask_mask) \ + : "d1", "a0", "a1", "fp0", "fp1", "cc", "memory"); \ + __umask__re; \ + }); \ + _umask__re; \ }) #define __getumask() ({ \ @@ -718,7 +722,7 @@ VOID __endgrent(VOID); UBYTE *__crypt(UBYTE *key,UBYTE *set); UBYTE *__ug_GetSalt(struct passwd *user,UBYTE *buf,ULONG size); UBYTE *__getpass(UBYTE *prompt); -VOID __umask(ULONG mask); +UWORD __umask(ULONG mask); UWORD __getumask(VOID); LONG __setsid(VOID); LONG __getpgrp(VOID);