blob: 78eb693d106f85fa8f71964da675349a236e4ff0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
/*
Copyright (C) 2006 Renaissance Technologies Corp.
main developer: HP Wei <hp@rentec.com>
Copyright (C) 2005 Renaissance Technologies Corp.
Copyright (C) 2001 Renaissance Technologies Corp.
main developer: HP Wei <hp@rentec.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING.
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __main_h
#define __main_h
#include <time.h>
#include <utime.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h> /* sockaddr_in{} and other Internet defns */
#include <arpa/inet.h> /* inet(3) functions */
#include <errno.h>
#include <fcntl.h> /* for nonblocking */
#include <sys/ioctl.h>
#include <netdb.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h> /* for S_xxx file mode constants */
#include <sys/uio.h> /* for iovec{} and readv/writev */
#include <unistd.h>
#include <sys/wait.h>
#include <sys/time.h> /* timeval{} for select() */
#define VERSION "3.1.0"
/* logic values */
#define FALSE 0
#define TRUE 1
#define FAIL (FALSE)
#define SUCCESS (TRUE)
#define GOOD_EXIT 0
#define BAD_EXIT -1
/* Ports and addresses */
#define PORT 7900 /* for multicast */
#define FLOW_PORT (PORT-1) /* for flow-control */
#define MCAST_ADDR "239.255.67.200"
#define MCAST_TTL 1
#define MCAST_LOOP FALSE
#define MCAST_IF NULL
#define REMOTE_SHELL "rsh"
#define NO_FEEDBACK_COUNT_MAX 5
#define USEC_TO_IDLE 1000000
/* Speed stuff */
#define FAST 100 /* usec */
#define DT_PERPAGE 8000 /* usec time interval between pages */
#define FACTOR 50
/* time for the master to wait for the acknowledgement */
#define ACK_WAIT_PERIOD 1 /* secs (from time()); */
#define ACK_WAIT_TIMES 60 /* wait for this many periods */
/* complaints */
#define TOO_FAST 100
#define SEND_AGAIN 200
#define START_OK 300
#define MISSING_PAGE 500
#define LAST_MISSING 600
#define EOF_OK 700
#define PAGE_RECV 800
#define FLOW_BUFFSIZE (2 * sizeof(int))
#define PAGE_SIZE 64512 /* max page_size allowed */
#define HEAD_SIZE (3 * sizeof(int))
#define PAGE_BUFFSIZE (PAGE_SIZE + HEAD_SIZE)
#define TOTAL_REC_PAGE 20 /* 31 20 */
/* Modes */
#define TIMED_OUT 0
#define TEST 1
#define SENDING_DATA 2
#define RESENDING_DATA 3
#define START_CMD 4
#define EOF_CMD 5
#define ALL_DONE_CMD 6
#define NULL_CMD 7
/* machine status */
#define MACHINE_OK '\1'
#define NOT_READY '\0'
/* PAGE STATUS */
#define MISSING '\0'
#define RECEIVED '\1'
/* MACHINE STATE */
#define IDLE_STATE 0
#define GET_DATA_STATE 1
#define DATA_READY_STATE 2
#define MAX_PAGE_SIZE 64512
int verbose;
#include "rttproto.h"
#endif
|