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