Merge branch 'vendor/TNFTP'
[dragonfly.git] / contrib / tnftp / progressbar.h
CommitLineData
20e59a13 1/* $NetBSD: progressbar.h,v 1.8 2009/04/12 10:18:52 lukem Exp $ */
eedc536d
PA
2
3/*-
20e59a13 4 * Copyright (c) 1996-2009 The NetBSD Foundation, Inc.
eedc536d
PA
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Luke Mewburn.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
eedc536d
PA
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 */
31
32#ifndef STANDALONE_PROGRESS
33#include <setjmp.h>
34#endif /* !STANDALONE_PROGRESS */
35
36#ifndef GLOBAL
37#define GLOBAL extern
38#endif
39
40
41#define STALLTIME 5 /* # of seconds of no xfer before "stalling" */
42
43typedef void (*sigfunc)(int);
44
45
46GLOBAL FILE *ttyout; /* stdout, or stderr if retrieving to stdout */
47
48GLOBAL int progress; /* display transfer progress bar */
49GLOBAL int ttywidth; /* width of tty */
50
51GLOBAL off_t bytes; /* current # of bytes read */
52GLOBAL off_t filesize; /* size of file being transferred */
53GLOBAL off_t restart_point; /* offset to restart transfer */
54GLOBAL char *prefix; /* Text written left of progress bar */
55
56
57#ifndef STANDALONE_PROGRESS
58GLOBAL int fromatty; /* input is from a terminal */
59GLOBAL int verbose; /* print messages coming back from server */
60GLOBAL int quit_time; /* maximum time to wait if stalled */
61
20e59a13 62GLOBAL const char *direction; /* direction transfer is occurring */
eedc536d
PA
63
64GLOBAL sigjmp_buf toplevel; /* non-local goto stuff for cmd scanner */
65#endif /* !STANDALONE_PROGRESS */
66
67int foregroundproc(void);
68void alarmtimer(int);
69void progressmeter(int);
70sigfunc xsignal(int, sigfunc);
71sigfunc xsignal_restart(int, sigfunc, int);
72
73#ifndef STANDALONE_PROGRESS
74void psummary(int);
75void ptransfer(int);
76#endif /* !STANDALONE_PROGRESS */
77
78#ifdef NO_LONG_LONG
79# define LLF "%ld"
80# define LLFP(x) "%" x "ld"
81# define LLT long
82# define ULLF "%lu"
83# define ULLFP(x) "%" x "lu"
84# define ULLT unsigned long
85#else
86# define LLF "%lld"
87# define LLFP(x) "%" x "lld"
88# define LLT long long
89# define ULLF "%llu"
90# define ULLFP(x) "%" x "llu"
91# define ULLT unsigned long long
92#endif