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 "types.h" 70 #include "param.h" 71 #include "mbuf.h" 72 #include "socket.h" 73 #include "socketvar.h" 74 #include "protosw.h" 75 #include "errno.h" 76 #include "time.h" 77 #include "tp_param.h" 78 #include "tp_stat.h" 79 #include "tp_pcb.h" 80 #include "tp_tpdu.h" 81 #include "tp_trace.h" 82 #include "tp_meas.h" 83 #include "tp_seq.h" 84 #include "tp_clnp.h" 85 86 #include "iso_errno.h" 87 #include "cons.h" 88 #undef IncStat 89 #include "cons_pcb.h" 90 91 #define DUP(x) x, x 92 #define SIZE(P) printf(" Size of %s: 0x%x %d\n", "P", DUP(sizeof(struct P))) 93 #define OFF(P, Q) printf("\toffset of %s in %s: 0x%x %d\n", "P", "Q", \ 94 DUP(_offsetof(struct Q, P))) 95 main() 96 { 97 printf( "IP struct sizes:\n"); 98 SIZE(sockaddr_iso); 99 SIZE(isopcb); 100 SIZE(iso_ifaddr); 101 SIZE(tp_pcb); 102 #define O(y) OFF(if_/**/y,ifnet); 103 O(unit) O(ioctl) O(addrlist) 104 printf( "ISO struct sizes:\n"); 105 SIZE(socket); 106 OFF(so_timeo,socket); OFF(so_rcv,socket); OFF(so_snd,socket); 107 OFF(so_tpcb,socket); OFF(so_pcb,socket); OFF(so_qlen,socket); 108 OFF(so_error,socket); OFF(so_state,socket); 109 SIZE(sockbuf); 110 OFF(sb_flags,sockbuf); OFF(sb_cc,sockbuf); 111 OFF(sb_mb,sockbuf); OFF(sb_mbcnt,sockbuf); 112 SIZE(isopcb); 113 SIZE(cons_pcb); OFF(co_state,cons_pcb); 114 } 115