cvs commit: src/etc/etc.mips ttys
M. Warner Losh
imp at bsdimp.com
Mon May 5 14:10:02 UTC 2008
In message: <200805050949.27063.jhb at freebsd.org>
John Baldwin <jhb at FreeBSD.org> writes:
: On Monday 05 May 2008 04:07:22 am Poul-Henning Kamp wrote:
: > In message <481EB19B.3000201 at freebsd.org>, Colin Percival writes:
: > >Poul-Henning Kamp wrote:
: > >> In message <200805050535.m455ZmI1030493 at repoman.freebsd.org>, Warner
: > >> Losh write
: > >>
: > >> s:
: > >>> Added files:
: > >>> etc/etc.mips ttys
: > >>> Log:
: > >>> Mips ttys file. Copied from i386 version with removal of the vga
: > >>> entries.
: > >>
: > >> We should really replace this file with a script that generates it
: > >> from a set of sensible parameters at build-time.
: > >
: > >Yes please -- kmacy might have worked around this, but at one point this
: > >was the only non-kernel file which needed to be different for Xen builds.
: >
: > And for anyone looking at this, there is also a task to eliminate the
: > pty devices in this file, the reason why they are there has to do with
: > the introduction of the really weird notion of "remote logins" back in
: > the early 1980'ies, we really could do better.
:
: Err, I thought it was because utmp still uses the line index in /etc/ttys so
: ptys have to be listed in /etc/ttys to get an index. I haven't looked at
: utmpx, but it might be nice if we had a utmp format that 1) didn't limit
: usernames to 16 chars, and 2) stored the name of the tty rather than a dev_t.
: 2) is what I think has broken 'w -M /var/crash/vmcore.X' since 5.x.
/var/run/utmp stores the name. However, it does appear to use the
index in /etc/ttys to write the record into /var/run/utmp. typical
entries look like:
000002c0 74 74 79 70 30 00 00 00 69 6d 70 00 00 00 00 00 |ttyp0...imp.....|
000002d0 00 00 00 00 00 00 00 00 3a 30 2e 30 00 00 00 00 |........:0.0....|
000002e0 00 00 00 00 00 00 00 00 28 ec 14 48 |........(..H
Which matches the structures fairly well:
struct utmp {
char ut_line[UT_LINESIZE];
char ut_name[UT_NAMESIZE];
char ut_host[UT_HOSTSIZE];
int32_t ut_time;
};
Unfortunately, the #defines for the above are somewhat meager:
#define UT_NAMESIZE 16 /* see MAXLOGNAME in <sys/param.h> */
#define UT_LINESIZE 8
#define UT_HOSTSIZE 16
Warner
More information about the cvs-all
mailing list