/*
    AUTOMATICALLY GENERATED BY tspec 2.10
    API SUBSET: svid3:utmp.h (VERSION 2.6)
*/

#ifndef __TDF_SVID3_UTMP_H
#define __TDF_SVID3_UTMP_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma TenDRA declaration block api__svid3__utmp begin

#ifndef __TDF_SVID3__CONFIG
#pragma extend interface "../shared/svid3.api/config.h"
#endif /* __TDF_SVID3__CONFIG */
#if __SYSV_SOFTWARE_DEVELOPMENT
#ifndef __TDF_SVID3_SYS_TYPES_H
#pragma extend interface "../svid3.api/sys/types.h"
#endif /* __TDF_SVID3_SYS_TYPES_H */
#pragma token NAT __local_utmp_user_size # svid3.utmp.__local_utmp_user_size
#pragma token NAT __local_utmp_id_size # svid3.utmp.__local_utmp_id_size
#pragma token NAT __local_utmp_line_size # svid3.utmp.__local_utmp_line_size
/* This type is abstracted */
#if __STRICT_SYSV
typedef pid_t __local_utmp_pid_t;
#else /* __STRICT_SYSV */
#pragma token VARIETY __local_utmp_pid_t # svid3.utmp.__local_utmp_pid_t
#pragma token PROC (EXP rvalue : __local_utmp_pid_t : ) EXP rvalue : pid_t : __utmp_pid2pid # svid3.utmp.__utmp_pid2pid
#pragma token PROC (EXP rvalue : pid_t : ) EXP rvalue : __local_utmp_pid_t : __pid2utmp_pid # svid3.utmp.__pid2utmp_pid
#ifndef __BUILDING_LIBS
#pragma accept conversion __utmp_pid2pid
#pragma accept conversion __pid2utmp_pid
#endif /* __BUILDING_LIBS */
#endif /* __STRICT_SYSV */
#pragma token STRUCT TAG utmp # svid3.utmp.utmp
#pragma token MEMBER char [__local_utmp_user_size] : struct utmp : ut_user # svid3.utmp.utmp.ut_user
#pragma token MEMBER char [__local_utmp_id_size] : struct utmp : ut_id # svid3.utmp.utmp.ut_id
#pragma token MEMBER char [__local_utmp_line_size] : struct utmp : ut_line # svid3.utmp.utmp.ut_line
#pragma token MEMBER __local_utmp_pid_t : struct utmp : ut_pid # svid3.utmp.utmp.ut_pid
#pragma token MEMBER short : struct utmp : ut_type # svid3.utmp.utmp.ut_type
#pragma token EXP const : int : EMPTY # svid3.utmp.EMPTY
#pragma token EXP const : int : RUN_LVL # svid3.utmp.RUN_LVL
#pragma token EXP const : int : BOOT_TIME # svid3.utmp.BOOT_TIME
#pragma token EXP const : int : OLD_TIME # svid3.utmp.OLD_TIME
#pragma token EXP const : int : NEW_TIME # svid3.utmp.NEW_TIME
#pragma token EXP const : int : INIT_PROCESS # svid3.utmp.INIT_PROCESS
#pragma token EXP const : int : LOGIN_PROCESS # svid3.utmp.LOGIN_PROCESS
#pragma token EXP const : int : USER_PROCESS # svid3.utmp.USER_PROCESS
#pragma token EXP const : int : DEAD_PROCESS # svid3.utmp.DEAD_PROCESS
#pragma token EXP const : int : ACCOUNTING # svid3.utmp.ACCOUNTING
#pragma token FUNC struct utmp * (void) : getutent # svid3.utmp.getutent
#pragma token FUNC struct utmp * (const struct utmp *) : getutid # svid3.utmp.getutid
#pragma token FUNC struct utmp * (const struct utmp *) : getutline # svid3.utmp.getutline
#pragma token FUNC void (void) : setutent # svid3.utmp.setutent
#pragma token FUNC void (void) : endutent # svid3.utmp.endutent
/* Errors in book? */
#pragma token FUNC struct utmp * (const struct utmp *) : pututline # svid3.utmp.pututline
#pragma token FUNC int (const char *) : utmpname # svid3.utmp.utmpname
#endif /* __SYSV_SOFTWARE_DEVELOPMENT */

#if __SYSV_SOFTWARE_DEVELOPMENT
#pragma interface __local_utmp_user_size __local_utmp_id_size
#pragma interface __local_utmp_line_size
#if __STRICT_SYSV
#else /* __STRICT_SYSV */
#pragma interface __local_utmp_pid_t __utmp_pid2pid __pid2utmp_pid
#endif /* __STRICT_SYSV */
#pragma interface TAG utmp TAG utmp.ut_user TAG utmp.ut_id TAG utmp.ut_line
#pragma interface TAG utmp.ut_pid TAG utmp.ut_type EMPTY RUN_LVL BOOT_TIME
#pragma interface OLD_TIME NEW_TIME INIT_PROCESS LOGIN_PROCESS USER_PROCESS
#pragma interface DEAD_PROCESS ACCOUNTING getutent getutid getutline
#pragma interface setutent endutent pututline utmpname
#endif /* __SYSV_SOFTWARE_DEVELOPMENT */

#pragma TenDRA declaration block end

#ifdef __cplusplus
}
#endif

#endif /* __TDF_SVID3_UTMP_H */
