/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos72Q src/bos/usr/include/utmp.h 1.11.4.3 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1989,2019 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)87 1.11.4.3 src/bos/usr/include/utmp.h, libcadm, bos72Q, q2019_13A4 2/4/19 06:29:03 */ /* * COMPONENT_NAME: CMDOPER * * FUNCTIONS: UTMP_DATA_INIT * * ORIGINS: 27,71 * * (C) COPYRIGHT International Business Machines Corp. 1989,1994 * All Rights Reserved * Licensed Materials - Property of IBM * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* * (c) Copyright 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC. * ALL RIGHTS RESERVED */ #ifndef _H_UTMP #define _H_UTMP #ifdef __cplusplus extern "C" { #endif /* must be included. */ #ifndef _H_UTMPX #define UTMP_FILE "/etc/utmp" #define WTMP_FILE "/var/adm/wtmp" #define ILOG_FILE "/etc/security/failedlogin" #define ut_name ut_user #endif /* _H_UTMPX */ struct utmp { char ut_user[256] ; /* User login name */ char ut_id[14] ; /* /etc/inittab id */ char ut_line[64] ; /* device name (console, lnxx) */ pid_t ut_pid ; /* process id */ short ut_type ; /* type of entry */ time64_t ut_time ; /* time entry was made */ struct exit_status { short e_termination ; /* Process termination status */ short e_exit ; /* Process exit status */ } ut_exit ; /* The exit status of a process * marked as DEAD_PROCESS. */ char ut_host[256] ; /* host name */ int __dbl_word_pad; /* for double word alignment */ int __reservedA[2]; int __reservedV[6]; } ; /* Definitions for ut_type */ #define EMPTY 0 #define RUN_LVL 1 #define BOOT_TIME 2 #define OLD_TIME 3 #define NEW_TIME 4 #define INIT_PROCESS 5 /* Process spawned by "init" */ #define LOGIN_PROCESS 6 /* A "getty" process waiting for login */ #define USER_PROCESS 7 /* A user process */ #define DEAD_PROCESS 8 #define ACCOUNTING 9 #define UTMAXTYPE ACCOUNTING /* Largest legal value of ut_type */ /* Special strings or formats used in the "ut_line" field when */ /* accounting for something other than a process. */ /* No string for the ut_line field can be more than 63 chars + */ /* a NULL in length. */ #define RUNLVL_MSG "run-level %c" #define BOOT_MSG "system boot" #define OTIME_MSG "old time" #define NTIME_MSG "new time" #ifdef _THREAD_SAFE #ifndef _UTMPX_H #define utmp_data _utmp_data #endif /*_UTMPX_H*/ struct _utmp_data { int ut_fd; long loc_utmp; struct utmp ubuf; char *name; }; #define UTMP_DATA_INIT(__s) (__s.ut_fd=-1, __s.name=UTMP_FILE) #endif /* _THREAD_SAFE */ #ifdef _NO_PROTO extern void endutent(); extern struct utmp *getutent(); extern struct utmp *getutid(); extern struct utmp *getutline(); extern struct utmp *pututline(); extern void setutent(); extern int utmpname(); extern void updwtmp(); #ifdef _THREAD_SAFE extern void endutent_r(); extern int getutent_r(); extern int getutid_r(); extern int getutline_r(); extern int pututline_r(); extern void setutent_r(); /* See comments in stdlib.h on _AIX32_THREADS */ #if _AIX32_THREADS extern void utmpname_r(); #else /* POSIX 1003.4a Draft 7 prototype */ extern int utmpname_r(); #endif /* _AIX32_THREADS */ #endif /* _THREAD_SAFE */ #else /* _NO_PROTO */ extern void endutent(void); extern struct utmp *getutent(void); extern struct utmp *getutid(const struct utmp *); extern struct utmp *getutline(const struct utmp *); extern struct utmp *pututline(const struct utmp *); extern void setutent(void); extern int utmpname(char *); extern void updwtmp(const char *, const struct utmp *); #ifdef _THREAD_SAFE extern int getutent_r(struct utmp **utmp, struct _utmp_data *utmp_data); extern int getutid_r(const struct utmp *utent, struct utmp **utmp, struct _utmp_data *utmp_data); extern int getutline_r(const struct utmp *utent, struct utmp **utmp, struct _utmp_data *utmp_data); extern int pututline_r(const struct utmp *utent, struct _utmp_data *utmp_data); extern void setutent_r(struct _utmp_data *utmp_data); extern void endutent_r(struct _utmp_data *utmp_data); /* See comments in stdlib.h on _AIX32_THREADS */ #if _AIX32_THREADS extern void utmpname_r(char *newfile, struct _utmp_data *utmp_data); #else /* POSIX 1003.4a Draft 7 prototype */ extern int utmpname_r(char *newfile, struct _utmp_data *utmp_data); #endif /* _AIX32_THREADS */ #endif /* _THREAD_SAFE */ #endif /* _NO_PROTO */ #ifdef __cplusplus } #endif #endif /* _H_UTMP */