* Suck up system messages
register char *mp
, *omp
, *mstart
;
if (argc
>1 && argv
[1][0] == '-') {
of
= open("/usr/adm/msgbuf", 2);
read(of
, (char *)&omesg
, sizeof(omesg
));
nlist(argc
>2? argv
[2]:"/unix", nl
);
if ((mem
= open((argc
>1? argv
[1]: "/dev/mem"), 0)) < 0)
lseek(mem
, (long)nl
[0].n_value
, 0);
read(mem
, msgbuf
, MSGBUFS
);
lseek(mem
, (long)nl
[1].n_value
, 0);
read(mem
, (char *)&msgbufp
, sizeof(msgbufp
));
if (msgbufp
< (char *)nl
[0].n_value
|| msgbufp
>= (char *)nl
[0].n_value
+MSGBUFS
)
done("Namelist mismatch\n");
msgbufp
+= msgbuf
- (char *)nl
[0].n_value
;
mstart
= &msgbuf
[omesg
.omindex
];
omp
= &omesg
.omsgbuf
[msgbufp
-msgbuf
];
if (mp
== &msgbuf
[MSGBUFS
])
if (omp
== &omesg
.omsgbuf
[MSGBUFS
])
if (samef
&& mstart
== msgbufp
)
if (mp
== &msgbuf
[MSGBUFS
])
if (s
&& s
!=omesg
.omsgflg
&& sflg
==0) {
for (p
= msgbuf
; p
< &msgbuf
[MSGBUFS
]; )
omesg
.omindex
= msgbufp
- msgbuf
;
write(of
, (char *)&omesg
, sizeof(omesg
));
printf("\n%.12s\n", ctime(&tbuf
)+4);