RTEMS  5.1
extern-ls.h
1 /*-
2  * Copyright (c) 1989, 1993
3  * The Regents of the University of California. All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * Michael Fischbein.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution.
16  * 4. Neither the name of the University nor the names of its contributors
17  * may be used to endorse or promote products derived from this software
18  * without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30  * SUCH DAMAGE.
31  *
32  * from: @(#)ls.h 8.1 (Berkeley) 5/31/93
33  * $FreeBSD: src/bin/ls/ls.h,v 1.23 2008/04/04 03:57:46 grog Exp $
34  */
35 
36 #ifndef _EXTERN_LS_H_
37 #define _EXTERN_LS_H_
38 
39 #define NO_PRINT 1
40 //#define COLORLS 1
41 
42 #include <sys/cdefs.h>
43 #include <setjmp.h>
44 #include <rtems.h>
45 
46 #define major(d) rtems_filesystem_dev_major_t(d)
47 #define minor(d) rtems_filesystem_dev_minor_t(d)
48 
49 const char *user_from_uid(uid_t uid, int nouser);
50 
51 typedef struct {
52  int blocksize;
53  int termwidth;
54  int sortkey;
55  int rval;
56  int output;
57  time_t now;
58 
59  int f_accesstime;
60  int f_column;
61  int f_columnacross;
62  int f_flags;
63  int f_grouponly;
64  int f_humanize;
65  int f_inode;
66  int f_listdir;
67  int f_listdot;
68  int f_longform;
69  int f_nonprint;
70  int f_nosort;
71  int f_numericonly;
72  int f_octal;
73  int f_octal_escape;
74  int f_recursive;
75  int f_reversesort;
76  int f_sectime;
77  int f_singlecol;
78  int f_size;
79  int f_statustime;
80  int f_stream;
81  int f_type;
82  int f_typedir;
83  int f_whiteout;
84 
85  int exit_code;
86  jmp_buf exit_jmp;
88 
89 #define blocksize globals->blocksize
90 #define termwidth globals->termwidth
91 #define sortkey globals->sortkey
92 #define rval globals->rval
93 #define output globals->output
94 #define now globals->now
95 
96 #define f_accesstime globals->f_accesstime
97 #define f_column globals->f_column
98 #define f_columnacross globals->f_columnacross
99 #define f_flags globals->f_flags
100 #define f_grouponly globals->f_grouponly
101 #define f_humanize globals->f_humanize
102 #define f_inode globals->f_inode
103 #define f_listdir globals->f_listdir
104 #define f_listdot globals->f_listdot
105 #define f_longform globals->f_longform
106 #define f_nonprint globals->f_nonprint
107 #define f_nosort globals->f_nosort
108 #define f_numericonly globals->f_numericonly
109 #define f_octal globals->f_octal
110 #define f_octal_escape globals->f_octal_escape
111 #define f_recursive globals->f_recursive
112 #define f_reversesort globals->f_reversesort
113 #define f_sectime globals->f_sectime
114 #define f_singlecol globals->f_singlecol
115 #define f_size globals->f_size
116 #define f_statustime globals->f_statustime
117 #define f_stream globals->f_stream
118 #define f_type globals->f_type
119 #define f_typedir globals->f_typedir
120 #define f_whiteout globals->f_whiteout
121 
122 #define exit_jump &(globals->exit_jmp)
123 
124 void rtems_shell_ls_exit(rtems_shell_ls_globals* globals, int code);
125 
126 #define exit(ec) rtems_shell_ls_exit(globals, ec)
127 
128 
129 typedef struct {
130  FTSENT *list;
131  u_int64_t btotal;
132  u_int64_t stotal;
133  int entries;
134  int maxlen;
135  int s_block;
136  int s_flags;
137  int s_group;
138  int s_inode;
139  int s_nlink;
140  int s_size;
141  int s_user;
142  int s_major;
143  int s_minor;
144 } DISPLAY;
145 
146 typedef struct {
147  char *user;
148  char *group;
149  char *flags;
150  char data[1];
151 } NAMES;
152 
153 #define acccmp rtems_shell_ls_acccmp
154 #define revacccmp rtems_shell_ls_revacccmp
155 #define modcmp rtems_shell_ls_modcmp
156 #define revmodcmp rtems_shell_ls_revmodcmp
157 #define namecmp rtems_shell_ls_namecmp
158 #define revnamecmp rtems_shell_ls_revnamecmp
159 #define statcmp rtems_shell_ls_statcmp
160 #define revstatcmp rtems_shell_ls_revstatcmp
161 #define sizecmp rtems_shell_ls_sizecmp
162 #define revsizecmp rtems_shell_ls_revsizecmp
163 #define printescaped rtems_shell_ls_printescaped
164 #define printacol rtems_shell_ls_printacol
165 #define printcol rtems_shell_ls_printcol
166 #define printlong rtems_shell_ls_printlong
167 #define printscol rtems_shell_ls_printscol
168 #define printstream rtems_shell_ls_printstream
169 #define usage rtems_shell_ls_usage
170 
171 int acccmp(const FTSENT *, const FTSENT *);
172 int revacccmp(const FTSENT *, const FTSENT *);
173 int modcmp(const FTSENT *, const FTSENT *);
174 int revmodcmp(const FTSENT *, const FTSENT *);
175 int namecmp(const FTSENT *, const FTSENT *);
176 int revnamecmp(const FTSENT *, const FTSENT *);
177 int statcmp(const FTSENT *, const FTSENT *);
178 int revstatcmp(const FTSENT *, const FTSENT *);
179 int sizecmp(const FTSENT *, const FTSENT *);
180 int revsizecmp(const FTSENT *, const FTSENT *);
181 
182 int printescaped(rtems_shell_ls_globals* globals, const char *);
183 void printacol(rtems_shell_ls_globals* globals, DISPLAY *);
184 void printcol(rtems_shell_ls_globals* globals, DISPLAY *);
185 void printlong(rtems_shell_ls_globals* globals, DISPLAY *);
186 void printscol(rtems_shell_ls_globals* globals, DISPLAY *);
187 void printstream(rtems_shell_ls_globals* globals, DISPLAY *);
188 int safe_print(rtems_shell_ls_globals* globals, const char *);
189 void usage(rtems_shell_ls_globals* globals);
190 
191 void strmode(mode_t mode, char *p);
192 
193 #endif /* !_EXTERN_H_ */
Definition: extern-ls.h:51
unsigned p
Definition: tte.h:90
Definition: extern-ls.h:146
Definition: inftrees.h:24
Definition: fts.h:74
Definition: extern-ls.h:129