This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/6] Add INLINE_SYSCALL_RETURN/INLINE_SYSCALL_ERROR_RETURN


On Fri, Aug 14, 2015 at 12:16 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Aug 14, 2015 at 11:49 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> "H.J. Lu" <hjl.tools@gmail.com> writes:
>>
>>> But it still has INLINE_SYSCALL_ERROR_RETURN which hides return.
>>
>> This is something you need to fix.
>>
>
> About this one?
>

These are better names and descriptions:

/* Similar to INLINE_SYSCALL, but with return type.  It should only be
   used with function return.  */
#ifndef INLINE_SYSCALL_RETURN
#define INLINE_SYSCALL_RETURN(name, nr, type, args...) \
  INLINE_SYSCALL (name, nr, args)
#endif

/* Set error number and return value.  It should only be used with
   function return.  ERR is the negative error number returned from
   the majority of Linux kernels for which -ERR is no-op
   with INTERNAL_SYSCALL_ERRNO.   */
#ifndef INLINE_SYSCALL_ERROR_RETURN
#define INLINE_SYSCALL_ERROR_RETURN(err, type, value) \
  ({ \
    __set_errno (-err); \
    (type) (value); \
  })
#endif


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]