/* * Copyright (C) 2015 University of Chicago. * See COPYRIGHT notice in top-level directory. * */ #define _GNU_SOURCE #include "darshan-util-config.h" #include #include #include #include #include #include #include #include #include #include #include "darshan-mpiio-logutils.h" /* counter name strings for the MPI-IO module */ #define X(a) #a, char *mpiio_counter_names[] = { MPIIO_COUNTERS }; char *mpiio_f_counter_names[] = { MPIIO_F_COUNTERS }; #undef X struct darshan_mod_logutil_funcs mpiio_logutils = { .log_get_record = &darshan_log_get_mpiio_file, .log_print_record = &darshan_log_print_mpiio_file, }; int darshan_log_get_mpiio_file(darshan_fd fd, void **file_rec, darshan_record_id *rec_id) { int i; int ret; struct darshan_mpiio_file *file = NULL; *rec_id = 0; file = malloc(sizeof(*file)); if(!file) return(-1); memset(file, 0, sizeof(*file)); ret = darshan_log_get_moddat(fd, DARSHAN_MPIIO_MOD, (void *)file, sizeof(*file)); if(ret == 1) { if(fd->swap_flag) { /* swap bytes if necessary */ DARSHAN_BSWAP64(&file->f_id); DARSHAN_BSWAP64(&file->rank); for(i=0; icounters[i]); for(i=0; ifcounters[i]); } /* pass the file record back */ *file_rec = (void *)file; *rec_id = file->f_id; } return(ret); } void darshan_log_print_mpiio_file(void *file_rec, char *file_name, char *mnt_pt, char *fs_type) { int i; struct darshan_mpiio_file *mpiio_file_rec = (struct darshan_mpiio_file *)file_rec; for(i=0; irank, mpiio_file_rec->f_id, mpiio_counter_names[i], mpiio_file_rec->counters[i], file_name, mnt_pt, fs_type); } for(i=0; irank, mpiio_file_rec->f_id, mpiio_f_counter_names[i], mpiio_file_rec->fcounters[i], file_name, mnt_pt, fs_type); } return; } /* * Local variables: * c-indent-level: 4 * c-basic-offset: 4 * End: * * vim: ts=8 sts=4 sw=4 expandtab */