/* * internal helper for utmp and utmpx handling * * Copyright (C) 2015 by Bernhard Reutner-Fischer * * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ #ifndef __INTERNAL_UTMP_H #define __INTERNAL_UTMP_H #include <utmpx.h> #include <utmp.h> /* Note: _PATH_UTMPX == _PATH_UTMP */ #if (defined __UCLIBC_HAS_UTMPX__ && defined __UCLIBC_HAS_UTMP__) \ || !defined __UCLIBC_HAS_UTMP__ /* implement the X and alias the non-X */ # define __set_unlocked __setutxent_unlocked # define set setutxent # define __get_unlocked __getutxent_unlocked # define get getutxent # define end endutxent # define __getid_unlocked __getutxid_unlocked # define getid getutxid # define getline getutxline # define putline pututxline # define name utmpxname # define updw updwtmpx # define UT utmpx # ifndef __DEFAULT_PATH_UTMP # define __DEFAULT_PATH_UTMP _PATH_UTMPX # endif # if defined __UCLIBC_HAS_UTMP__ # define other(n,a) strong_alias_untyped(n,a) # else # define other(n,a) /* nothing */ # endif #elif defined __UCLIBC_HAS_UTMP__ # define __set_unlocked __setutent_unlocked # define set setutent # define __get_unlocked __getutent_unlocked # define get getutent # define end endutent # define __getid_unlocked __getutid_unlocked # define getid getutid # define getline getutline # define putline pututline # define name utmpname # define updw updwtmp # define UT utmp # ifndef __DEFAULT_PATH_UTMP # define __DEFAULT_PATH_UTMP _PATH_UTMP # endif # define other(n,a) /* nothing */ #else #error You are supposed to either have UTMP or UTMPX or both here #endif /* not used in libc_hidden_proto(setutxent) */ /* not used in libc_hidden_proto(endutxent) */ /* not used in libc_hidden_proto(getutxent) */ /* not used in libc_hidden_proto(getutxid) */ /* not used in libc_hidden_proto(getutxline) */ /* not used in libc_hidden_proto(pututxline) */ /* not used in libc_hidden_proto(utmpxname) */ /* not used in libc_hidden_proto(updwtmpx) */ /* not used in libc_hidden_proto(setutent) */ /* not used in libc_hidden_proto(endutent) */ /* not used in libc_hidden_proto(getutent) */ /* not used in libc_hidden_proto(getutid) */ /* not used in libc_hidden_proto(getutline) */ /* not used in libc_hidden_proto(pututline) */ /* not used in libc_hidden_proto(utmpname) */ /* not used in libc_hidden_proto(updwtmp) */ #ifdef IS_IN_libutil # if (defined __UCLIBC_HAS_UTMPX__ && defined __UCLIBC_HAS_UTMP__) \ || !defined __UCLIBC_HAS_UTMP__ /* monkey-patch to use the POSIX interface */ # define setutent setutxent # define getutline getutxline # define pututline pututxline # define endutent endutxent # define updwtmp updwtmpx # endif #endif /* IS_IN_libutil */ #endif /* __INTERNAL_UTMP_H */