Print this page
3484 enhance and document tail follow support
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/cmd/tail/extern.h
+++ new/usr/src/cmd/tail/extern.h
1 1 /*
2 2 * Copyright (c) 1991, 1993
3 3 * The Regents of the University of California. All rights reserved.
4 4 *
5 5 * Redistribution and use in source and binary forms, with or without
6 6 * modification, are permitted provided that the following conditions
7 7 * are met:
8 8 * 1. Redistributions of source code must retain the above copyright
9 9 * notice, this list of conditions and the following disclaimer.
10 10 * 2. Redistributions in binary form must reproduce the above copyright
11 11 * notice, this list of conditions and the following disclaimer in the
12 12 * documentation and/or other materials provided with the distribution.
13 13 * 4. Neither the name of the University nor the names of its contributors
14 14 * may be used to endorse or promote products derived from this software
15 15 * without specific prior written permission.
16 16 *
17 17 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
↓ open down ↓ |
19 lines elided |
↑ open up ↑ |
20 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 27 * SUCH DAMAGE.
28 28 *
29 29 */
30 +/*
31 + * Copyright (c) 2013, Joyent, Inc. All Rights Reserved.
32 + */
30 33
31 34
35 +#ifndef EXTERN_H
36 +#define EXTERN_H
37 +
38 +#include <sys/types.h>
39 +#include <sys/stat.h>
40 +#include <port.h>
41 +
42 +
32 43 #define WR(p, size) do { \
33 44 if (write(STDOUT_FILENO, p, size) != (ssize_t)size) \
34 45 oerr(); \
35 46 } while (0)
36 47
37 48 #define TAILMAPLEN (4<<20)
38 49
39 50 struct mapinfo {
40 51 off_t mapoff;
41 52 off_t maxoff;
42 53 size_t maplen;
43 54 char *start;
44 55 int fd;
45 56 };
46 57
47 58 struct file_info {
48 59 FILE *fp;
49 60 char *file_name;
50 61 struct stat st;
62 + file_obj_t fobj;
51 63 };
52 64
53 65 typedef struct file_info file_info_t;
54 66
55 67 enum STYLE { NOTSET = 0, FBYTES, FLINES, RBYTES, RLINES, REVERSE };
56 68
57 69 void follow(file_info_t *, enum STYLE, off_t);
58 70 void forward(FILE *, const char *, enum STYLE, off_t, struct stat *);
59 71 void reverse(FILE *, const char *, enum STYLE, off_t, struct stat *);
60 72
61 73 int bytes(FILE *, const char *, off_t);
62 74 int lines(FILE *, const char *, off_t);
63 75
64 76 void ierr(const char *);
65 77 void oerr(void);
66 78 int mapprint(struct mapinfo *, off_t, off_t);
67 79 int maparound(struct mapinfo *, off_t);
68 80
69 81 extern int Fflag, fflag, qflag, rflag, rval, no_files;
82 +
83 +#endif /* EXTERN_H */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX