xref: /csrg-svn/sys/netiso/tp_sizes.c (revision 36411)
1*36411Ssklower /***********************************************************
2*36411Ssklower 		Copyright IBM Corporation 1987
3*36411Ssklower 
4*36411Ssklower                       All Rights Reserved
5*36411Ssklower 
6*36411Ssklower Permission to use, copy, modify, and distribute this software and its
7*36411Ssklower documentation for any purpose and without fee is hereby granted,
8*36411Ssklower provided that the above copyright notice appear in all copies and that
9*36411Ssklower both that copyright notice and this permission notice appear in
10*36411Ssklower supporting documentation, and that the name of IBM not be
11*36411Ssklower used in advertising or publicity pertaining to distribution of the
12*36411Ssklower software without specific, written prior permission.
13*36411Ssklower 
14*36411Ssklower IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15*36411Ssklower ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16*36411Ssklower IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17*36411Ssklower ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18*36411Ssklower WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19*36411Ssklower ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20*36411Ssklower SOFTWARE.
21*36411Ssklower 
22*36411Ssklower ******************************************************************/
23*36411Ssklower 
24*36411Ssklower /*
25*36411Ssklower  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
26*36411Ssklower  */
27*36411Ssklower 
28*36411Ssklower #define KERNEL
29*36411Ssklower #define MERGED
30*36411Ssklower #define IBMRTPC
31*36411Ssklower #define CLNPECHO
32*36411Ssklower #define TP_PERF_MEAS
33*36411Ssklower #define CONS
34*36411Ssklower #define TPPT
35*36411Ssklower #define ARGO_TP
36*36411Ssklower #define ARGO_DEBUG
37*36411Ssklower #define ISO
38*36411Ssklower #define RDB
39*36411Ssklower #define SHOW_LOAD
40*36411Ssklower #define DEBUG
41*36411Ssklower #define INET
42*36411Ssklower #define MAXUSERS 32
43*36411Ssklower #define DST 1
44*36411Ssklower #define TIMEZONE 360
45*36411Ssklower 
46*36411Ssklower /*
47*36411Ssklower  * ARGO TP
48*36411Ssklower  *
49*36411Ssklower  * $Header: tp_sizes.c,v 5.1 88/10/12 12:21:03 root Exp $
50*36411Ssklower  * $Source: /usr/argo/sys/netiso/RCS/tp_sizes.c,v $
51*36411Ssklower  *
52*36411Ssklower  *
53*36411Ssklower  * This is the initialization and cleanup stuff -
54*36411Ssklower  * for the tp machine in general as well as  for the individual pcbs.
55*36411Ssklower  * tp_init() is called at system startup.  tp_attach() and tp_getref() are
56*36411Ssklower  * called when a socket is created.  tp_detach() and tp_freeref()
57*36411Ssklower  * are called during the closing stage and/or when the reference timer
58*36411Ssklower  * goes off.
59*36411Ssklower  * tp_soisdisconnecting() and tp_soisdisconnected() are tp-specific
60*36411Ssklower  * versions of soisconnect*
61*36411Ssklower  * and are called (obviously) during the closing phase.
62*36411Ssklower  *
63*36411Ssklower  */
64*36411Ssklower 
65*36411Ssklower #ifndef lint
66*36411Ssklower static char *rcsid = "$Header: tp_sizes.c,v 5.1 88/10/12 12:21:03 root Exp $";
67*36411Ssklower #endif lint
68*36411Ssklower 
69*36411Ssklower #include "argoxtwentyfive.h"
70*36411Ssklower #include "types.h"
71*36411Ssklower #include "param.h"
72*36411Ssklower #include "mbuf.h"
73*36411Ssklower #include "socket.h"
74*36411Ssklower #include "socketvar.h"
75*36411Ssklower #include "protosw.h"
76*36411Ssklower #include "errno.h"
77*36411Ssklower #include "time.h"
78*36411Ssklower #include "../netiso/tp_param.h"
79*36411Ssklower #include "../netiso/tp_timer.h"
80*36411Ssklower #include "../netiso/tp_ip.h"
81*36411Ssklower #include "../netiso/tp_stat.h"
82*36411Ssklower #include "../netiso/tp_pcb.h"
83*36411Ssklower #include "../netiso/tp_tpdu.h"
84*36411Ssklower #include "../netiso/tp_trace.h"
85*36411Ssklower #include "../netiso/tp_meas.h"
86*36411Ssklower #include "../netiso/tp_seq.h"
87*36411Ssklower #include "../netiso/tp_clnp.h"
88*36411Ssklower 
89*36411Ssklower #include "../netiso/iso_errno.h"
90*36411Ssklower #include "../netiso/cons.h"
91*36411Ssklower #include "../netiso/cons_pcb.h"
92*36411Ssklower 
93*36411Ssklower main()
94*36411Ssklower {
95*36411Ssklower 	printf( "TP struct sizes:\n");
96*36411Ssklower 	printf( "tpcb 0x%x %d\n", sizeof(struct tp_pcb), sizeof(struct tp_pcb));
97*36411Ssklower 	printf( "aux 0x%x %d\n",
98*36411Ssklower 		sizeof(struct tp_pcb_aux), sizeof(struct tp_pcb_aux));
99*36411Ssklower 	printf( "ref 0x%x %d\n", sizeof(struct tp_ref), sizeof(struct tp_ref));
100*36411Ssklower 	printf( "tp_stat  0x%x %d\n",
101*36411Ssklower 		sizeof(struct tp_stat), sizeof(struct tp_stat));
102*36411Ssklower 	printf( "tp_param  0x%x %d\n",
103*36411Ssklower 		sizeof(struct tp_param), sizeof(struct tp_param));
104*36411Ssklower 	printf( "tp_conn_param  0x%x %d\n",
105*36411Ssklower 		sizeof(struct tp_conn_param), sizeof(struct tp_conn_param));
106*36411Ssklower 	printf( "tp_rtc  0x%x %d\n",
107*36411Ssklower 		sizeof(struct tp_rtc), sizeof(struct tp_rtc));
108*36411Ssklower 	printf( "nl_protosw  0x%x %d\n",
109*36411Ssklower 		sizeof(struct nl_protosw), sizeof(struct nl_protosw));
110*36411Ssklower 
111*36411Ssklower #ifdef TP_PERF_MEAS
112*36411Ssklower 		printf( "\tpmeas 0x%x %d\n", sizeof(struct tp_pmeas),
113*36411Ssklower 			sizeof(struct tp_pmeas));
114*36411Ssklower #else
115*36411Ssklower 		printf("perf meas NOT configured\n");
116*36411Ssklower #endif TP_PERF_MEAS
117*36411Ssklower 
118*36411Ssklower 	printf( "ISO struct sizes:\n");
119*36411Ssklower 	printf( "socket  0x%x %d\n",
120*36411Ssklower 		sizeof(struct socket), sizeof(struct socket));
121*36411Ssklower 	printf( "\t offset of so_timeo 0x%x %d\n",
122*36411Ssklower 		_offsetof( struct socket, so_timeo ),
123*36411Ssklower 		_offsetof( struct socket, so_timeo ));
124*36411Ssklower 	printf( "\t offset of so_rcv 0x%x %d\n",
125*36411Ssklower 		_offsetof(  struct socket, so_rcv ),
126*36411Ssklower 		_offsetof(  struct socket, so_rcv ));
127*36411Ssklower 	printf( "\t offset of so_snd 0x%x %d\n",
128*36411Ssklower 		_offsetof(  struct socket, so_snd ),
129*36411Ssklower 		_offsetof( struct socket, so_snd ));
130*36411Ssklower 	printf( "\t offset of sb_flags in sockbuf 0x%x %d\n",
131*36411Ssklower 		_offsetof( struct sockbuf, sb_flags ),
132*36411Ssklower 		_offsetof( struct sockbuf, sb_flags ));
133*36411Ssklower 	printf( "\t offset of sb_cc in sockbuf 0x%x %d\n",
134*36411Ssklower 		_offsetof( struct sockbuf, sb_cc ),
135*36411Ssklower 		_offsetof( struct sockbuf, sb_cc ));
136*36411Ssklower 	printf( "\t offset of so_qlen in sockbuf 0x%x %d\n",
137*36411Ssklower 		_offsetof( struct socket, so_qlen ),
138*36411Ssklower 		_offsetof( struct socket, so_qlen ));
139*36411Ssklower 	printf( "\t offset of so_error in sockbuf 0x%x %d\n",
140*36411Ssklower 		_offsetof( struct socket, so_error ),
141*36411Ssklower 		_offsetof( struct socket, so_error ));
142*36411Ssklower 	printf( "\t offset of so_state in sockbuf 0x%x %d\n",
143*36411Ssklower 		_offsetof( struct socket, so_state ),
144*36411Ssklower 		_offsetof( struct socket, so_state ));
145*36411Ssklower 
146*36411Ssklower 	printf( "SIZE OF isopcb  0x%x %d\n",
147*36411Ssklower 		sizeof(struct isopcb), sizeof(struct isopcb));
148*36411Ssklower 	printf( "SIZE OF cons_pcb  0x%x %d\n",
149*36411Ssklower 		sizeof(struct cons_pcb), sizeof(struct cons_pcb));
150*36411Ssklower 	printf( "\t offset of co_state in cons_pcb 0x%x %d\n",
151*36411Ssklower 		_offsetof( struct cons_pcb, co_state ),
152*36411Ssklower 		_offsetof( struct cons_pcb, co_state ));
153*36411Ssklower 
154*36411Ssklower #include "../h/types.h"
155*36411Ssklower #include "../h/ioctl.h"
156*36411Ssklower #include "../h/tty.h"
157*36411Ssklower 	printf( "SIZE OF tty  0x%x %d\n",
158*36411Ssklower 		sizeof(struct tty), sizeof(struct tty));
159*36411Ssklower 	printf( "\t offset of t_outq in tty 0x%x %d\n",
160*36411Ssklower 		_offsetof( struct tty, t_outq ),
161*36411Ssklower 		_offsetof( struct tty, t_outq ));
162*36411Ssklower 	printf( "\t offset of t_canq in tty 0 0\n");
163*36411Ssklower 	printf( "\t offset of t_rawq in tty 0 0\n");
164*36411Ssklower 	printf( "SIZE OF clist  0x%x %d\n",
165*36411Ssklower 		sizeof(struct clist), sizeof(struct clist));
166*36411Ssklower 	printf( "\t offset of c_cf in clist 0x%x %d\n",
167*36411Ssklower 		_offsetof( struct clist, c_cf ),
168*36411Ssklower 		_offsetof( struct clist, c_cf ));
169*36411Ssklower 
170*36411Ssklower 	{
171*36411Ssklower 		unsigned x;
172*36411Ssklower 
173*36411Ssklower 		if( x<0 ) {
174*36411Ssklower 			printf("x");
175*36411Ssklower 		}
176*36411Ssklower 	}
177*36411Ssklower }
178