1 /************************************************************ 2 Copyright IBM Corporation 1987 3 4 All Rights Reserved 5 6 Permission to use, copy, modify, and distribute this software and its 7 documentation for any purpose and without fee is hereby granted, 8 provided that the above copyright notice appear in all copies and that 9 both that copyright notice and this permission notice appear in 10 supporting documentation, and that the name of IBM not be 11 used in advertising or publicity pertaining to distribution of the 12 software without specific, written prior permission. 13 14 IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 15 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 16 IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 17 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 18 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 19 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 20 SOFTWARE. 21 22 ******************************************************************/ 23 24 /* 25 * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison 26 */ 27 28 #define KERNEL 29 #define MERGED 30 #define IBMRTPC 31 #define CLNPECHO 32 /* #define TP_PERF_MEAS */ 33 #define CONS 34 #define TPPT 35 #define ARGO_TP 36 #define ARGO_DEBUG 37 #define ISO 38 #define RDB 39 #define SHOW_LOAD 40 #define DEBUG 41 #define INET 42 #define MAXUSERS 32 43 #define DST 1 44 #define TIMEZONE 360 45 46 /* 47 * ARGO TP 48 * 49 * $Header: tp_sizes.c,v 5.1 88/10/12 12:21:03 root Exp $ 50 * $Source: /usr/argo/sys/netiso/RCS/tp_sizes.c,v $ 51 * 52 * 53 * This is the initialization and cleanup stuff - 54 * for the tp machine in general as well as for the individual pcbs. 55 * tp_init() is called at system startup. tp_attach() and tp_getref() are 56 * called when a socket is created. tp_detach() and tp_freeref() 57 * are called during the closing stage and/or when the reference timer 58 * goes off. 59 * tp_soisdisconnecting() and tp_soisdisconnected() are tp-specific 60 * versions of soisconnect* 61 * and are called (obviously) during the closing phase. 62 * 63 */ 64 65 #ifndef lint 66 static char *rcsid = "$Header: tp_sizes.c,v 5.1 88/10/12 12:21:03 root Exp $"; 67 #endif lint 68 69 #include "argoxtwentyfive.h" 70 #include "types.h" 71 #include "param.h" 72 #include "mbuf.h" 73 #include "socket.h" 74 #include "socketvar.h" 75 #include "protosw.h" 76 #include "errno.h" 77 #include "time.h" 78 #include "tp_param.h" 79 #include "tp_timer.h" 80 #include "tp_ip.h" 81 #include "tp_stat.h" 82 #include "tp_pcb.h" 83 #include "tp_tpdu.h" 84 #include "tp_trace.h" 85 #include "tp_meas.h" 86 #include "tp_seq.h" 87 #include "tp_clnp.h" 88 89 #include "iso_errno.h" 90 #include "cons.h" 91 #undef IncStat 92 #include "cons_pcb.h" 93 94 #define DUP(x) x, x 95 #define SIZE(P) printf("Size of %s: 0x%x %d\n", "P", DUP(sizeof(struct P))) 96 #define OFF(P, Q) printf("\toffset of %s in %s: 0x%x %d\n", "P", "Q", \ 97 DUP(_offsetof(struct Q, P))) 98 main() 99 { 100 printf( "TP struct sizes:\n"); 101 SIZE(tp_pcb); 102 #define O(y) OFF(tp_/**/y,tp_pcb); 103 O(state) O(retrans) O(snduna) 104 O(lref) O(fref) O(fsuffix) 105 O(fsuffixlen) O(lsuffix) O(lsuffixlen) 106 O(Xsnd) O(Xuna) 107 SIZE(tp_ref); OFF(tpr_pcb,tp_ref);OFF(tpr_calltodo,tp_ref); 108 SIZE(tp_stat); SIZE(tp_param); 109 SIZE(tp_conn_param); SIZE(tp_rtc); SIZE(nl_protosw); 110 #ifdef TP_PERF_MEAS 111 SIZE(tp_Meas); 112 #endif 113 printf( "ISO struct sizes:\n"); 114 SIZE(socket); 115 OFF(so_timeo,socket); OFF(so_rcv,socket); OFF(so_snd,socket); 116 OFF(so_tpcb,socket); OFF(so_pcb,socket); OFF(so_qlen,socket); 117 OFF(so_error,socket); OFF(so_state,socket); 118 SIZE(sockbuf); 119 OFF(sb_flags,sockbuf); OFF(sb_cc,sockbuf); 120 OFF(sb_mb,sockbuf); OFF(sb_mbcnt,sockbuf); 121 SIZE(isopcb); 122 SIZE(cons_pcb); OFF(co_state,cons_pcb); 123 } 124