|
|
1.1 ! root 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_stat.h" ! 80: #include "tp_pcb.h" ! 81: #include "tp_tpdu.h" ! 82: #include "tp_trace.h" ! 83: #include "tp_meas.h" ! 84: #include "tp_seq.h" ! 85: #include "tp_clnp.h" ! 86: ! 87: #include "iso_errno.h" ! 88: #include "cons.h" ! 89: #undef IncStat ! 90: #include "cons_pcb.h" ! 91: ! 92: #define DUP(x) x, x ! 93: #define SIZE(P) printf(" Size of %s: 0x%x %d\n", "P", DUP(sizeof(struct P))) ! 94: #define OFF(P, Q) printf("\toffset of %s in %s: 0x%x %d\n", "P", "Q", \ ! 95: DUP(_offsetof(struct Q, P))) ! 96: main() ! 97: { ! 98: printf( "IP struct sizes:\n"); ! 99: SIZE(sockaddr_iso); ! 100: SIZE(isopcb); ! 101: SIZE(iso_ifaddr); ! 102: SIZE(tp_pcb); ! 103: #define O(y) OFF(if_/**/y,ifnet); ! 104: O(unit) O(ioctl) O(addrlist) ! 105: printf( "ISO struct sizes:\n"); ! 106: SIZE(socket); ! 107: OFF(so_timeo,socket); OFF(so_rcv,socket); OFF(so_snd,socket); ! 108: OFF(so_tpcb,socket); OFF(so_pcb,socket); OFF(so_qlen,socket); ! 109: OFF(so_error,socket); OFF(so_state,socket); ! 110: SIZE(sockbuf); ! 111: OFF(sb_flags,sockbuf); OFF(sb_cc,sockbuf); ! 112: OFF(sb_mb,sockbuf); OFF(sb_mbcnt,sockbuf); ! 113: SIZE(isopcb); ! 114: SIZE(cons_pcb); OFF(co_state,cons_pcb); ! 115: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.