freebsd-dev/include
Ed Schouten a627ac61ab Implement <utmpx.h>.
The utmpx interface is the standardized interface of the user accounting
database. The standard only defines a subset of the functions that were
present in System V-like systems.

I'd like to highlight some of the traits my implementation has:

- The standard allows the on-disk format to be different than the
  in-memory representation (struct utmpx). Most operating systems don't
  do this, but we do. This allows us to keep our ABI more stable, while
  giving us the opportunity to modify the on-disk format. It also allows
  us to use a common file format across different architectures (i.e.
  byte ordering).

- Our implementation of pututxline() also updates wtmp and lastlog (now
  called utx.log and utx.lastlogin). This means the databases are more
  likely to be in sync.

- Care must be taken that our implementation discard any fields that are
  not applicable. For example, our DEAD_PROCESS records do not hold a
  TTY name. Just a time stamp, a record identifier and a process
  identifier. It also guarantees that strings (ut_host, ut_line and
  ut_user) are null terminated. ut_id is obviously not null terminated,
  because it's not a string.

- The API and its behaviour should be conformant to POSIX, but there may
  be things that slightly deviate from the standard. This implementation
  uses separate file descriptors when writing to the log files. It also
  doesn't use getutxid() to search for a field to overwrite. It uses an
  allocation strategy similar to getutxid(), but prevents DEAD_PROCESS
  records from accumulating.

Make sure libulog doesn't overwrite the manpages shipped with our C
library. Also keep the symbol list in Symbol.map sorted.

I'll bump __FreeBSD_version later this evening. I first want to convert
everything to <utmpx.h> and get rid of <utmp.h>.
2010-01-13 17:29:55 +00:00
..
arpa Namespace: inet_ntoa_r() is a BSD extension. 2009-03-14 19:00:16 +00:00
gssapi Add an implementation of the RPCSEC_GSS authentication protocol for RPC. This 2008-08-06 14:02:05 +00:00
protocols Expand dump to allow MAX_INT dump levels. 2008-05-24 05:20:46 +00:00
rpc Re-do r192913 in less intrusive way. Only do IP_RECVDSTADDR/IP_SENDSRCADDR 2009-06-18 17:10:43 +00:00
rpcsvc Fix ypwhich -m. This should be MFC'ed back at least as far as RELENG_5. 2005-12-06 02:01:06 +00:00
_ctype.h Back out not human readable optimization in prev. commit which shown 2007-11-01 03:18:02 +00:00
a.out.h Adjust the system endian and a.out headers to be more MI and cross-building 2004-06-22 17:05:39 +00:00
ar.h Attempt to improve application portability by marking `struct ar_hdr' 2006-11-13 04:28:29 +00:00
assert.h Only protect the prototypes with #ifndef _ASSERT_H_, the standards 2007-12-01 19:28:13 +00:00
bitstring.h Finish the repocopy of bitstring.h to sys so it can be used 2003-06-13 19:40:13 +00:00
complex.h Implement cproj{,f,l}(). 2008-08-07 15:07:48 +00:00
cpio.h
ctype.h Don't prototype _tolower() and _toupper(). They're not supposed to be 2009-03-14 19:04:24 +00:00
db.h Hide dbopen() in the POSIX namespace, and use standard type names 2009-03-14 20:05:27 +00:00
dirent.h Move scandir(3) and alphasort(3) into XSI namespace. 2010-01-05 20:17:13 +00:00
dlfcn.h Implement RTLD_NOLOAD flag for dlopen(3). 2009-07-17 19:45:42 +00:00
elf-hints.h
elf.h Remove some OpenSolaris compatibility stuff now that we're doing it a 2007-11-28 22:09:12 +00:00
err.h
fmtmsg.h
fnmatch.h Now I understand what Bruce was getting at - -1 can be parsed as two 2003-12-18 10:41:39 +00:00
fstab.h
fts.h Our fts(3) API, as inherited from 4.4BSD, suffers from integer 2008-01-26 17:09:40 +00:00
ftw.h Replace the current implementations of ftw() and nftw() with the OpenBSD 2004-08-24 13:00:55 +00:00
getopt.h Add getopt_long_only() 2004-02-24 08:09:20 +00:00
glob.h Add size_t declaration 2006-05-22 05:57:39 +00:00
grp.h Namespace: setgrent() is an XSI extension. 2009-03-14 19:05:18 +00:00
gssapi.h Add a new extensible GSS-API layer which can support GSS-API plugins, 2005-12-29 14:40:22 +00:00
hesiod.h
histedit.h Use tabs after #define. 2007-06-11 06:25:19 +00:00
ieeefp.h
ifaddrs.h Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
inttypes.h
iso646.h
kenv.h Fix prototype to match the code and documentation. 2005-11-24 07:20:26 +00:00
langinfo.h Modified locale(1) to be able to show the altmon_X fields and the [cxX]_fmt's. 2009-10-05 07:11:19 +00:00
libgen.h Add basename_r(3) to complement basename(3). basename_r(3) which accepts 2009-10-06 14:05:57 +00:00
limits.h
link.h
locale.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
Makefile Implement <utmpx.h>. 2010-01-13 17:29:55 +00:00
malloc_np.h Add __{BEGIN,END}_DECLS macros, so that function prototypes remain 2006-06-30 20:57:41 +00:00
malloc.h
memory.h
monetary.h
mpool.h Minor changes from Berkeley DB 1.86 and further improvements from OpenBSD. 2009-03-28 07:31:02 +00:00
mqueue.h Add function __mq_oshandle() to get file handle of a mqueue. 2007-01-06 11:30:04 +00:00
ndbm.h Namespace: dbm_forder() and dbm_dirfno() are BSD extensions. 2009-03-14 19:02:28 +00:00
netconfig.h
netdb.h Hide numerous BSD extensions in the POSIX namespace. 2009-03-14 20:04:28 +00:00
nl_types.h Analogous to __printflike and __scanflike, add the macro __format_arg which 2006-01-26 20:53:40 +00:00
nlist.h
nss.h It was reported that when using nss_ldap, getgrent(3) would behave 2004-01-09 13:43:49 +00:00
nsswitch.h Implementing 'fallback' nsswitch source. 'fallback' source is used 2007-12-12 10:08:03 +00:00
paths.h Remove the current directory from _PATH_STDPATH. 2009-12-30 15:44:36 +00:00
printf.h Add nested include of <wchar.h> 2006-03-02 10:01:52 +00:00
proc_service.h Introduce a new proc service routine ps_linfo() to get LWP info. 2006-02-07 02:29:55 +00:00
pthread_np.h Add cpu affinity APIs to get and set thread's cpu affinity mask, the 2008-03-03 08:28:13 +00:00
pthread.h Fix the visibility of several prototypes. Also move pthread_kill() and 2009-03-14 20:10:14 +00:00
pwd.h Namespace: endpwent, getpwent, and setpwent are XSI extensions. 2009-03-14 19:13:01 +00:00
ranlib.h
readpassphrase.h Define the size_t type since readpassphrase(3) requires it in its 2008-05-08 23:57:29 +00:00
regex.h Add a new error code, REG_ILLSEQ, to indicate that a regular expression 2004-07-12 06:07:26 +00:00
regexp.h
res_update.h Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
resolv.h Merge the resolver part of BIND 9.4.3 into HEAD. 2008-12-14 19:39:53 +00:00
runetype.h Prefix the names of members of _RuneLocale and its sub-structures 2004-06-23 07:01:44 +00:00
search.h
semaphore.h Use umtx to implement process sharable semaphore, to make this work, 2010-01-05 02:37:59 +00:00
setjmp.h Namespace: _setjmp() and _longjmp() are XSI extensions. 2009-03-14 19:01:26 +00:00
signal.h Don't name parameters, for consistency with the rest of the file, and because 2009-12-22 22:15:52 +00:00
spawn.h Remove __restrict keywords from array arguments to make GCC's -std=c99 work. 2008-06-19 07:30:32 +00:00
stab.h
stdbool.h The Intel C/C++ compiler doesn't require a typedef for _Bool when compiling 2005-02-19 13:47:33 +00:00
stddef.h Change the definition of NULL on ia64 (for LP64 compilations) from 2003-12-07 21:10:06 +00:00
stdio.h Merge fmtcheck() prototype change. 2009-06-23 23:53:35 +00:00
stdlib.h Namespace: abort2() is a BSD extension. 2009-03-14 19:13:30 +00:00
string.h Namespace: memccpy() and memchr() are XSI, and memrchr() is a BSD extension. 2009-03-14 19:03:34 +00:00
stringlist.h
strings.h This should read #if __BSD_VISIBLE instead of #ifdef __BSD_VISIBLE. 2010-01-04 18:46:54 +00:00
sysexits.h
tar.h
termios.h Decompose <sys/termios.h>. 2009-11-28 23:50:48 +00:00
tgmath.h Properly parenthesize the __tg_is_complex() macro by moving a closing 2007-02-02 18:30:23 +00:00
time.h Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpu 2008-03-22 09:59:20 +00:00
timeconv.h
timers.h
ttyent.h
ulimit.h
unistd.h There is an optimization in chmod(1), that makes it not to call chmod(2) 2009-07-08 15:23:18 +00:00
utime.h
utmp.h Add a comment to utmp.h about the sizes of UT_HOSTSIZE and UT_LINESIZE. 2008-11-16 14:43:33 +00:00
utmpx.h Implement <utmpx.h>. 2010-01-13 17:29:55 +00:00
uuid.h Add missing prototypes for uuid_enc,dec_le,be() functions. 2008-09-15 23:47:19 +00:00
varargs.h Add a new machine independent varargs.h and use it as a central place 2003-09-01 03:28:25 +00:00
vis.h Add a new flag to vis(3): VIS_GLOB which encodes the glob(3) magic 2003-10-30 10:40:49 +00:00
wchar.h Put the restrict qualifiers in the right place in the wcp[n]cpy prototypes. 2009-03-04 15:45:34 +00:00
wctype.h Back out iswascii change from prev. commit, iswascii was right, 2007-10-14 10:23:54 +00:00
wordexp.h Fix typo: WRDE_DOOFS -> WRDE_DOOFFS. 2004-06-30 13:55:08 +00:00