extern.h revision 92922
11590Srgrimes/*-
21590Srgrimes * Copyright (c) 1991, 1993
31590Srgrimes *	The Regents of the University of California.  All rights reserved.
41590Srgrimes *
51590Srgrimes * Redistribution and use in source and binary forms, with or without
61590Srgrimes * modification, are permitted provided that the following conditions
71590Srgrimes * are met:
81590Srgrimes * 1. Redistributions of source code must retain the above copyright
91590Srgrimes *    notice, this list of conditions and the following disclaimer.
101590Srgrimes * 2. Redistributions in binary form must reproduce the above copyright
111590Srgrimes *    notice, this list of conditions and the following disclaimer in the
121590Srgrimes *    documentation and/or other materials provided with the distribution.
131590Srgrimes * 3. All advertising materials mentioning features or use of this software
141590Srgrimes *    must display the following acknowledgement:
151590Srgrimes *	This product includes software developed by the University of
161590Srgrimes *	California, Berkeley and its contributors.
171590Srgrimes * 4. Neither the name of the University nor the names of its contributors
181590Srgrimes *    may be used to endorse or promote products derived from this software
191590Srgrimes *    without specific prior written permission.
201590Srgrimes *
211590Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
221590Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
231590Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
241590Srgrimes * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
251590Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
261590Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
271590Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
281590Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
291590Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
301590Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
311590Srgrimes * SUCH DAMAGE.
321590Srgrimes *
331590Srgrimes *	@(#)extern.h	8.1 (Berkeley) 6/6/93
3474876Sdwmalone *
3574876Sdwmalone * $FreeBSD: head/usr.bin/tail/extern.h 92922 2002-03-22 01:42:45Z imp $
361590Srgrimes */
371590Srgrimes
3874876Sdwmalone#define	WR(p, size) do { \
3987712Smarkm	if (write(STDOUT_FILENO, p, size) != (ssize_t)size) \
4074876Sdwmalone		oerr(); \
4174876Sdwmalone	} while(0)
421590Srgrimes
4374876Sdwmalone#define TAILMAPLEN (4<<20)
4474876Sdwmalone
4574876Sdwmalonestruct mapinfo {
4674876Sdwmalone	off_t	mapoff;
4774876Sdwmalone	off_t	maxoff;
4874876Sdwmalone	size_t	maplen;
4974876Sdwmalone	char	*start;
5074876Sdwmalone	int	fd;
5174876Sdwmalone};
5274876Sdwmalone
531590Srgrimesenum STYLE { NOTSET = 0, FBYTES, FLINES, RBYTES, RLINES, REVERSE };
541590Srgrimes
5592922Simpvoid forward(FILE *, enum STYLE, off_t, struct stat *);
5692922Simpvoid reverse(FILE *, enum STYLE, off_t, struct stat *);
571590Srgrimes
5892922Simpint bytes(FILE *, off_t);
5992922Simpint lines(FILE *, off_t);
601590Srgrimes
6192922Simpvoid ierr(void);
6292922Simpvoid oerr(void);
6392922Simpint mapprint(struct mapinfo *, off_t, off_t);
6492922Simpint maparound(struct mapinfo *, off_t);
651590Srgrimes
6635081Speterextern int Fflag, fflag, rflag, rval;
6787712Smarkmextern const char *fname;
68