freebsd-dev/lib/libc
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
..
amd64 Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00
arm Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
compat-43 Implement sighold, sigignore, sigpause, sigrelse, sigset functions 2009-11-26 13:49:37 +00:00
db Consider flag == 0 as the same of flag == R_NEXT. This change will restore 2009-08-24 23:44:07 +00:00
gdtoa Unbreak the build for arm and powerpc. 2008-04-12 14:53:52 +00:00
gen Implement <utmpx.h>. 2010-01-13 17:29:55 +00:00
gmon Fix many "function declaration isn't a prototype" warnings in libc. 2009-12-05 19:31:38 +00:00
i386 Remove hand-written labs/abs implementations. GCC is smart enough. 2009-06-23 09:04:59 +00:00
ia64 Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
include Use umtx to implement process sharable semaphore, to make this work, 2010-01-05 02:37:59 +00:00
inet Merge the resolver part of BIND 9.4.3 into HEAD. 2008-12-14 19:39:53 +00:00
isc Merge BIND 9.4.1 into main chunk. 2007-06-03 17:20:27 +00:00
locale Fix grammar. 2009-11-16 14:33:31 +00:00
mips Merge r195030 from project/mips to head by hand 2010-01-09 00:01:35 +00:00
nameser This commit was generated by cvs2svn to compensate for changes in r174223, 2007-12-03 15:07:58 +00:00
net Miscellaneous mdoc, spelling and inconsistency fixes. 2010-01-12 21:45:03 +00:00
nls - Update the Spanish NLS catalog 2009-12-03 19:27:12 +00:00
posix1e Don't forget to clean up the file copied from the kernel sources. 2010-01-02 20:27:14 +00:00
powerpc Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00
quad Fix a typo that prevented the quad symbols from being exported 2007-07-06 13:42:24 +00:00
regex Fix an off-by-one error in the marking of the O_CH operator 2009-09-16 06:32:23 +00:00
resolv Add an option to enforce strict RFC 1034 compliance. 2009-05-29 07:34:54 +00:00
rpc Use the correct types to store uids and gids in the credential cache. 2010-01-09 23:36:51 +00:00
softfloat Reflect license change from NetBSD. 2009-03-10 21:13:26 +00:00
sparc64 Remove unneeded stdlib directories. 2009-06-23 14:11:41 +00:00
stdio Give a less silly response to a silly request. 2010-01-10 14:30:30 +00:00
stdlib Simplify arena_run_reg_dalloc(), and remove a bug that was due to incorrect 2009-12-10 02:51:40 +00:00
stdtime Use _pthread_once() rather than _once() for localtime() and gmtime(). These 2010-01-06 20:43:40 +00:00
string Add a missing word to a sentence in the return values section. 2009-12-04 09:20:20 +00:00
sys Miscellaneous mdoc, spelling and inconsistency fixes. 2010-01-12 21:45:03 +00:00
uuid Move uuid_enc_le, uuid_dec_le, uuid_enc_be and uuid_dec_be symbols 2008-09-19 15:52:56 +00:00
xdr Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
yp Eliminate more dead stores. 2009-11-25 04:45:45 +00:00
Makefile Merge r195030 from project/mips to head by hand 2010-01-09 00:01:35 +00:00
Versions.def Bump our namespace version for 9.0. 2009-09-13 13:15:36 +00:00