int main() { PRINT_SIZE(int); PRINT_SIZE(long); PRINT_SIZE(intptr_t); PRINT_SIZE(void*); PRINT_SIZE(long long); PRINT_SIZE(size_t); return 0; }
int main (int argc, char *argv[]) { MPI_Status s; long addr1 = (long) &s; long addr2 = (long) &(s.MPI_SOURCE); long addr3 = (long) &(s.MPI_TAG); PRINT_SIZE(long long) PRINT_SIZE(long) PRINT_SIZE(int) PRINT_SIZE(pid_t) PRINT_SIZE(ssize_t) PRINT_SIZE(size_t) PRINT_SIZE(void*) PRINT_SIZE(short) PRINT_SIZE(char) printf ("size for MPI_Status in sizeof(int) = %ld\n", sizeof(MPI_Status)/sizeof(int)); printf ("offset of MPI_Status.MPI_SOURCE in sizeof(int) = %ld\n", (addr2-addr1)/sizeof(int)); printf ("offset of MPI_Status.MPI_TAG in sizeof(int) = %ld\n", (addr3-addr1)/sizeof(int)); return 0; }
int main(int argc, char **argv) { PRINT_SIZE(char); PRINT_SIZE(int); PRINT_SIZE(short); PRINT_SIZE(long); PRINT_SIZE(long long); PRINT_SIZE(float); PRINT_SIZE(double); PRINT_SIZE(long double); PRINT_SIZE(void *); PRINT_SIZE(2); PRINT_SIZE(2.0); PRINT_SIZE(2L); PRINT_SIZE(2.0L); PRINT_SIZE('a'); PRINT_SIZE("a"); return 0; }
void print_type_info(const char * tl_name) { if (tl_name == NULL) { printf("UCS:\n"); PRINT_SIZE(ucs_mpool_t); PRINT_SIZE(ucs_mpool_chunk_t); PRINT_SIZE(ucs_mpool_elem_t); PRINT_SIZE(ucs_async_context_t); PRINT_SIZE(ucs_async_handler_t); PRINT_SIZE(ucs_async_ops_t); PRINT_SIZE(ucs_async_pipe_t); PRINT_SIZE(ucs_async_signal_context_t); PRINT_SIZE(ucs_async_thread_context_t); PRINT_SIZE(ucs_callback_t); PRINT_SIZE(ucs_class_t); PRINT_SIZE(ucs_component_t); PRINT_SIZE(ucs_config_field_t); PRINT_SIZE(ucs_config_parser_t); PRINT_SIZE(ucs_frag_list_t); PRINT_SIZE(ucs_frag_list_elem_t); PRINT_SIZE(ucs_frag_list_head_t); PRINT_SIZE(ucs_ib_port_spec_t); PRINT_SIZE(ucs_list_link_t); PRINT_SIZE(ucs_memtrack_entry_t); PRINT_SIZE(ucs_mpmc_queue_t); PRINT_SIZE(ucs_notifier_chain_t); PRINT_SIZE(ucs_notifier_chain_elem_t); PRINT_SIZE(ucs_ptr_array_t); PRINT_SIZE(ucs_queue_elem_t); PRINT_SIZE(ucs_queue_head_t); PRINT_SIZE(ucs_spinlock_t); PRINT_SIZE(ucs_timer_t); PRINT_SIZE(ucs_timer_queue_t); PRINT_SIZE(ucs_twheel_t); PRINT_SIZE(ucs_wtimer_t); PRINT_SIZE(ucs_arbiter_t); PRINT_SIZE(ucs_arbiter_group_t); PRINT_SIZE(ucs_arbiter_elem_t); PRINT_SIZE(ucs_pgtable_t); PRINT_SIZE(ucs_pgt_entry_t); PRINT_SIZE(ucs_pgt_dir_t); PRINT_SIZE(ucs_pgt_region_t); PRINT_SIZE(ucs_rcache_t); PRINT_SIZE(ucs_rcache_region_t); printf("\nUCT:\n"); PRINT_SIZE(uct_am_handler_t); PRINT_SIZE(uct_base_iface_t); PRINT_SIZE(uct_completion_t); PRINT_SIZE(uct_ep_t); PRINT_SIZE(uct_mem_h); PRINT_SIZE(uct_rkey_t); PRINT_SIZE(uct_iface_t); PRINT_SIZE(uct_iface_attr_t); PRINT_SIZE(uct_iface_config_t); PRINT_SIZE(uct_iface_mpool_config_t); PRINT_SIZE(uct_pd_config_t); PRINT_SIZE(uct_iface_ops_t); PRINT_SIZE(uct_pd_t); PRINT_SIZE(uct_pd_attr_t); PRINT_SIZE(uct_pd_ops_t); PRINT_SIZE(uct_tl_resource_desc_t); PRINT_SIZE(uct_rkey_bundle_t); PRINT_SIZE(uct_sockaddr_ib_t); PRINT_SIZE(uct_sockaddr_ib_subnet_t); PRINT_SIZE(uct_sockaddr_process_t); PRINT_SIZE(uct_sockaddr_ugni_t); #if HAVE_IB printf("\nIB:\n"); PRINT_SIZE(uct_ib_device_t); PRINT_SIZE(uct_ib_pd_t); PRINT_SIZE(uct_ib_rcache_region_t); PRINT_SIZE(uct_ib_iface_t); PRINT_SIZE(uct_ib_iface_config_t); PRINT_SIZE(uct_ib_iface_recv_desc_t); PRINT_SIZE(uct_ib_recv_wr_t); #endif printf("\n"); } #if HAVE_TL_RC if (tl_name == NULL || !strcasecmp(tl_name, "rc_verbs") || !strcasecmp(tl_name, "rc_mlx5")) { printf("RC:\n"); PRINT_SIZE(uct_rc_am_short_hdr_t); PRINT_SIZE(uct_rc_ep_t); PRINT_SIZE(uct_rc_hdr_t); PRINT_SIZE(uct_rc_iface_t); PRINT_SIZE(uct_rc_iface_config_t); PRINT_SIZE(uct_rc_iface_send_op_t); PRINT_SIZE(uct_rc_iface_send_desc_t); PRINT_SIZE(uct_rc_iface_send_desc_t); if (tl_name == NULL || !strcasecmp(tl_name, "rc")) { PRINT_SIZE(uct_rc_verbs_ep_t); PRINT_SIZE(uct_rc_verbs_iface_config_t); PRINT_SIZE(uct_rc_verbs_iface_t); } #if HAVE_MLX5_HW if (tl_name == NULL || !strcasecmp(tl_name, "rc_mlx5")) { PRINT_SIZE(uct_rc_mlx5_ep_t); PRINT_SIZE(uct_rc_mlx5_iface_config_t); } #endif printf("\n"); } #endif #if HAVE_TL_UD if (tl_name == NULL || !strcasecmp(tl_name, "ud") || !strcasecmp(tl_name, "ud_mlx5")) { printf("UD:\n"); PRINT_SIZE(uct_ud_ep_t); PRINT_SIZE(uct_ud_neth_t); PRINT_SIZE(uct_ud_iface_t); PRINT_SIZE(uct_ud_iface_config_t); PRINT_SIZE(uct_ud_ep_pending_op_t); PRINT_SIZE(uct_ud_send_skb_t); PRINT_SIZE(uct_ud_send_skb_inl_t); PRINT_SIZE(uct_ud_recv_skb_t); PRINT_SIZE(uct_rc_iface_send_desc_t); if (tl_name == NULL || !strcasecmp(tl_name, "ud")) { PRINT_SIZE(uct_ud_verbs_ep_t); PRINT_SIZE(uct_ud_verbs_iface_t); } #if HAVE_MLX5_HW if (tl_name == NULL || !strcasecmp(tl_name, "ud_mlx5")) { PRINT_SIZE(uct_ud_mlx5_ep_t); PRINT_SIZE(uct_ud_mlx5_iface_t); PRINT_SIZE(uct_rc_mlx5_iface_config_t); } #endif printf("\n"); } #endif #if HAVE_TL_UGNI if (tl_name == NULL || !strcasecmp(tl_name, "ugni")) { printf("UGNI:\n"); PRINT_SIZE(uct_ugni_context_t); PRINT_SIZE(uct_ugni_device_t); PRINT_SIZE(uct_ugni_ep_t); PRINT_SIZE(uct_ugni_ep_addr_t); PRINT_SIZE(uct_ugni_fma_desc_t); PRINT_SIZE(uct_ugni_iface_t); PRINT_SIZE(uct_ugni_iface_addr_t); PRINT_SIZE(uct_ugni_iface_config_t); PRINT_SIZE(uct_ugni_pd_t); printf("\n"); } #endif printf("\nUCP:\n"); PRINT_SIZE(ucp_context_t); PRINT_SIZE(ucp_worker_t); PRINT_SIZE(ucp_ep_t); PRINT_SIZE(ucp_ep_config_t); PRINT_SIZE(ucp_request_t); PRINT_SIZE(ucp_tag_recv_info_t); PRINT_SIZE(ucp_mem_t); PRINT_SIZE(ucp_rkey_t); }
FUNCTION int main (void) { COUNT i; double *dp; float *fp; int *ip; short *sp; long *lp; TINY tiny_type; ALIGN align[50], *palign; TAEINT taeint1, taeint2; COMPACT_COUNT compact; COMPACT_UCOUNT ucompact; PRINT_SIZE(int); PRINT_SIZE(short); PRINT_SIZE(TAEINT); PRINT_SIZE(ALIGN); PRINT_SIZE(COUNT); PRINT_SIZE(UCOUNT); PRINT_SIZE(TINY); PRINT_SIZE(UTINY); PRINT_SIZE(TAEFLOAT); PRINT_SIZE(COMPACT_COUNT); PRINT_SIZE(COMPACT_UCOUNT); /* * TINYs must be signed. If char types are not signed, then * TINY must be defined to be 'short'. */ tiny_type = -1; if (tiny_type > 0) goto badHost1; /* The RESTRICT package assumes that a COMPACT_UCOUNT can be stored * within a GENPTR (for the purposes of "relative" offset). */ if (sizeof (GENPTR) < sizeof (COMPACT_UCOUNT)) goto badHost2; /* * Attempt to check that the ALIGN typedef will work: */ for (i=0; i < 8; i++) { palign = &align[i]; dp = (double *) palign; (*dp) = 10.0 ; if ((*dp) != 10.0 ) goto badHost4; fp = (float *) palign; (*fp) = 11.0 ; if ((*fp) != 11.0 ) goto badHost5; ip = (int *) palign; (*ip) = 100 ; if ((*ip) != 100 ) goto badHost6; lp = (long *) palign; (*lp) = 99 ; if ((*lp) != 99 ) goto badHost7; sp = (short *) palign; (*sp) = 98 ; if ((*sp) != 98 ) goto badHost8; } /* Misc checks. */ taeint1 = SMALLEST_TAEINT; taeint2 = LARGEST_TAEINT; if (taeint1 > 0 || taeint2 < 0 || taeint1 >= taeint2) goto badHost9; compact = MAX_COMPACT_COUNT; if (compact < 0) goto badHost10; ucompact = MAX_COMPACT_UCOUNT; /* if (ucompact < 0) goto badHost11; unneeded due to unsigned type */ printf ("\nSUCCESFUL EXECUTION.\n"); exit (0); #if 0 badHost11: error ("MAX_COMPACT_UCOUNT not right.\n"); #endif badHost10: error ("MAX_COMPACT_COUNT not right.\n"); badHost9: error ("SMALLEST_TAEINT/LARGEST_TAEINT not right.\n"); badHost8: badHost7: badHost6: badHost5: badHost4: error ("ALIGN not right.\n"); badHost2: error ("GENPTR won't fit in a COMPACT_UCOUNT.\n"); badHost1: error ("TINY data type must be signed.\n"); return(0); }