<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>
GitLab
</title>

</head>
<body>
<style type="text/css">
img {
max-width: 100%; height: auto;
}
</style>
<div class="content">
<h3>
Shane Snyder pushed to branch mmap-dev
at <a href="https://xgitlab.cels.anl.gov/darshan/darshan">darshan / darshan</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/d6dad7f3687bc1ac7d25348d6dfb7f444a5e705b">d6dad7f3</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-26T12:29:34-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">add variable-length definition of name records

also some code clean up to change references of record hash
to name hash to be more clear about what it is actually storing.</pre>
</li>
<li>
<strong><a href="https://xgitlab.cels.anl.gov/darshan/darshan/commit/999ee9c886eaff3b6a013badbf1f0eb298f2d116">999ee9c8</a></strong>
<div>
<span>by Shane Snyder</span>
<i>at 2016-05-26T12:53:05-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap">darshan-util edits for var. length name records</pre>
</li>
</ul>
<h4>17 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#620f2ecad2bb6f74b2fcd0134963a841" style="text-decoration: none">
darshan-log-format.h
</a>
</li>
<li class="file-stats">
<a href="#ad29afc395839758d41094872298bd0d" style="text-decoration: none">
darshan-runtime/darshan-core.h
</a>
</li>
<li class="file-stats">
<a href="#c0b0bf6d71bc5fc7e6d50d69c8aa2413" style="text-decoration: none">
darshan-runtime/lib/darshan-core.c
</a>
</li>
<li class="file-stats">
<a href="#2ace16276b68c7d5aef163bb260bd9f7" style="text-decoration: none">
darshan-util/Makefile.in
</a>
</li>
<li class="file-stats">
<a href="#4dfe7e78b540daa005ea4b5f0458c90d" style="text-decoration: none">
darshan-util/darshan-analyzer.c
</a>
</li>
<li class="file-stats">
<a href="#172f4bf093caeeba24730a1adff8f15a" style="text-decoration: none">
darshan-util/darshan-bgq-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#a453f91a0a4af7575917fad54f4ac1d0" style="text-decoration: none">
darshan-util/darshan-convert.c
</a>
</li>
<li class="file-stats">
<a href="#dffc348e63ffc0037c23afd36439222f" style="text-decoration: none">
darshan-util/darshan-diff.c
</a>
</li>
<li class="file-stats">
<a href="#f82b13d5e971dfa7a0cea839dd9d819c" style="text-decoration: none">
darshan-util/darshan-hdf5-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#ba4d174bce4109eebf5db0040421eba2" style="text-decoration: none">
darshan-util/darshan-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#bbc2314e774c28d45e241dbe5d218f70" style="text-decoration: none">
darshan-util/darshan-logutils.h
</a>
</li>
<li class="file-stats">
<a href="#02c44bcb0c30e1642888c0330c8d112c" style="text-decoration: none">
darshan-util/darshan-merge.c
</a>
</li>
<li class="file-stats">
<a href="#5ddb4a7da6ac3ae899220a2054c79be0" style="text-decoration: none">
darshan-util/darshan-mpiio-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#96c68c4d0376aa9733e6df1aff7dc9f8" style="text-decoration: none">
darshan-util/darshan-null-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#e483fe4e07b9111852a8f4e3e4e61d16" style="text-decoration: none">
darshan-util/darshan-parser.c
</a>
</li>
<li class="file-stats">
<a href="#54071697bdb74afd518e691935ab92ab" style="text-decoration: none">
darshan-util/darshan-pnetcdf-logutils.c
</a>
</li>
<li class="file-stats">
<a href="#879ee3b75b3b68112858e3c5a60c5a35" style="text-decoration: none">
darshan-util/darshan-posix-logutils.c
</a>
</li>
</ul>
<h4>Changes:</h4>
<li id="620f2ecad2bb6f74b2fcd0134963a841">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-0">
<strong>
darshan-log-format.h
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-log-format.h
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-log-format.h
</span><span style="color: #aaaaaa">@@ -69,7 +69,7 @@ struct darshan_header
</span>     int64_t magic_nr;
     unsigned char comp_type;
     uint32_t partial_flag;
<span style="background: #ffdddd; color: #000000">-    struct darshan_log_map rec_map;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_log_map name_map;
</span>     struct darshan_log_map mod_map[DARSHAN_MAX_MODS];
     uint32_t mod_ver[DARSHAN_MAX_MODS];
 };
<span style="color: #aaaaaa">@@ -86,6 +86,14 @@ struct darshan_job
</span>     char metadata[DARSHAN_JOB_METADATA_LEN];
 };
 
<span style="background: #ddffdd; color: #000000">+/* record to store name->darshan_id mapping for each registered record */
+struct darshan_name_record
+{
+    darshan_record_id id;
+    char name[1];
+};
+
+/* base record definition that can be used by modules */
</span> struct darshan_base_record
 {
     darshan_record_id id;
</code></pre>

<br>
</li>
<li id="ad29afc395839758d41094872298bd0d">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-1">
<strong>
darshan-runtime/darshan-core.h
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/darshan-core.h
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/darshan-core.h
</span><span style="color: #aaaaaa">@@ -43,12 +43,27 @@
</span> /* default path for storing mmap log files is '/tmp' */
 #define DARSHAN_DEF_MMAP_LOG_PATH "/tmp"
 
<span style="background: #ffdddd; color: #000000">-/* default record buf can store 2048 records of size 100 bytes */
-#define DARSHAN_RECORD_BUF_SIZE (2048 * 100)
</span><span style="background: #ddffdd; color: #000000">+/* default name record buf can store 2048 records of size 100 bytes */
+#define DARSHAN_NAME_RECORD_BUF_SIZE (2048 * 100)
</span> 
 /* Default runtime compression buffer size */
 #define DARSHAN_COMP_BUF_SIZE DARSHAN_MOD_MEM_MAX
 
<span style="background: #ddffdd; color: #000000">+/* structure to track registered modules */
+struct darshan_core_module
+{
+    struct darshan_module_funcs mod_funcs;
+    int mem_avail;
+};
+
+struct darshan_core_name_record_ref
+{
+    struct darshan_name_record *name_record;
+    uint64_t mod_flags;
+    uint64_t global_mod_flags;
+    UT_hash_handle hlink;
+};
+
</span> /* in memory structure to keep up with job level data */
 struct darshan_core_runtime
 {
<span style="color: #aaaaaa">@@ -56,35 +71,21 @@ struct darshan_core_runtime
</span>     struct darshan_header *log_hdr_p;
     struct darshan_job *log_job_p;
     char *log_exemnt_p;
<span style="background: #ffdddd; color: #000000">-    void *log_rec_p;
</span><span style="background: #ddffdd; color: #000000">+    void *log_name_p;
</span>     void *log_mod_p;
 
     /* darshan-core internal data structures */
<span style="background: #ffdddd; color: #000000">-    struct darshan_core_record_ref *rec_hash;
-    int rec_hash_cnt;
</span>     struct darshan_core_module* mod_array[DARSHAN_MAX_MODS];
     int mod_mem_used;
<span style="background: #ffdddd; color: #000000">-    char *comp_buf;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_core_name_record_ref *name_hash;
+    int name_hash_cnt;
</span>     double wtime_offset;
<span style="background: #ddffdd; color: #000000">+    char *comp_buf;
</span> #ifdef __DARSHAN_ENABLE_MMAP_LOGS
     char mmap_log_name[PATH_MAX];
 #endif
 };
 
<span style="background: #ffdddd; color: #000000">-struct darshan_core_module
-{
-    struct darshan_module_funcs mod_funcs;
-    int mem_avail;
-};
-
-struct darshan_core_record_ref
-{
-    void *rec_p; /* id & name buffer */
-    uint64_t mod_flags;
-    uint64_t global_mod_flags;
-    UT_hash_handle hlink;
-};
-
</span> void darshan_core_initialize(int argc, char **argv);
 void darshan_core_shutdown(void);
 
</code></pre>

<br>
</li>
<li id="c0b0bf6d71bc5fc7e6d50d69c8aa2413">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-2">
<strong>
darshan-runtime/lib/darshan-core.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-runtime/lib/darshan-core.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-runtime/lib/darshan-core.c
</span><span style="color: #aaaaaa">@@ -93,9 +93,9 @@ static void darshan_log_record_hints_and_ver(
</span>     struct darshan_core_runtime* core);
 static void darshan_get_exe_and_mounts(
     struct darshan_core_runtime *core, int argc, char **argv);
<span style="background: #ffdddd; color: #000000">-static void darshan_add_record_hashref(
</span><span style="background: #ddffdd; color: #000000">+static void darshan_add_name_record_ref(
</span>     struct darshan_core_runtime *core, char *name,
<span style="background: #ffdddd; color: #000000">-    darshan_record_id id, struct darshan_core_record_ref **ref);
</span><span style="background: #ddffdd; color: #000000">+    darshan_record_id id, struct darshan_core_name_record_ref **ref);
</span> static int darshan_block_size_from_path(
     const char *path);
 static void darshan_get_user_name(
<span style="color: #aaaaaa">@@ -110,7 +110,7 @@ static int darshan_log_open_all(
</span> static int darshan_deflate_buffer(
     void **pointers, int *lengths, int count, char *comp_buf,
     int *comp_buf_length);
<span style="background: #ffdddd; color: #000000">-static int darshan_log_write_record_hash(
</span><span style="background: #ddffdd; color: #000000">+static int darshan_log_write_name_record_hash(
</span>     MPI_File log_fh, struct darshan_core_runtime *core,
     uint64_t *inout_off);
 static int darshan_log_append_all(
<span style="color: #aaaaaa">@@ -208,11 +208,11 @@ void darshan_core_initialize(int argc, char **argv)
</span>             init_core->log_hdr_p = malloc(sizeof(struct darshan_header));
             init_core->log_job_p = malloc(sizeof(struct darshan_job));
             init_core->log_exemnt_p = malloc(DARSHAN_EXE_LEN+1);
<span style="background: #ffdddd; color: #000000">-            init_core->log_rec_p = malloc(DARSHAN_RECORD_BUF_SIZE);
</span><span style="background: #ddffdd; color: #000000">+            init_core->log_name_p = malloc(DARSHAN_NAME_RECORD_BUF_SIZE);
</span>             init_core->log_mod_p = malloc(DARSHAN_MOD_MEM_MAX);
 
             if(!(init_core->log_hdr_p) || !(init_core->log_job_p) ||
<span style="background: #ffdddd; color: #000000">-               !(init_core->log_exemnt_p) || !(init_core->log_rec_p) ||
</span><span style="background: #ddffdd; color: #000000">+               !(init_core->log_exemnt_p) || !(init_core->log_name_p) ||
</span>                !(init_core->log_mod_p))
             {
                 free(init_core);
<span style="color: #aaaaaa">@@ -222,7 +222,7 @@ void darshan_core_initialize(int argc, char **argv)
</span>             memset(init_core->log_hdr_p, 0, sizeof(struct darshan_header));
             memset(init_core->log_job_p, 0, sizeof(struct darshan_job));
             memset(init_core->log_exemnt_p, 0, DARSHAN_EXE_LEN+1);
<span style="background: #ffdddd; color: #000000">-            memset(init_core->log_rec_p, 0, DARSHAN_RECORD_BUF_SIZE);
</span><span style="background: #ddffdd; color: #000000">+            memset(init_core->log_name_p, 0, DARSHAN_NAME_RECORD_BUF_SIZE);
</span>             memset(init_core->log_mod_p, 0, DARSHAN_MOD_MEM_MAX);
 #else
             /* if mmap logs are enabled, we need to initialize the mmap region
<span style="color: #aaaaaa">@@ -233,7 +233,7 @@ void darshan_core_initialize(int argc, char **argv)
</span>             assert(sys_page_size > 0);
 
             mmap_size = sizeof(struct darshan_header) + DARSHAN_JOB_RECORD_SIZE +
<span style="background: #ffdddd; color: #000000">-                + DARSHAN_RECORD_BUF_SIZE + DARSHAN_MOD_MEM_MAX;
</span><span style="background: #ddffdd; color: #000000">+                + DARSHAN_NAME_RECORD_BUF_SIZE + DARSHAN_MOD_MEM_MAX;
</span>             if(mmap_size % sys_page_size)
                 mmap_size = ((mmap_size / sys_page_size) + 1) * sys_page_size;
 
<span style="color: #aaaaaa">@@ -298,14 +298,14 @@ void darshan_core_initialize(int argc, char **argv)
</span>                 ((char *)init_core->log_hdr_p + sizeof(struct darshan_header));
             init_core->log_exemnt_p = (char *)
                 ((char *)init_core->log_job_p + sizeof(struct darshan_job));
<span style="background: #ffdddd; color: #000000">-            init_core->log_rec_p = (void *)
</span><span style="background: #ddffdd; color: #000000">+            init_core->log_name_p = (void *)
</span>                 ((char *)init_core->log_exemnt_p + DARSHAN_EXE_LEN + 1);
             init_core->log_mod_p = (void *)
<span style="background: #ffdddd; color: #000000">-                ((char *)init_core->log_rec_p + DARSHAN_RECORD_BUF_SIZE);
</span><span style="background: #ddffdd; color: #000000">+                ((char *)init_core->log_name_p + DARSHAN_NAME_RECORD_BUF_SIZE);
</span> 
             /* set header fields needed for the mmap log mechanism */
             init_core->log_hdr_p->comp_type = DARSHAN_NO_COMP;
<span style="background: #ffdddd; color: #000000">-            init_core->log_hdr_p->rec_map.off =
</span><span style="background: #ddffdd; color: #000000">+            init_core->log_hdr_p->name_map.off =
</span>                 sizeof(struct darshan_header) + DARSHAN_JOB_RECORD_SIZE;
 #endif
 
<span style="color: #aaaaaa">@@ -564,9 +564,9 @@ void darshan_core_shutdown()
</span>     if(internal_timing_flag)
         rec1 = DARSHAN_MPI_CALL(PMPI_Wtime)();
     /* write the record name->id hash to the log file */
<span style="background: #ffdddd; color: #000000">-    out_header.rec_map.off = gz_fp;
-    ret = darshan_log_write_record_hash(log_fh, final_core, &gz_fp);
-    out_header.rec_map.len = gz_fp - out_header.rec_map.off;
</span><span style="background: #ddffdd; color: #000000">+    out_header.name_map.off = gz_fp;
+    ret = darshan_log_write_name_record_hash(log_fh, final_core, &gz_fp);
+    out_header.name_map.len = gz_fp - out_header.name_map.off;
</span> 
     /* error out if unable to write record hash */
     DARSHAN_MPI_CALL(PMPI_Allreduce)(&ret, &all_ret, 1, MPI_INT,
<span style="color: #aaaaaa">@@ -601,7 +601,7 @@ void darshan_core_shutdown()
</span>     for(i = 0; i < DARSHAN_MAX_MODS; i++)
     {
         struct darshan_core_module* this_mod = final_core->mod_array[i];
<span style="background: #ffdddd; color: #000000">-        struct darshan_core_record_ref *ref = NULL;
</span><span style="background: #ddffdd; color: #000000">+        struct darshan_core_name_record_ref *ref = NULL;
</span>         int mod_shared_rec_cnt = 0;
         void* mod_buf = NULL;
         int mod_buf_sz = 0;
<span style="color: #aaaaaa">@@ -624,7 +624,7 @@ void darshan_core_shutdown()
</span>         memset(mod_shared_recs, 0, shared_rec_cnt * sizeof(darshan_record_id));
         for(j = 0; j < shared_rec_cnt; j++)
         {
<span style="background: #ffdddd; color: #000000">-            HASH_FIND(hlink, final_core->rec_hash, &shared_recs[j],
</span><span style="background: #ddffdd; color: #000000">+            HASH_FIND(hlink, final_core->name_hash, &shared_recs[j],
</span>                 sizeof(darshan_record_id), ref);
             assert(ref);
             if(DARSHAN_MOD_FLAG_ISSET(ref->global_mod_flags, i))
<span style="color: #aaaaaa">@@ -1219,14 +1219,12 @@ static void darshan_get_logfile_name(char* logfile_name, int jobid, struct tm* s
</span>     return;
 }
 
<span style="background: #ffdddd; color: #000000">-static void darshan_add_record_hashref(struct darshan_core_runtime *core,
-    char *name, darshan_record_id id, struct darshan_core_record_ref **ref)
</span><span style="background: #ddffdd; color: #000000">+static void darshan_add_name_record_ref(struct darshan_core_runtime *core, char *name,
+    darshan_record_id id, struct darshan_core_name_record_ref **ref)
</span> {
     int record_size = sizeof(darshan_record_id) + strlen(name) + 1;
<span style="background: #ffdddd; color: #000000">-    darshan_record_id *id_p;
-    char *name_p;
</span> 
<span style="background: #ffdddd; color: #000000">-    if((record_size + core->log_hdr_p->rec_map.len) > DARSHAN_RECORD_BUF_SIZE)
</span><span style="background: #ddffdd; color: #000000">+    if((record_size + core->log_hdr_p->name_map.len) > DARSHAN_NAME_RECORD_BUF_SIZE)
</span>         return;
 
     *ref = malloc(sizeof(**ref));
<span style="color: #aaaaaa">@@ -1234,20 +1232,17 @@ static void darshan_add_record_hashref(struct darshan_core_runtime *core,
</span>     {
         memset(*ref, 0, sizeof(**ref));
 
<span style="background: #ffdddd; color: #000000">-        /* serialize the record id and name into the record map buffer */
-        id_p = (darshan_record_id *)
-            ((char *)core->log_rec_p + core->log_hdr_p->rec_map.len);
-        *id_p = id;
-        name_p = (char *)id_p + sizeof(darshan_record_id);
-        strcpy(name_p, name);
-
-        /* save pointer to this record mapping buffer */
-        (*ref)->rec_p = id_p;
</span><span style="background: #ddffdd; color: #000000">+        (*ref)->name_record = (struct darshan_name_record *)
+            ((char *)core->log_name_p + core->log_hdr_p->name_map.len);
+        memset((*ref)->name_record, 0, record_size);
+        (*ref)->name_record->id = id;
+        strcpy((*ref)->name_record->name, name);
</span> 
         /* add the record to the hash table */
<span style="background: #ffdddd; color: #000000">-        HASH_ADD_KEYPTR(hlink, core->rec_hash, id_p, sizeof(darshan_record_id), (*ref));
-        core->rec_hash_cnt++;
-        core->log_hdr_p->rec_map.len += record_size;
</span><span style="background: #ddffdd; color: #000000">+        HASH_ADD(hlink, core->name_hash, name_record->id,
+            sizeof(darshan_record_id), (*ref));
+        core->name_hash_cnt++;
+        core->log_hdr_p->name_map.len += record_size;
</span>     }
 
     return;
<span style="color: #aaaaaa">@@ -1257,8 +1252,8 @@ static void darshan_get_shared_records(struct darshan_core_runtime *core,
</span>     darshan_record_id **shared_recs, int *shared_rec_cnt)
 {
     int i, j;
<span style="background: #ffdddd; color: #000000">-    int tmp_cnt = core->rec_hash_cnt;
-    struct darshan_core_record_ref *tmp, *ref;
</span><span style="background: #ddffdd; color: #000000">+    int tmp_cnt = core->name_hash_cnt;
+    struct darshan_core_name_record_ref *tmp, *ref;
</span>     darshan_record_id *id_array;
     uint64_t *mod_flags;
     uint64_t *global_mod_flags;
<span style="color: #aaaaaa">@@ -1281,10 +1276,9 @@ static void darshan_get_shared_records(struct darshan_core_runtime *core,
</span>     if(my_rank == 0)
     {
         i = 0;
<span style="background: #ffdddd; color: #000000">-        HASH_ITER(hlink, core->rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+        HASH_ITER(hlink, core->name_hash, ref, tmp)
</span>         {
<span style="background: #ffdddd; color: #000000">-            /* dereference the record pointer to get corresponding id */
-            id_array[i++] = *(darshan_record_id *)ref->rec_p;
</span><span style="background: #ddffdd; color: #000000">+            id_array[i++] = ref->name_record->id;
</span>         }
     }
 
<span style="color: #aaaaaa">@@ -1295,7 +1289,7 @@ static void darshan_get_shared_records(struct darshan_core_runtime *core,
</span>     /* everyone looks to see if they opened the same records as root */
     for(i=0; i<tmp_cnt; i++)
     {
<span style="background: #ffdddd; color: #000000">-        HASH_FIND(hlink, core->rec_hash, &id_array[i], sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+        HASH_FIND(hlink, core->name_hash, &id_array[i], sizeof(darshan_record_id), ref);
</span>         if(ref)
         {
             /* we opened that record too, save the mod_flags */
<span style="color: #aaaaaa">@@ -1320,7 +1314,7 @@ static void darshan_get_shared_records(struct darshan_core_runtime *core,
</span>              * accessed this module. we need this info to support shared
              * file reductions
              */
<span style="background: #ffdddd; color: #000000">-            HASH_FIND(hlink, core->rec_hash, &id_array[i], sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+            HASH_FIND(hlink, core->name_hash, &id_array[i], sizeof(darshan_record_id), ref);
</span>             assert(ref);
             ref->global_mod_flags = global_mod_flags[i];
         }
<span style="color: #aaaaaa">@@ -1483,14 +1477,14 @@ static int darshan_deflate_buffer(void **pointers, int *lengths, int count,
</span> /* NOTE: the map written to file may contain duplicate id->name entries if a
  *       record is opened by multiple ranks, but not all ranks
  */
<span style="background: #ffdddd; color: #000000">-static int darshan_log_write_record_hash(MPI_File log_fh, struct darshan_core_runtime *core,
-    uint64_t *inout_off)
</span><span style="background: #ddffdd; color: #000000">+static int darshan_log_write_name_record_hash(MPI_File log_fh,
+    struct darshan_core_runtime *core, uint64_t *inout_off)
</span> {
<span style="background: #ffdddd; color: #000000">-    struct darshan_core_record_ref *ref, *tmp;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_core_name_record_ref *ref, *tmp;
</span>     int ret;
 
     /* serialize the record hash into a buffer for writing */
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, core->rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, core->name_hash, ref, tmp)
</span>     {
         /* to avoid duplicate records, only rank 0 will write shared records */
         if(my_rank > 0 && ref->global_mod_flags)
<span style="color: #aaaaaa">@@ -1500,8 +1494,8 @@ static int darshan_log_write_record_hash(MPI_File log_fh, struct darshan_core_ru
</span>     }
 
     /* collectively write out the record hash to the darshan log */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_append_all(log_fh, core, core->log_rec_p,
-        core->log_hdr_p->rec_map.len, inout_off);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_append_all(log_fh, core, core->log_name_p,
+        core->log_hdr_p->name_map.len, inout_off);
</span> 
     return(ret);
 }
<span style="color: #aaaaaa">@@ -1581,12 +1575,12 @@ static int darshan_log_append_all(MPI_File log_fh, struct darshan_core_runtime *
</span> /* free darshan core data structures to shutdown */
 static void darshan_core_cleanup(struct darshan_core_runtime* core)
 {
<span style="background: #ffdddd; color: #000000">-    struct darshan_core_record_ref *tmp, *ref;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_core_name_record_ref *tmp, *ref;
</span>     int i;
 
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, core->rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, core->name_hash, ref, tmp)
</span>     {
<span style="background: #ffdddd; color: #000000">-        HASH_DELETE(hlink, core->rec_hash, ref);
</span><span style="background: #ddffdd; color: #000000">+        HASH_DELETE(hlink, core->name_hash, ref);
</span>         free(ref);
     }
 
<span style="color: #aaaaaa">@@ -1603,7 +1597,7 @@ static void darshan_core_cleanup(struct darshan_core_runtime* core)
</span>     free(core->log_hdr_p);
     free(core->log_job_p);
     free(core->log_exemnt_p);
<span style="background: #ffdddd; color: #000000">-    free(core->log_rec_p);
</span><span style="background: #ddffdd; color: #000000">+    free(core->log_name_p);
</span>     free(core->log_mod_p);
 #endif
 
<span style="color: #aaaaaa">@@ -1686,7 +1680,7 @@ void darshan_core_register_module(
</span> void darshan_core_unregister_module(
     darshan_module_id mod_id)
 {
<span style="background: #ffdddd; color: #000000">-    struct darshan_core_record_ref *ref, *tmp;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_core_name_record_ref *ref, *tmp;
</span> 
     if(!darshan_core)
         return;
<span style="color: #aaaaaa">@@ -1694,14 +1688,14 @@ void darshan_core_unregister_module(
</span>     DARSHAN_CORE_LOCK();
 
     /* iterate all records and disassociate this module from them */
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, darshan_core->rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, darshan_core->name_hash, ref, tmp)
</span>     {
         /* disassociate this module from the given record id */
         DARSHAN_MOD_FLAG_UNSET(ref->mod_flags, mod_id);
         if(!(ref->mod_flags))
         {
             /* if no other modules are associated with this rec, delete it */
<span style="background: #ffdddd; color: #000000">-            HASH_DELETE(hlink, darshan_core->rec_hash, ref);
</span><span style="background: #ddffdd; color: #000000">+            HASH_DELETE(hlink, darshan_core->name_hash, ref);
</span>         }
     }
 
<span style="color: #aaaaaa">@@ -1739,7 +1733,7 @@ int darshan_core_register_record(
</span>     int rec_size,
     int *file_alignment)
 {
<span style="background: #ffdddd; color: #000000">-    struct darshan_core_record_ref *ref;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_core_name_record_ref *ref;
</span>     int mod_oom = 0;
 
     if(!darshan_core)
<span style="color: #aaaaaa">@@ -1752,14 +1746,14 @@ int darshan_core_register_record(
</span>         mod_oom = 1;
 
     /* check to see if we've already stored the id->name mapping for this record */
<span style="background: #ffdddd; color: #000000">-    HASH_FIND(hlink, darshan_core->rec_hash, &rec_id, sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+    HASH_FIND(hlink, darshan_core->name_hash, &rec_id, sizeof(darshan_record_id), ref);
</span>     if(!ref && !mod_oom)
     {
         /* no mapping already exists, but this module has memory available for
          * storing the record being registered, so we create a new id->name
          * mapping to correspond to the record
          */
<span style="background: #ffdddd; color: #000000">-        darshan_add_record_hashref(darshan_core, name, rec_id, &ref);
</span><span style="background: #ddffdd; color: #000000">+        darshan_add_name_record_ref(darshan_core, name, rec_id, &ref);
</span>     }
 
     if(!ref)
</code></pre>

<br>
</li>
<li id="2ace16276b68c7d5aef163bb260bd9f7">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-3">
<strong>
darshan-util/Makefile.in
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/Makefile.in
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/Makefile.in
</span><span style="color: #aaaaaa">@@ -159,7 +159,7 @@ endif
</span> 
 
 clean::
<span style="background: #ffdddd; color: #000000">-     rm -f *.o *.po *.a *.so darshan-analyzer darshan-convert darshan-parser darshan-merge jenkins-hash-gen
</span><span style="background: #ddffdd; color: #000000">+        rm -f *.o *.po *.a *.so darshan-analyzer darshan-convert darshan-diff darshan-parser darshan-merge jenkins-hash-gen
</span> 
 distclean:: clean
        rm -f darshan-runtime-config.h aclocal.m4 autom4te.cache/* config.status config.log Makefile util/bin/darshan-job-summary.pl
</code></pre>

<br>
</li>
<li id="4dfe7e78b540daa005ea4b5f0458c90d">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-4">
<strong>
darshan-util/darshan-analyzer.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-analyzer.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-analyzer.c
</span><span style="color: #aaaaaa">@@ -52,10 +52,10 @@ int process_log(const char *fname, double *io_ratio, int *used_mpio, int *used_p
</span>         return -1;
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getjob(file, &job);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_job(file, &job);
</span>     if (ret < 0)
     {
<span style="background: #ffdddd; color: #000000">-        fprintf(stderr, "darshan_log_getjob() failed on file %s.\n", fname);
</span><span style="background: #ddffdd; color: #000000">+        fprintf(stderr, "darshan_log_get_job() failed on file %s.\n", fname);
</span>         darshan_log_close(file);
         return -1;
     }
</code></pre>

<br>
</li>
<li id="172f4bf093caeeba24730a1adff8f15a">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-5">
<strong>
darshan-util/darshan-bgq-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-bgq-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-bgq-logutils.c
</span><span style="color: #aaaaaa">@@ -55,7 +55,7 @@ static int darshan_log_get_bgq_rec(darshan_fd fd, void* bgq_buf)
</span>     int i;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmod(fd, DARSHAN_BGQ_MOD, bgq_buf,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mod(fd, DARSHAN_BGQ_MOD, bgq_buf,
</span>         sizeof(struct darshan_bgq_record));
     if(ret < 0)
         return(-1);
<span style="color: #aaaaaa">@@ -84,7 +84,7 @@ static int darshan_log_put_bgq_rec(darshan_fd fd, void* bgq_buf, int ver)
</span>     struct darshan_bgq_record *rec = (struct darshan_bgq_record *)bgq_buf;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmod(fd, DARSHAN_BGQ_MOD, rec,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mod(fd, DARSHAN_BGQ_MOD, rec,
</span>         sizeof(struct darshan_bgq_record), ver);
     if(ret < 0)
         return(-1);
</code></pre>

<br>
</li>
<li id="a453f91a0a4af7575917fad54f4ac1d0">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-6">
<strong>
darshan-util/darshan-convert.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-convert.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-convert.c
</span><span style="color: #aaaaaa">@@ -140,21 +140,25 @@ void obfuscate_exe(int key, char *exe)
</span>     return;
 }
 
<span style="background: #ffdddd; color: #000000">-void obfuscate_filenames(int key, struct darshan_record_ref *rec_hash)
</span><span style="background: #ddffdd; color: #000000">+void obfuscate_filenames(int key, struct darshan_name_record_ref *name_hash)
</span> {
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *ref, *tmp;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *ref, *tmp;
</span>     uint32_t hashed;
     char tmp_string[128] = {0};
<span style="background: #ddffdd; color: #000000">+    darshan_record_id tmp_id;
</span> 
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, name_hash, ref, tmp)
</span>     {
<span style="background: #ffdddd; color: #000000">-        hashed = darshan_hashlittle(ref->name, strlen(ref->name), key);
</span><span style="background: #ddffdd; color: #000000">+        tmp_id = ref->name_record->id;
+        hashed = darshan_hashlittle(ref->name_record->name,
+            strlen(ref->name_record->name), key);
</span>         sprintf(tmp_string, "%u", hashed);
<span style="background: #ffdddd; color: #000000">-        free(ref->name);
-        ref->name = malloc(strlen(tmp_string) + 1);
-        assert(ref->name);
-        memcpy(ref->name, tmp_string, strlen(tmp_string));
-        ref->name[strlen(tmp_string)] = '\0';
</span><span style="background: #ddffdd; color: #000000">+        free(ref->name_record);
+        ref->name_record = malloc(sizeof(struct darshan_name_record) +
+            strlen(tmp_string));
+        assert(ref->name_record);
+        ref->name_record->id = tmp_id;
+        strcpy(ref->name_record->name, tmp_string);
</span>     }
 
     return;
<span style="color: #aaaaaa">@@ -202,16 +206,17 @@ void add_annotation (char *annotation,
</span>     return;
 }
 
<span style="background: #ffdddd; color: #000000">-static void remove_hash_recs(struct darshan_record_ref **rec_hash, darshan_record_id hash)
</span><span style="background: #ddffdd; color: #000000">+static void remove_hash_recs(struct darshan_name_record_ref **name_hash,
+    darshan_record_id hash)
</span> {
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *ref, *tmp;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *ref, *tmp;
</span> 
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, *rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, *name_hash, ref, tmp)
</span>     {
<span style="background: #ffdddd; color: #000000">-        if(ref->id != hash)
</span><span style="background: #ddffdd; color: #000000">+        if(ref->name_record->id != hash)
</span>         {
<span style="background: #ffdddd; color: #000000">-            HASH_DELETE(hlink, *rec_hash, ref);
-            free(ref->name);
</span><span style="background: #ddffdd; color: #000000">+            HASH_DELETE(hlink, *name_hash, ref);
+            free(ref->name_record);
</span>             free(ref);
         }
     }
<span style="color: #aaaaaa">@@ -232,8 +237,8 @@ int main(int argc, char **argv)
</span>     int mount_count;
     char** mnt_pts;
     char** fs_types;
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *rec_hash = NULL;
-    struct darshan_record_ref *ref, *tmp;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *name_hash = NULL;
+    struct darshan_name_record_ref *ref, *tmp;
</span>     char mod_buf[DEF_MOD_BUF_SIZE];
     enum darshan_comp_type comp_type;
     int bzip2;
<span style="color: #aaaaaa">@@ -259,7 +264,7 @@ int main(int argc, char **argv)
</span>     }
 
     /* read job info */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getjob(infile, &job);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_job(infile, &job);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -272,7 +277,7 @@ int main(int argc, char **argv)
</span>     if (obfuscate) obfuscate_job(key, &job);
     if (annotation) add_annotation(annotation, &job);
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putjob(outfile, &job);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_job(outfile, &job);
</span>     if (ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -280,7 +285,7 @@ int main(int argc, char **argv)
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getexe(infile, tmp_string);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_exe(infile, tmp_string);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -291,7 +296,7 @@ int main(int argc, char **argv)
</span> 
     if (obfuscate) obfuscate_exe(key, tmp_string);
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putexe(outfile, tmp_string);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_exe(outfile, tmp_string);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -299,7 +304,7 @@ int main(int argc, char **argv)
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmounts(infile, &mnt_pts, &fs_types, &mount_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mounts(infile, &mnt_pts, &fs_types, &mount_count);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -308,7 +313,7 @@ int main(int argc, char **argv)
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmounts(outfile, mnt_pts, fs_types, mount_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mounts(outfile, mnt_pts, fs_types, mount_count);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -316,7 +321,7 @@ int main(int argc, char **argv)
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_gethash(infile, &rec_hash);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_namehash(infile, &name_hash);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -328,10 +333,10 @@ int main(int argc, char **argv)
</span>     /* NOTE: obfuscating filepaths breaks the ability to map files
      * to the corresponding FS & mount info maintained by darshan
      */
<span style="background: #ffdddd; color: #000000">-    if(obfuscate) obfuscate_filenames(key, rec_hash);
-    if(hash) remove_hash_recs(&rec_hash, hash);
</span><span style="background: #ddffdd; color: #000000">+    if(obfuscate) obfuscate_filenames(key, name_hash);
+    if(hash) remove_hash_recs(&name_hash, hash);
</span> 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_puthash(outfile, rec_hash);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_namehash(outfile, name_hash);
</span>     if(ret < 0)
     {
         darshan_log_close(infile);
<span style="color: #aaaaaa">@@ -402,10 +407,10 @@ int main(int argc, char **argv)
</span>         free(fs_types);
     }
 
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, rec_hash, ref, tmp)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, name_hash, ref, tmp)
</span>     {
<span style="background: #ffdddd; color: #000000">-        HASH_DELETE(hlink, rec_hash, ref);
-        free(ref->name);
</span><span style="background: #ddffdd; color: #000000">+        HASH_DELETE(hlink, name_hash, ref);
+        free(ref->name_record);
</span>         free(ref);
     }
 
</code></pre>

<br>
</li>
<li id="dffc348e63ffc0037c23afd36439222f">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-7">
<strong>
darshan-util/darshan-diff.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-diff.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-diff.c
</span><span style="color: #aaaaaa">@@ -53,8 +53,8 @@ int main(int argc, char *argv[])
</span>     darshan_fd file1, file2;
     struct darshan_job job1, job2;
     char exe1[4096], exe2[4096];
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *name_hash1 = NULL, *name_hash2 = NULL;
-    struct darshan_record_ref *name_ref1, *name_ref2;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *name_hash1 = NULL, *name_hash2 = NULL;
+    struct darshan_name_record_ref *name_ref1, *name_ref2;
</span>     struct darshan_file_record_ref *rec_hash1 = NULL, *rec_hash2 = NULL;
     struct darshan_file_record_ref *rec_ref1, *rec_ref2, *rec_tmp;
     struct darshan_mod_record_ref *mod_rec1, *mod_rec2;
<span style="color: #aaaaaa">@@ -89,7 +89,7 @@ int main(int argc, char *argv[])
</span>     }
 
     /* get job data for each log file */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getjob(file1, &job1);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_job(file1, &job1);
</span>     if(ret < 0)
     {
         darshan_log_close(file1);
<span style="color: #aaaaaa">@@ -98,7 +98,7 @@ int main(int argc, char *argv[])
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getjob(file2, &job2);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_job(file2, &job2);
</span>     if(ret < 0)
     {
         darshan_log_close(file1);
<span style="color: #aaaaaa">@@ -108,7 +108,7 @@ int main(int argc, char *argv[])
</span>     }
 
     /* get exe string for each log file */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getexe(file1, exe1);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_exe(file1, exe1);
</span>     if(ret < 0)
     {
         darshan_log_close(file1);
<span style="color: #aaaaaa">@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getexe(file2, exe2);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_exe(file2, exe2);
</span>     if(ret < 0)
     {
         darshan_log_close(file1);
<span style="color: #aaaaaa">@@ -144,7 +144,7 @@ int main(int argc, char *argv[])
</span>                 (int64_t)(job2.end_time - job2.start_time + 1));
 
     /* get hash of record ids to file names for each log */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_gethash(file1, &name_hash1);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_namehash(file1, &name_hash1);
</span>     if(ret < 0)
     {
         darshan_log_close(file1);
<span style="color: #aaaaaa">@@ -153,7 +153,7 @@ int main(int argc, char *argv[])
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_gethash(file2, &name_hash2);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_namehash(file2, &name_hash2);
</span>     if(ret < 0)
     {
         darshan_log_close(file1);
<span style="color: #aaaaaa">@@ -246,14 +246,14 @@ int main(int argc, char *argv[])
</span>                     HASH_FIND(hlink, name_hash1, &(base_rec1->id),
                         sizeof(darshan_record_id), name_ref1);
                     assert(name_ref1);
<span style="background: #ffdddd; color: #000000">-                    file_name1 = name_ref1->name;
</span><span style="background: #ddffdd; color: #000000">+                    file_name1 = name_ref1->name_record->name;
</span>                 }
                 if(mod_buf2)
                 {
                     HASH_FIND(hlink, name_hash2, &(base_rec2->id),
                         sizeof(darshan_record_id), name_ref2);
                     assert(name_ref2);
<span style="background: #ffdddd; color: #000000">-                    file_name2 = name_ref2->name;
</span><span style="background: #ddffdd; color: #000000">+                    file_name2 = name_ref2->name_record->name;
</span>                 }
 
                 mod_logutils[i]->log_print_diff(mod_buf1, file_name1, mod_buf2, file_name2);
<span style="color: #aaaaaa">@@ -314,7 +314,7 @@ int main(int argc, char *argv[])
</span>                 HASH_FIND(hlink, name_hash2, &(base_rec2->id),
                     sizeof(darshan_record_id), name_ref2);
                 assert(name_ref2);
<span style="background: #ffdddd; color: #000000">-                file_name2 = name_ref2->name;
</span><span style="background: #ddffdd; color: #000000">+                file_name2 = name_ref2->name_record->name;
</span> 
                 mod_logutils[i]->log_print_diff(NULL, NULL, mod_rec2->mod_dat, file_name2);
                 
<span style="color: #aaaaaa">@@ -340,13 +340,13 @@ int main(int argc, char *argv[])
</span>     HASH_ITER(hlink, name_hash1, name_ref1, name_ref2)
     {
         HASH_DELETE(hlink, name_hash1, name_ref1);
<span style="background: #ffdddd; color: #000000">-        free(name_ref1->name);
</span><span style="background: #ddffdd; color: #000000">+        free(name_ref1->name_record);
</span>         free(name_ref1);
     }
     HASH_ITER(hlink, name_hash2, name_ref2, name_ref1)
     {
         HASH_DELETE(hlink, name_hash2, name_ref2);
<span style="background: #ffdddd; color: #000000">-        free(name_ref2->name);
</span><span style="background: #ddffdd; color: #000000">+        free(name_ref2->name_record);
</span>         free(name_ref2);
     }
 
</code></pre>

<br>
</li>
<li id="f82b13d5e971dfa7a0cea839dd9d819c">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-8">
<strong>
darshan-util/darshan-hdf5-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-hdf5-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-hdf5-logutils.c
</span><span style="color: #aaaaaa">@@ -55,7 +55,7 @@ static int darshan_log_get_hdf5_file(darshan_fd fd, void* hdf5_buf)
</span>     int i;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmod(fd, DARSHAN_HDF5_MOD, hdf5_buf,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mod(fd, DARSHAN_HDF5_MOD, hdf5_buf,
</span>         sizeof(struct darshan_hdf5_file));
     if(ret < 0)
         return(-1);
<span style="color: #aaaaaa">@@ -84,7 +84,7 @@ static int darshan_log_put_hdf5_file(darshan_fd fd, void* hdf5_buf, int ver)
</span>     struct darshan_hdf5_file *file = (struct darshan_hdf5_file *)hdf5_buf;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmod(fd, DARSHAN_HDF5_MOD, file,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mod(fd, DARSHAN_HDF5_MOD, file,
</span>         sizeof(struct darshan_hdf5_file), ver);
     if(ret < 0)
         return(-1);
</code></pre>

<br>
</li>
<li id="ba4d174bce4109eebf5db0040421eba2">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-9">
<strong>
darshan-util/darshan-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-logutils.c
</span><span style="color: #aaaaaa">@@ -27,7 +27,7 @@
</span>  */
 #define DARSHAN_HEADER_REGION_ID    (-3)
 #define DARSHAN_JOB_REGION_ID       (-2)
<span style="background: #ffdddd; color: #000000">-#define DARSHAN_REC_MAP_REGION_ID   (-1)
</span><span style="background: #ddffdd; color: #000000">+#define DARSHAN_NAME_MAP_REGION_ID  (-1)
</span> 
 struct darshan_dz_state
 {
<span style="color: #aaaaaa">@@ -66,8 +66,8 @@ struct darshan_fd_int_state
</span>     struct darshan_dz_state dz;
 };
 
<span style="background: #ffdddd; color: #000000">-static int darshan_log_getheader(darshan_fd fd);
-static int darshan_log_putheader(darshan_fd fd);
</span><span style="background: #ddffdd; color: #000000">+static int darshan_log_get_header(darshan_fd fd);
+static int darshan_log_put_header(darshan_fd fd);
</span> static int darshan_log_seek(darshan_fd fd, off_t offset);
 static int darshan_log_read(darshan_fd fd, void *buf, int len);
 static int darshan_log_write(darshan_fd fd, void *buf, int len);
<span style="color: #aaaaaa">@@ -136,7 +136,7 @@ darshan_fd darshan_log_open(const char *name)
</span>     strncpy(tmp_fd->state->logfile_path, name, PATH_MAX);
 
     /* read the header from the log file to init fd data structures */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getheader(tmp_fd);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_header(tmp_fd);
</span>     if(ret < 0)
     {
         fprintf(stderr, "Error: failed to read darshan log file header.\n");
<span style="color: #aaaaaa">@@ -229,13 +229,13 @@ darshan_fd darshan_log_create(const char *name, enum darshan_comp_type comp_type
</span>     return(tmp_fd);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_getjob()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_get_job()
</span>  *
  * read job level metadata from the darshan log file
  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_getjob(darshan_fd fd, struct darshan_job *job)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_job(darshan_fd fd, struct darshan_job *job)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     char job_buf[DARSHAN_JOB_RECORD_SIZE] = {0};
<span style="color: #aaaaaa">@@ -275,13 +275,13 @@ int darshan_log_getjob(darshan_fd fd, struct darshan_job *job)
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_putjob()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_put_job()
</span>  *
  * write job level metadata to darshan log file
  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_putjob(darshan_fd fd, struct darshan_job *job)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_job(darshan_fd fd, struct darshan_job *job)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     struct darshan_job job_copy;
<span style="color: #aaaaaa">@@ -316,13 +316,13 @@ int darshan_log_putjob(darshan_fd fd, struct darshan_job *job)
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_getexe()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_get_exe()
</span>  *
  * reads the application exe name from darshan log file
  * 
  * returns 0 on success, -1 on failure 
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_getexe(darshan_fd fd, char *buf)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_exe(darshan_fd fd, char *buf)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     char *newline;
<span style="color: #aaaaaa">@@ -334,7 +334,7 @@ int darshan_log_getexe(darshan_fd fd, char *buf)
</span>     if(!(state->exe_mnt_data))
     {
         struct darshan_job job;
<span style="background: #ffdddd; color: #000000">-        ret = darshan_log_getjob(fd, &job);
</span><span style="background: #ddffdd; color: #000000">+        ret = darshan_log_get_job(fd, &job);
</span> 
         if(ret < 0 || !(state->exe_mnt_data))
             return(-1);
<span style="color: #aaaaaa">@@ -350,7 +350,7 @@ int darshan_log_getexe(darshan_fd fd, char *buf)
</span>     return (0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_putexe()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_put_exe()
</span>  *
  * wrties the application exe name to darshan log file
  * NOTE: this needs to be called immediately following put_job as it
<span style="color: #aaaaaa">@@ -359,7 +359,7 @@ int darshan_log_getexe(darshan_fd fd, char *buf)
</span>  *
  * returns 0 on success, -1 on failure 
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_putexe(darshan_fd fd, char *buf)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_exe(darshan_fd fd, char *buf)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     int len = strlen(buf);
<span style="color: #aaaaaa">@@ -378,7 +378,7 @@ int darshan_log_putexe(darshan_fd fd, char *buf)
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_getmounts()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_get_mounts()
</span>  * 
  * retrieves mount table information from the log. Note that mnt_pts and
  * fs_types are arrays that will be allocated by the function and must be
<span style="color: #aaaaaa">@@ -386,7 +386,7 @@ int darshan_log_putexe(darshan_fd fd, char *buf)
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_mounts(darshan_fd fd, char*** mnt_pts,
</span>     char*** fs_types, int* count)
 {
     struct darshan_fd_int_state *state = fd->state;
<span style="color: #aaaaaa">@@ -400,7 +400,7 @@ int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span>     if(!(state->exe_mnt_data))
     {
         struct darshan_job job;
<span style="background: #ffdddd; color: #000000">-        ret = darshan_log_getjob(fd, &job);
</span><span style="background: #ddffdd; color: #000000">+        ret = darshan_log_get_job(fd, &job);
</span> 
         if(ret < 0 || !(state->exe_mnt_data))
             return(-1);
<span style="color: #aaaaaa">@@ -453,7 +453,7 @@ int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_putmounts()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_put_mounts()
</span>  *
  * writes mount information to the darshan log file
  * NOTE: this function call should follow immediately after the call
<span style="color: #aaaaaa">@@ -462,7 +462,7 @@ int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_putmounts(darshan_fd fd, char** mnt_pts, char** fs_types, int count)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_mounts(darshan_fd fd, char** mnt_pts, char** fs_types, int count)
</span> {
     struct darshan_fd_int_state *state = fd->state;
     int i;
<span style="color: #aaaaaa">@@ -496,122 +496,112 @@ int darshan_log_putmounts(darshan_fd fd, char** mnt_pts, char** fs_types, int co
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_gethash()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_get_namehash()
</span>  *
<span style="background: #ffdddd; color: #000000">- * read the hash of records from the darshan log file
</span><span style="background: #ddffdd; color: #000000">+ * read the hash of name records from the darshan log file
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_gethash(darshan_fd fd, struct darshan_record_ref **hash)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_namehash(darshan_fd fd, struct darshan_name_record_ref **hash)
</span> {
     struct darshan_fd_int_state *state = fd->state;
<span style="background: #ffdddd; color: #000000">-    char *hash_buf;
-    int hash_buf_sz;
-    char *buf_ptr;
-    darshan_record_id *rec_id_ptr;
-    char *path_ptr;
</span><span style="background: #ddffdd; color: #000000">+    char *name_rec_buf;
</span>     char *tmp_p;
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *ref;
</span><span style="background: #ddffdd; color: #000000">+    int name_rec_buf_sz;
</span>     int read;
     int read_req_sz;
<span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *ref;
+    struct darshan_name_record *name_rec;
</span>     int buf_rem = 0;
<span style="background: #ddffdd; color: #000000">+    int rec_len;
</span> 
     assert(state);
 
<span style="background: #ffdddd; color: #000000">-    /* just return if there is no record mapping data */
-    if(fd->rec_map.len == 0)
</span><span style="background: #ddffdd; color: #000000">+    /* just return if there is no name record mapping data */
+    if(fd->name_map.len == 0)
</span>     {
         *hash = NULL;
         return(0);
     }
 
<span style="background: #ffdddd; color: #000000">-    /* default to hash buffer twice as big as default compression buf */
-    hash_buf = malloc(DARSHAN_DEF_COMP_BUF_SZ * 2);
-    if(!hash_buf)
</span><span style="background: #ddffdd; color: #000000">+    /* default to buffer twice as big as default compression buf */
+    name_rec_buf_sz = DARSHAN_DEF_COMP_BUF_SZ * 2;
+    name_rec_buf = malloc(name_rec_buf_sz);
+    if(!name_rec_buf)
</span>         return(-1);
<span style="background: #ffdddd; color: #000000">-    memset(hash_buf, 0, DARSHAN_DEF_COMP_BUF_SZ * 2);
-    hash_buf_sz = DARSHAN_DEF_COMP_BUF_SZ * 2;
</span><span style="background: #ddffdd; color: #000000">+    memset(name_rec_buf, 0, name_rec_buf_sz);
</span> 
     do
     {
<span style="background: #ffdddd; color: #000000">-        /* read chunks of the darshan record id -> file name mapping from log file,
</span><span style="background: #ddffdd; color: #000000">+        /* read chunks of the darshan record id -> name mapping from log file,
</span>          * constructing a hash table in the process
          */
<span style="background: #ffdddd; color: #000000">-        read_req_sz = hash_buf_sz - buf_rem;
-        read = darshan_log_dzread(fd, DARSHAN_REC_MAP_REGION_ID,
-            hash_buf + buf_rem, read_req_sz);
</span><span style="background: #ddffdd; color: #000000">+        read_req_sz = name_rec_buf_sz - buf_rem;
+        read = darshan_log_dzread(fd, DARSHAN_NAME_MAP_REGION_ID,
+            name_rec_buf + buf_rem, read_req_sz);
</span>         if(read < 0)
         {
<span style="background: #ffdddd; color: #000000">-            fprintf(stderr, "Error: failed to read record hash from darshan log file.\n");
-            free(hash_buf);
</span><span style="background: #ddffdd; color: #000000">+            fprintf(stderr, "Error: failed to read name hash from darshan log file.\n");
+            free(name_rec_buf);
</span>             return(-1);
         }
<span style="background: #ddffdd; color: #000000">+        buf_rem += read;
</span> 
<span style="background: #ffdddd; color: #000000">-        /* work through the hash buffer -- deserialize the mapping data and
</span><span style="background: #ddffdd; color: #000000">+        /* work through the name record buffer -- deserialize the mapping data and
</span>          * add to the output hash table
          * NOTE: these mapping pairs are variable in length, so we have to be able
          * to handle incomplete mappings temporarily here
          */
<span style="background: #ffdddd; color: #000000">-        buf_ptr = hash_buf;
-        buf_rem += read;
-        while(buf_rem > (sizeof(darshan_record_id) + 1))
</span><span style="background: #ddffdd; color: #000000">+        name_rec = (struct darshan_name_record *)name_rec_buf;
+        while(buf_rem > sizeof(darshan_record_id) + 1)
</span>         {
<span style="background: #ffdddd; color: #000000">-            tmp_p = buf_ptr + sizeof(darshan_record_id);
-            while(tmp_p < (buf_ptr + buf_rem))
</span><span style="background: #ddffdd; color: #000000">+            if(strnlen(name_rec->name, buf_rem - sizeof(darshan_record_id)) ==
+                (buf_rem - sizeof(darshan_record_id)))
</span>             {
<span style="background: #ffdddd; color: #000000">-                /* look for terminating null character for record name */
-                if(*tmp_p == '\0')
-                    break;
-                tmp_p++;
-            }
-            if(*tmp_p != '\0')
</span><span style="background: #ddffdd; color: #000000">+                /* if this record name's terminating null character is not
+                 * present, we need to read more of the buffer before continuing
+                 */
</span>                 break;
<span style="background: #ffdddd; color: #000000">-
-            /* get pointers for each field of this darshan record */
-            /* NOTE: darshan record hash serialization method: 
-             *          ... darshan_record_id | path '\0' ...
-             */
-            rec_id_ptr = (darshan_record_id *)buf_ptr;
-            buf_ptr += sizeof(darshan_record_id);
-            path_ptr = (char *)buf_ptr;
</span><span style="background: #ddffdd; color: #000000">+            }
</span> 
             if(fd->swap_flag)
             {
                 /* we need to sort out endianness issues before deserializing */
<span style="background: #ffdddd; color: #000000">-                DARSHAN_BSWAP64(rec_id_ptr);
</span><span style="background: #ddffdd; color: #000000">+                DARSHAN_BSWAP64(&(name_rec->id));
</span>             }
 
<span style="background: #ffdddd; color: #000000">-            HASH_FIND(hlink, *hash, rec_id_ptr, sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+            HASH_FIND(hlink, *hash, &(name_rec->id), sizeof(darshan_record_id), ref);
</span>             if(!ref)
             {
<span style="background: #ddffdd; color: #000000">+                rec_len = sizeof(darshan_record_id) + strlen(name_rec->name) + 1;
</span>                 ref = malloc(sizeof(*ref));
                 if(!ref)
                 {
<span style="background: #ffdddd; color: #000000">-                    free(hash_buf);
</span><span style="background: #ddffdd; color: #000000">+                    free(name_rec_buf);
</span>                     return(-1);
                 }
<span style="background: #ffdddd; color: #000000">-                ref->name = malloc(strlen(path_ptr) + 1);
-                if(!ref->name)
</span><span style="background: #ddffdd; color: #000000">+                ref->name_record = malloc(rec_len);
+                if(!ref->name_record)
</span>                 {
                     free(ref);
<span style="background: #ffdddd; color: #000000">-                    free(hash_buf);
</span><span style="background: #ddffdd; color: #000000">+                    free(name_rec_buf);
</span>                     return(-1);
                 }
 
<span style="background: #ffdddd; color: #000000">-                /* set the fields for this record */
-                ref->id = *rec_id_ptr;
-                strcpy(ref->name, path_ptr);
</span><span style="background: #ddffdd; color: #000000">+                /* copy the name record over from the hash buffer */
+                memcpy(ref->name_record, name_rec, rec_len);
</span> 
                 /* add this record to the hash */
<span style="background: #ffdddd; color: #000000">-                HASH_ADD(hlink, *hash, id, sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+                HASH_ADD(hlink, *hash, name_record->id, sizeof(darshan_record_id), ref);
</span>             }
 
<span style="background: #ffdddd; color: #000000">-            buf_ptr += strlen(path_ptr) + 1;
-            buf_rem -= (sizeof(darshan_record_id) + strlen(path_ptr) + 1);
</span><span style="background: #ddffdd; color: #000000">+            tmp_p = (char *)name_rec + rec_len;
+            name_rec = (struct darshan_name_record *)tmp_p;
+            buf_rem -= rec_len;
</span>         }
 
         /* copy any leftover data to beginning of buffer to parse next */
<span style="background: #ffdddd; color: #000000">-        memcpy(hash_buf, buf_ptr, buf_rem);
</span><span style="background: #ddffdd; color: #000000">+        memcpy(name_rec_buf, name_rec, buf_rem);
</span> 
         /* we keep reading until we get a short read informing us we have
          * read all of the record hash
<span style="color: #aaaaaa">@@ -619,74 +609,64 @@ int darshan_log_gethash(darshan_fd fd, struct darshan_record_ref **hash)
</span>     } while(read == read_req_sz);
     assert(buf_rem == 0);
 
<span style="background: #ffdddd; color: #000000">-    free(hash_buf);
</span><span style="background: #ddffdd; color: #000000">+    free(name_rec_buf);
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_puthash()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_put_namehash()
</span>  *
<span style="background: #ffdddd; color: #000000">- * writes the hash table of records to the darshan log file
</span><span style="background: #ddffdd; color: #000000">+ * writes the hash table of name records to the darshan log file
</span>  * NOTE: this function call should follow immediately after the call
  * to darshan_log_putmounts(), as it assumes the darshan log file pointer
  * is pointing to the offset immediately following the mount information
  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_puthash(darshan_fd fd, struct darshan_record_ref *hash)
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_namehash(darshan_fd fd, struct darshan_name_record_ref *hash)
</span> {
     struct darshan_fd_int_state *state = fd->state;
<span style="background: #ffdddd; color: #000000">-    char *hash_buf;
-    int hash_buf_sz;
-    struct darshan_record_ref *ref, *tmp;
-    char *buf_ptr;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *ref, *tmp;
+    struct darshan_name_record_ref *name_rec;
+    int name_rec_len;
</span>     int wrote;
 
     assert(state);
 
     /* allocate memory for largest possible hash record */
<span style="background: #ffdddd; color: #000000">-    hash_buf_sz = sizeof(darshan_record_id) + PATH_MAX + 1;
-    hash_buf = malloc(hash_buf_sz);
-    if(!hash_buf)
</span><span style="background: #ddffdd; color: #000000">+    name_rec = malloc(sizeof(struct darshan_name_record) + PATH_MAX);
+    if(!name_rec)
</span>         return(-1);
<span style="background: #ffdddd; color: #000000">-    memset(hash_buf, 0, hash_buf_sz);
</span><span style="background: #ddffdd; color: #000000">+    memset(name_rec, 0, sizeof(struct darshan_name_record) + PATH_MAX);
</span> 
     /* individually serialize each hash record and write to log file */
     HASH_ITER(hlink, hash, ref, tmp)
     {
<span style="background: #ffdddd; color: #000000">-        buf_ptr = hash_buf;
-
-        /* the hash buffer has space to serialize this record
-         * NOTE: darshan record hash serialization method: 
-         *          ... darshan_record_id | path '\0' ...
-         */
-        *((darshan_record_id *)buf_ptr) = ref->id;
-        buf_ptr += sizeof(darshan_record_id);
-        strcpy(buf_ptr, ref->name);
-        buf_ptr += strlen(ref->name) + 1;
</span><span style="background: #ddffdd; color: #000000">+        name_rec_len = sizeof(struct darshan_name_record) + strlen(ref->name_record->name);
+        memcpy(name_rec, ref->name_record, name_rec_len);
</span> 
         /* write this hash entry to log file */
<span style="background: #ffdddd; color: #000000">-        wrote = darshan_log_dzwrite(fd, DARSHAN_REC_MAP_REGION_ID,
-            hash_buf, (buf_ptr - hash_buf));
-        if(wrote != (buf_ptr - hash_buf))
</span><span style="background: #ddffdd; color: #000000">+        wrote = darshan_log_dzwrite(fd, DARSHAN_NAME_MAP_REGION_ID,
+            name_rec, name_rec_len);
+        if(wrote != name_rec_len)
</span>         {
             state->err = -1;
<span style="background: #ffdddd; color: #000000">-            fprintf(stderr, "Error: failed to write record hash to darshan log file.\n");
-            free(hash_buf);
</span><span style="background: #ddffdd; color: #000000">+            fprintf(stderr, "Error: failed to write name hash to darshan log file.\n");
+            free(name_rec);
</span>             return(-1);
         }
     }
 
<span style="background: #ffdddd; color: #000000">-    free(hash_buf);
</span><span style="background: #ddffdd; color: #000000">+    free(name_rec);
</span>     return(0);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_getmod()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_get_mod()
</span>  *
  * get a chunk of module data from the darshan log file
  *
  * returns number of bytes read on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_getmod(darshan_fd fd, darshan_module_id mod_id,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_mod(darshan_fd fd, darshan_module_id mod_id,
</span>     void *mod_buf, int mod_buf_sz)
 {
     struct darshan_fd_int_state *state = fd->state;
<span style="color: #aaaaaa">@@ -716,7 +696,7 @@ int darshan_log_getmod(darshan_fd fd, darshan_module_id mod_id,
</span>     return(ret);
 }
 
<span style="background: #ffdddd; color: #000000">-/* darshan_log_putmod()
</span><span style="background: #ddffdd; color: #000000">+/* darshan_log_put_mod()
</span>  *
  * write a chunk of module data to the darshan log file
  * NOTE: this function call should be called directly after the
<span style="color: #aaaaaa">@@ -728,7 +708,7 @@ int darshan_log_getmod(darshan_fd fd, darshan_module_id mod_id,
</span>  *
  * returns number of bytes written on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-int darshan_log_putmod(darshan_fd fd, darshan_module_id mod_id,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_mod(darshan_fd fd, darshan_module_id mod_id,
</span>     void *mod_buf, int mod_buf_sz, int ver)
 {
     struct darshan_fd_int_state *state = fd->state;
<span style="color: #aaaaaa">@@ -798,7 +778,7 @@ void darshan_log_close(darshan_fd fd)
</span>         /* if no errors flushing, write the log header before closing */
         if(state->err != -1)
         {
<span style="background: #ffdddd; color: #000000">-            ret = darshan_log_putheader(fd);
</span><span style="background: #ddffdd; color: #000000">+            ret = darshan_log_put_header(fd);
</span>             if(ret < 0)
                 state->err = -1;
         }
<span style="color: #aaaaaa">@@ -830,7 +810,7 @@ void darshan_log_close(darshan_fd fd)
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-static int darshan_log_getheader(darshan_fd fd)
</span><span style="background: #ddffdd; color: #000000">+static int darshan_log_get_header(darshan_fd fd)
</span> {
     struct darshan_header header;
     int i;
<span style="color: #aaaaaa">@@ -889,8 +869,8 @@ static int darshan_log_getheader(darshan_fd fd)
</span>             fd->swap_flag = 1;
 
             /* swap the log map variables in the header */
<span style="background: #ffdddd; color: #000000">-            DARSHAN_BSWAP64(&(header.rec_map.off));
-            DARSHAN_BSWAP64(&(header.rec_map.len));
</span><span style="background: #ddffdd; color: #000000">+            DARSHAN_BSWAP64(&(header.name_map.off));
+            DARSHAN_BSWAP64(&(header.name_map.len));
</span>             for(i = 0; i < DARSHAN_MAX_MODS; i++)
             {
                 DARSHAN_BSWAP64(&(header.mod_map[i].off));
<span style="color: #aaaaaa">@@ -911,12 +891,12 @@ static int darshan_log_getheader(darshan_fd fd)
</span>     memcpy(fd->mod_ver, header.mod_ver, DARSHAN_MAX_MODS * sizeof(uint32_t));
 
     /* save the mapping of data within log file to this file descriptor */
<span style="background: #ffdddd; color: #000000">-    memcpy(&fd->rec_map, &(header.rec_map), sizeof(struct darshan_log_map));
</span><span style="background: #ddffdd; color: #000000">+    memcpy(&fd->name_map, &(header.name_map), sizeof(struct darshan_log_map));
</span>     memcpy(&fd->mod_map, &(header.mod_map), DARSHAN_MAX_MODS * sizeof(struct darshan_log_map));
 
     /* there may be nothing following the job data, so safety check map */
     fd->job_map.off = sizeof(struct darshan_header);
<span style="background: #ffdddd; color: #000000">-    if(fd->rec_map.off == 0)
</span><span style="background: #ddffdd; color: #000000">+    if(fd->name_map.off == 0)
</span>     {
         for(i = 0; i < DARSHAN_MAX_MODS; i++)
         {
<span style="color: #aaaaaa">@@ -940,7 +920,7 @@ static int darshan_log_getheader(darshan_fd fd)
</span>     }
     else
     {
<span style="background: #ffdddd; color: #000000">-        fd->job_map.len = fd->rec_map.off - fd->job_map.off;
</span><span style="background: #ddffdd; color: #000000">+        fd->job_map.len = fd->name_map.off - fd->job_map.off;
</span>     }
 
     return(0);
<span style="color: #aaaaaa">@@ -950,7 +930,7 @@ static int darshan_log_getheader(darshan_fd fd)
</span>  *
  * returns 0 on success, -1 on failure
  */
<span style="background: #ffdddd; color: #000000">-static int darshan_log_putheader(darshan_fd fd)
</span><span style="background: #ddffdd; color: #000000">+static int darshan_log_put_header(darshan_fd fd)
</span> {
     struct darshan_header header;
     int ret;
<span style="color: #aaaaaa">@@ -967,7 +947,7 @@ static int darshan_log_putheader(darshan_fd fd)
</span>     header.magic_nr = DARSHAN_MAGIC_NR;
     header.comp_type = fd->comp_type;
     header.partial_flag = fd->partial_flag;
<span style="background: #ffdddd; color: #000000">-    memcpy(&header.rec_map, &fd->rec_map, sizeof(struct darshan_log_map));
</span><span style="background: #ddffdd; color: #000000">+    memcpy(&header.name_map, &fd->name_map, sizeof(struct darshan_log_map));
</span>     memcpy(header.mod_map, fd->mod_map, DARSHAN_MAX_MODS * sizeof(struct darshan_log_map));
     memcpy(header.mod_ver, fd->mod_ver, DARSHAN_MAX_MODS * sizeof(uint32_t));
 
<span style="color: #aaaaaa">@@ -1200,8 +1180,8 @@ static int darshan_log_dzread(darshan_fd fd, int region_id, void *buf, int len)
</span> 
     if(region_id == DARSHAN_JOB_REGION_ID)
         map = fd->job_map;
<span style="background: #ffdddd; color: #000000">-    else if(region_id == DARSHAN_REC_MAP_REGION_ID)
-        map = fd->rec_map;
</span><span style="background: #ddffdd; color: #000000">+    else if(region_id == DARSHAN_NAME_MAP_REGION_ID)
+        map = fd->name_map;
</span>     else
         map = fd->mod_map[region_id];
 
<span style="color: #aaaaaa">@@ -1249,8 +1229,8 @@ static int darshan_log_dzwrite(darshan_fd fd, int region_id, void *buf, int len)
</span> 
     if(region_id == DARSHAN_JOB_REGION_ID)
         map_p = &(fd->job_map);
<span style="background: #ffdddd; color: #000000">-    else if(region_id == DARSHAN_REC_MAP_REGION_ID)
-        map_p = &(fd->rec_map);
</span><span style="background: #ddffdd; color: #000000">+    else if(region_id == DARSHAN_NAME_MAP_REGION_ID)
+        map_p = &(fd->name_map);
</span>     else
         map_p = &(fd->mod_map[region_id]);
 
<span style="color: #aaaaaa">@@ -1404,8 +1384,8 @@ static int darshan_log_libz_flush(darshan_fd fd, int region_id)
</span> 
     if(region_id == DARSHAN_JOB_REGION_ID)
         map_p = &(fd->job_map);
<span style="background: #ffdddd; color: #000000">-    else if(region_id == DARSHAN_REC_MAP_REGION_ID)
-        map_p = &(fd->rec_map);
</span><span style="background: #ddffdd; color: #000000">+    else if(region_id == DARSHAN_NAME_MAP_REGION_ID)
+        map_p = &(fd->name_map);
</span>     else
         map_p = &(fd->mod_map[region_id]);
 
<span style="color: #aaaaaa">@@ -1569,8 +1549,8 @@ static int darshan_log_bzip2_flush(darshan_fd fd, int region_id)
</span> 
     if(region_id == DARSHAN_JOB_REGION_ID)
         map_p = &(fd->job_map);
<span style="background: #ffdddd; color: #000000">-    else if(region_id == DARSHAN_REC_MAP_REGION_ID)
-        map_p = &(fd->rec_map);
</span><span style="background: #ddffdd; color: #000000">+    else if(region_id == DARSHAN_NAME_MAP_REGION_ID)
+        map_p = &(fd->name_map);
</span>     else
         map_p = &(fd->mod_map[region_id]);
 
</code></pre>

<br>
</li>
<li id="bbc2314e774c28d45e241dbe5d218f70">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-10">
<strong>
darshan-util/darshan-logutils.h
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-logutils.h
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-logutils.h
</span><span style="color: #aaaaaa">@@ -33,7 +33,7 @@ struct darshan_fd_s
</span>     enum darshan_comp_type comp_type;
     /* log file offset/length maps for each log file region */
     struct darshan_log_map job_map;
<span style="background: #ffdddd; color: #000000">-    struct darshan_log_map rec_map;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_log_map name_map;
</span>     struct darshan_log_map mod_map[DARSHAN_MAX_MODS];
     /* module-specific log-format versions contained in log */
     uint32_t mod_ver[DARSHAN_MAX_MODS];
<span style="color: #aaaaaa">@@ -43,10 +43,9 @@ struct darshan_fd_s
</span> };
 typedef struct darshan_fd_s* darshan_fd;
 
<span style="background: #ffdddd; color: #000000">-struct darshan_record_ref
</span><span style="background: #ddffdd; color: #000000">+struct darshan_name_record_ref
</span> {
<span style="background: #ffdddd; color: #000000">-    char *name;
-    darshan_record_id id;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record *name_record;
</span>     UT_hash_handle hlink;
 };
 
<span style="color: #aaaaaa">@@ -119,19 +118,19 @@ extern struct darshan_mod_logutil_funcs *mod_logutils[];
</span> darshan_fd darshan_log_open(const char *name);
 darshan_fd darshan_log_create(const char *name, enum darshan_comp_type comp_type,
     int partial_flag);
<span style="background: #ffdddd; color: #000000">-int darshan_log_getjob(darshan_fd fd, struct darshan_job *job);
-int darshan_log_putjob(darshan_fd fd, struct darshan_job *job);
-int darshan_log_getexe(darshan_fd fd, char *buf);
-int darshan_log_putexe(darshan_fd fd, char *buf);
-int darshan_log_getmounts(darshan_fd fd, char*** mnt_pts,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_job(darshan_fd fd, struct darshan_job *job);
+int darshan_log_put_job(darshan_fd fd, struct darshan_job *job);
+int darshan_log_get_exe(darshan_fd fd, char *buf);
+int darshan_log_put_exe(darshan_fd fd, char *buf);
+int darshan_log_get_mounts(darshan_fd fd, char*** mnt_pts,
</span>     char*** fs_types, int* count);
<span style="background: #ffdddd; color: #000000">-int darshan_log_putmounts(darshan_fd fd, char** mnt_pts,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_mounts(darshan_fd fd, char** mnt_pts,
</span>     char** fs_types, int count);
<span style="background: #ffdddd; color: #000000">-int darshan_log_gethash(darshan_fd fd, struct darshan_record_ref **hash);
-int darshan_log_puthash(darshan_fd fd, struct darshan_record_ref *hash);
-int darshan_log_getmod(darshan_fd fd, darshan_module_id mod_id,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_get_namehash(darshan_fd fd, struct darshan_name_record_ref **hash);
+int darshan_log_put_namehash(darshan_fd fd, struct darshan_name_record_ref *hash);
+int darshan_log_get_mod(darshan_fd fd, darshan_module_id mod_id,
</span>     void *mod_buf, int mod_buf_sz);
<span style="background: #ffdddd; color: #000000">-int darshan_log_putmod(darshan_fd fd, darshan_module_id mod_id,
</span><span style="background: #ddffdd; color: #000000">+int darshan_log_put_mod(darshan_fd fd, darshan_module_id mod_id,
</span>     void *mod_buf, int mod_buf_sz, int ver);
 void darshan_log_close(darshan_fd file);
 
</code></pre>

<br>
</li>
<li id="02c44bcb0c30e1642888c0330c8d112c">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-11">
<strong>
darshan-util/darshan-merge.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-merge.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-merge.c
</span><span style="color: #aaaaaa">@@ -192,9 +192,9 @@ int main(int argc, char *argv[])
</span>     char **merge_mnt_pts;
     char **merge_fs_types;
     int merge_mnt_count = 0;
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *in_hash = NULL;
-    struct darshan_record_ref *merge_hash = NULL;
-    struct darshan_record_ref *ref, *tmp, *found;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *in_hash = NULL;
+    struct darshan_name_record_ref *merge_hash = NULL;
+    struct darshan_name_record_ref *ref, *tmp, *found;
</span>     struct darshan_shared_record_ref *shared_rec_hash = NULL;
     struct darshan_shared_record_ref *sref, *stmp;
     struct darshan_base_record *base_rec;
<span style="color: #aaaaaa">@@ -225,7 +225,7 @@ int main(int argc, char *argv[])
</span>         }
 
         /* read job-level metadata from the input file */
<span style="background: #ffdddd; color: #000000">-        ret = darshan_log_getjob(in_fd, &in_job);
</span><span style="background: #ddffdd; color: #000000">+        ret = darshan_log_get_job(in_fd, &in_job);
</span>         if(ret < 0)
         {
             fprintf(stderr,
<span style="color: #aaaaaa">@@ -254,7 +254,7 @@ int main(int argc, char *argv[])
</span>             /* get job data, exe, & mounts directly from the first input log */
             memcpy(&merge_job, &in_job, sizeof(struct darshan_job));
 
<span style="background: #ffdddd; color: #000000">-            ret = darshan_log_getexe(in_fd, merge_exe);
</span><span style="background: #ddffdd; color: #000000">+            ret = darshan_log_get_exe(in_fd, merge_exe);
</span>             if(ret < 0)
             {
                 fprintf(stderr,
<span style="color: #aaaaaa">@@ -264,7 +264,7 @@ int main(int argc, char *argv[])
</span>                 return(-1);
             }
 
<span style="background: #ffdddd; color: #000000">-            ret = darshan_log_getmounts(in_fd, &merge_mnt_pts,
</span><span style="background: #ddffdd; color: #000000">+            ret = darshan_log_get_mounts(in_fd, &merge_mnt_pts,
</span>                 &merge_fs_types, &merge_mnt_count);
             if(ret < 0)
             {
<span style="color: #aaaaaa">@@ -285,7 +285,7 @@ int main(int argc, char *argv[])
</span>         }
 
         /* read the hash of ids->names for the input log */
<span style="background: #ffdddd; color: #000000">-        ret = darshan_log_gethash(in_fd, &in_hash);
</span><span style="background: #ddffdd; color: #000000">+        ret = darshan_log_get_namehash(in_fd, &in_hash);
</span>         if(ret < 0)
         {
             fprintf(stderr,
<span style="color: #aaaaaa">@@ -295,17 +295,19 @@ int main(int argc, char *argv[])
</span>             return(-1);
         }
 
<span style="background: #ffdddd; color: #000000">-        /* iterate the input hash, copying over record_id->file_name mappings
</span><span style="background: #ddffdd; color: #000000">+        /* iterate the input hash, copying over record id->name mappings
</span>          * that have not already been copied to the output hash
          */
         HASH_ITER(hlink, in_hash, ref, tmp)
         {
<span style="background: #ffdddd; color: #000000">-            HASH_FIND(hlink, merge_hash, &(ref->id), sizeof(darshan_record_id), found);
</span><span style="background: #ddffdd; color: #000000">+            HASH_FIND(hlink, merge_hash, &(ref->name_record->id),
+                sizeof(darshan_record_id), found);
</span>             if(!found)
             {
<span style="background: #ffdddd; color: #000000">-                HASH_ADD(hlink, merge_hash, id, sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+                HASH_ADD(hlink, merge_hash, name_record->id,
+                    sizeof(darshan_record_id), ref);
</span>             }
<span style="background: #ffdddd; color: #000000">-            else if(strcmp(ref->name, found->name))
</span><span style="background: #ddffdd; color: #000000">+            else if(strcmp(ref->name_record->name, found->name_record->name))
</span>             {
                 fprintf(stderr,
                     "Error: invalid Darshan record table entry.\n");
<span style="color: #aaaaaa">@@ -330,7 +332,7 @@ int main(int argc, char *argv[])
</span>     }
 
     /* write the darshan job info, exe string, and mount data to output file */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putjob(merge_fd, &merge_job);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_job(merge_fd, &merge_job);
</span>     if(ret < 0)
     {
         fprintf(stderr, "Error: unable to write job data to output darshan log.\n");
<span style="color: #aaaaaa">@@ -339,7 +341,7 @@ int main(int argc, char *argv[])
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putexe(merge_fd, merge_exe);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_exe(merge_fd, merge_exe);
</span>     if(ret < 0)
     {
         fprintf(stderr, "Error: unable to write exe string to output darshan log.\n");
<span style="color: #aaaaaa">@@ -348,7 +350,7 @@ int main(int argc, char *argv[])
</span>         return(-1);
     }
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmounts(merge_fd, merge_mnt_pts, merge_fs_types, merge_mnt_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mounts(merge_fd, merge_mnt_pts, merge_fs_types, merge_mnt_count);
</span>     if(ret < 0)
     {
         fprintf(stderr, "Error: unable to write mount data to output darshan log.\n");
<span style="color: #aaaaaa">@@ -358,7 +360,7 @@ int main(int argc, char *argv[])
</span>     }
 
     /* write the merged table of records to output file */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_puthash(merge_fd, merge_hash);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_namehash(merge_fd, merge_hash);
</span>     if(ret < 0)
     {
         fprintf(stderr, "Error: unable to write record table to output darshan log.\n");
</code></pre>

<br>
</li>
<li id="5ddb4a7da6ac3ae899220a2054c79be0">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-12">
<strong>
darshan-util/darshan-mpiio-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-mpiio-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-mpiio-logutils.c
</span><span style="color: #aaaaaa">@@ -55,7 +55,7 @@ static int darshan_log_get_mpiio_file(darshan_fd fd, void* mpiio_buf)
</span>     int i;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmod(fd, DARSHAN_MPIIO_MOD, mpiio_buf,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mod(fd, DARSHAN_MPIIO_MOD, mpiio_buf,
</span>         sizeof(struct darshan_mpiio_file));
     if(ret < 0)
         return(-1);
<span style="color: #aaaaaa">@@ -84,7 +84,7 @@ static int darshan_log_put_mpiio_file(darshan_fd fd, void* mpiio_buf, int ver)
</span>     struct darshan_mpiio_file *file = (struct darshan_mpiio_file *)mpiio_buf;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmod(fd, DARSHAN_MPIIO_MOD, file,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mod(fd, DARSHAN_MPIIO_MOD, file,
</span>         sizeof(struct darshan_mpiio_file), ver);
     if(ret < 0)
         return(-1);
</code></pre>

<br>
</li>
<li id="96c68c4d0376aa9733e6df1aff7dc9f8">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-13">
<strong>
darshan-util/darshan-null-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-null-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-null-logutils.c
</span><span style="color: #aaaaaa">@@ -67,7 +67,7 @@ static int darshan_log_get_null_record(darshan_fd fd, void* null_buf)
</span>     int ret;
 
     /* read a NULL module record from the darshan log file */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmod(fd, DARSHAN_NULL_MOD, null_buf,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mod(fd, DARSHAN_NULL_MOD, null_buf,
</span>         sizeof(struct darshan_null_record));
     if(ret < 0)
         return(-1);
<span style="color: #aaaaaa">@@ -101,7 +101,7 @@ static int darshan_log_put_null_record(darshan_fd fd, void* null_buf, int ver)
</span>     int ret;
 
     /* append NULL record to darshan log file */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmod(fd, DARSHAN_NULL_MOD, rec,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mod(fd, DARSHAN_NULL_MOD, rec,
</span>         sizeof(struct darshan_null_record), ver);
     if(ret < 0)
         return(-1);
</code></pre>

<br>
</li>
<li id="e483fe4e07b9111852a8f4e3e4e61d16">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-14">
<strong>
darshan-util/darshan-parser.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-parser.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-parser.c
</span><span style="color: #aaaaaa">@@ -107,13 +107,13 @@ void posix_accum_file(struct darshan_posix_file *pfile, hash_entry_t *hfile, int
</span> void posix_accum_perf(struct darshan_posix_file *pfile, perf_data_t *pdata);
 void posix_calc_file(hash_entry_t *file_hash, file_data_t *fdata);
 void posix_print_total_file(struct darshan_posix_file *pfile);
<span style="background: #ffdddd; color: #000000">-void posix_file_list(hash_entry_t *file_hash, struct darshan_record_ref *rec_hash, int detail_flag);
</span><span style="background: #ddffdd; color: #000000">+void posix_file_list(hash_entry_t *file_hash, struct darshan_name_record_ref *name_hash, int detail_flag);
</span> 
 void mpiio_accum_file(struct darshan_mpiio_file *mfile, hash_entry_t *hfile, int64_t nprocs);
 void mpiio_accum_perf(struct darshan_mpiio_file *mfile, perf_data_t *pdata);
 void mpiio_calc_file(hash_entry_t *file_hash, file_data_t *fdata);
 void mpiio_print_total_file(struct darshan_mpiio_file *mfile);
<span style="background: #ffdddd; color: #000000">-void mpiio_file_list(hash_entry_t *file_hash, struct darshan_record_ref *rec_hash, int detail_flag);
</span><span style="background: #ddffdd; color: #000000">+void mpiio_file_list(hash_entry_t *file_hash, struct darshan_name_record_ref *name_hash, int detail_flag);
</span> 
 void calc_perf(perf_data_t *pdata, int64_t nprocs);
 
<span style="color: #aaaaaa">@@ -203,8 +203,8 @@ int main(int argc, char **argv)
</span>     char tmp_string[4096] = {0};
     darshan_fd fd;
     struct darshan_job job;
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *rec_hash = NULL;
-    struct darshan_record_ref *ref, *tmp_ref;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *name_hash = NULL;
+    struct darshan_name_record_ref *ref, *tmp_ref;
</span>     int mount_count;
     char** mnt_pts;
     char** fs_types;
<span style="color: #aaaaaa">@@ -234,7 +234,7 @@ int main(int argc, char **argv)
</span>         return(-1);
 
     /* read darshan job info */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getjob(fd, &job);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_job(fd, &job);
</span>     if(ret < 0)
     {
         darshan_log_close(fd);
<span style="color: #aaaaaa">@@ -242,7 +242,7 @@ int main(int argc, char **argv)
</span>     }
 
     /* get the original command line for this job */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getexe(fd, tmp_string);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_exe(fd, tmp_string);
</span>     if(ret < 0)
     {
         darshan_log_close(fd);
<span style="color: #aaaaaa">@@ -250,7 +250,7 @@ int main(int argc, char **argv)
</span>     }
 
     /* get the mount information for this log */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmounts(fd, &mnt_pts, &fs_types, &mount_count);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mounts(fd, &mnt_pts, &fs_types, &mount_count);
</span>     if(ret < 0)
     {
         darshan_log_close(fd);
<span style="color: #aaaaaa">@@ -258,7 +258,7 @@ int main(int argc, char **argv)
</span>     }
 
     /* read hash of darshan records */
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_gethash(fd, &rec_hash);
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_namehash(fd, &name_hash);
</span>     if(ret < 0)
     {
         darshan_log_close(fd);
<span style="color: #aaaaaa">@@ -317,7 +317,7 @@ int main(int argc, char **argv)
</span>     printf("# -------------------------------------------------------\n");
     printf("# header: %zu bytes (uncompressed)\n", sizeof(struct darshan_header));
     printf("# job data: %zu bytes (compressed)\n", fd->job_map.len);
<span style="background: #ffdddd; color: #000000">-    printf("# record table: %zu bytes (compressed)\n", fd->rec_map.len);
</span><span style="background: #ddffdd; color: #000000">+    printf("# record table: %zu bytes (compressed)\n", fd->name_map.len);
</span>     for(i=0; i<DARSHAN_MAX_MODS; i++)
     {
         if(fd->mod_map[i].len)
<span style="color: #aaaaaa">@@ -426,13 +426,13 @@ int main(int argc, char **argv)
</span>             base_rec = (struct darshan_base_record *)mod_buf;
 
             /* get the pathname for this record */
<span style="background: #ffdddd; color: #000000">-            HASH_FIND(hlink, rec_hash, &(base_rec->id), sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+            HASH_FIND(hlink, name_hash, &(base_rec->id), sizeof(darshan_record_id), ref);
</span>             assert(ref);
 
             /* get mount point and fs type associated with this record */
             for(j=0; j<mount_count; j++)
             {
<span style="background: #ffdddd; color: #000000">-                if(strncmp(mnt_pts[j], ref->name, strlen(mnt_pts[j])) == 0)
</span><span style="background: #ddffdd; color: #000000">+                if(strncmp(mnt_pts[j], ref->name_record->name, strlen(mnt_pts[j])) == 0)
</span>                 {
                     mnt_pt = mnt_pts[j];
                     fs_type = fs_types[j];
<span style="color: #aaaaaa">@@ -447,7 +447,7 @@ int main(int argc, char **argv)
</span>             if(mask & OPTION_BASE)
             {
                 /* print the corresponding module data for this record */
<span style="background: #ffdddd; color: #000000">-                mod_logutils[i]->log_print_record(mod_buf, ref->name,
</span><span style="background: #ddffdd; color: #000000">+                mod_logutils[i]->log_print_record(mod_buf, ref->name_record->name,
</span>                     mnt_pt, fs_type, fd->mod_ver[i]);
             }
 
<span style="color: #aaaaaa">@@ -598,16 +598,16 @@ int main(int argc, char **argv)
</span>             if(i == DARSHAN_POSIX_MOD)
             {
                 if(mask & OPTION_FILE_LIST_DETAILED)
<span style="background: #ffdddd; color: #000000">-                    posix_file_list(file_hash, rec_hash, 1);
</span><span style="background: #ddffdd; color: #000000">+                    posix_file_list(file_hash, name_hash, 1);
</span>                 else
<span style="background: #ffdddd; color: #000000">-                    posix_file_list(file_hash, rec_hash, 0);
</span><span style="background: #ddffdd; color: #000000">+                    posix_file_list(file_hash, name_hash, 0);
</span>             }
             else if(i == DARSHAN_MPIIO_MOD)
             {
                 if(mask & OPTION_FILE_LIST_DETAILED)
<span style="background: #ffdddd; color: #000000">-                    mpiio_file_list(file_hash, rec_hash, 1);
</span><span style="background: #ddffdd; color: #000000">+                    mpiio_file_list(file_hash, name_hash, 1);
</span>                 else
<span style="background: #ffdddd; color: #000000">-                    mpiio_file_list(file_hash, rec_hash, 0);
</span><span style="background: #ddffdd; color: #000000">+                    mpiio_file_list(file_hash, name_hash, 0);
</span>             }
         }
 
<span style="color: #aaaaaa">@@ -640,10 +640,10 @@ cleanup:
</span>     free(pdata.rank_cumul_md_time);
 
     /* free record hash data */
<span style="background: #ffdddd; color: #000000">-    HASH_ITER(hlink, rec_hash, ref, tmp_ref)
</span><span style="background: #ddffdd; color: #000000">+    HASH_ITER(hlink, name_hash, ref, tmp_ref)
</span>     {
<span style="background: #ffdddd; color: #000000">-        HASH_DELETE(hlink, rec_hash, ref);
-        free(ref->name);
</span><span style="background: #ddffdd; color: #000000">+        HASH_DELETE(hlink, name_hash, ref);
+        free(ref->name_record);
</span>         free(ref);
     }
 
<span style="color: #aaaaaa">@@ -1413,13 +1413,13 @@ void mpiio_print_total_file(struct darshan_mpiio_file *mfile)
</span> }
 
 void posix_file_list(hash_entry_t *file_hash,
<span style="background: #ffdddd; color: #000000">-                     struct darshan_record_ref *rec_hash,
</span><span style="background: #ddffdd; color: #000000">+                     struct darshan_name_record_ref *name_hash,
</span>                      int detail_flag)
 {
     hash_entry_t *curr = NULL;
     hash_entry_t *tmp = NULL;
     struct darshan_posix_file *file_rec = NULL;
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *ref = NULL;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *ref = NULL;
</span>     int i;
 
     /* list of columns:
<span style="color: #aaaaaa">@@ -1477,12 +1477,12 @@ void posix_file_list(hash_entry_t *file_hash,
</span>         file_rec = (struct darshan_posix_file*)curr->rec_dat;
         assert(file_rec);
 
<span style="background: #ffdddd; color: #000000">-        HASH_FIND(hlink, rec_hash, &(curr->rec_id), sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+        HASH_FIND(hlink, name_hash, &(curr->rec_id), sizeof(darshan_record_id), ref);
</span>         assert(ref);
 
         printf("%" PRIu64 "\t%s\t%" PRId64 "\t%f\t%f",
             curr->rec_id,
<span style="background: #ffdddd; color: #000000">-            ref->name,
</span><span style="background: #ddffdd; color: #000000">+            ref->name_record->name,
</span>             curr->procs,
             curr->slowest_time,
             curr->cumul_time/(double)curr->procs);
<span style="color: #aaaaaa">@@ -1504,13 +1504,13 @@ void posix_file_list(hash_entry_t *file_hash,
</span> }
 
 void mpiio_file_list(hash_entry_t *file_hash,
<span style="background: #ffdddd; color: #000000">-                     struct darshan_record_ref *rec_hash,
</span><span style="background: #ddffdd; color: #000000">+                     struct darshan_name_record_ref *name_hash,
</span>                      int detail_flag)
 {
     hash_entry_t *curr = NULL;
     hash_entry_t *tmp = NULL;
     struct darshan_mpiio_file *file_rec = NULL;
<span style="background: #ffdddd; color: #000000">-    struct darshan_record_ref *ref = NULL;
</span><span style="background: #ddffdd; color: #000000">+    struct darshan_name_record_ref *ref = NULL;
</span>     int i;
 
     /* list of columns:
<span style="color: #aaaaaa">@@ -1571,12 +1571,12 @@ void mpiio_file_list(hash_entry_t *file_hash,
</span>         file_rec = (struct darshan_mpiio_file*)curr->rec_dat;
         assert(file_rec);
 
<span style="background: #ffdddd; color: #000000">-        HASH_FIND(hlink, rec_hash, &(curr->rec_id), sizeof(darshan_record_id), ref);
</span><span style="background: #ddffdd; color: #000000">+        HASH_FIND(hlink, name_hash, &(curr->rec_id), sizeof(darshan_record_id), ref);
</span>         assert(ref);
 
         printf("%" PRIu64 "\t%s\t%" PRId64 "\t%f\t%f",
             curr->rec_id,
<span style="background: #ffdddd; color: #000000">-            ref->name,
</span><span style="background: #ddffdd; color: #000000">+            ref->name_record->name,
</span>             curr->procs,
             curr->slowest_time,
             curr->cumul_time/(double)curr->procs);
</code></pre>

<br>
</li>
<li id="54071697bdb74afd518e691935ab92ab">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-15">
<strong>
darshan-util/darshan-pnetcdf-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-pnetcdf-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-pnetcdf-logutils.c
</span><span style="color: #aaaaaa">@@ -55,7 +55,7 @@ static int darshan_log_get_pnetcdf_file(darshan_fd fd, void* pnetcdf_buf)
</span>     int i;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmod(fd, DARSHAN_PNETCDF_MOD, pnetcdf_buf,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mod(fd, DARSHAN_PNETCDF_MOD, pnetcdf_buf,
</span>         sizeof(struct darshan_pnetcdf_file));
     if(ret < 0)
         return(-1);
<span style="color: #aaaaaa">@@ -84,7 +84,7 @@ static int darshan_log_put_pnetcdf_file(darshan_fd fd, void* pnetcdf_buf, int ve
</span>     struct darshan_pnetcdf_file *file = (struct darshan_pnetcdf_file *)pnetcdf_buf;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmod(fd, DARSHAN_PNETCDF_MOD, file,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mod(fd, DARSHAN_PNETCDF_MOD, file,
</span>         sizeof(struct darshan_pnetcdf_file), ver);
     if(ret < 0)
         return(-1);
</code></pre>

<br>
</li>
<li id="879ee3b75b3b68112858e3c5a60c5a35">
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116#diff-16">
<strong>
darshan-util/darshan-posix-logutils.c
</strong>
</a>
<hr>
<pre class="highlight"><code><span style="background: #ffdddd; color: #000000">--- a/darshan-util/darshan-posix-logutils.c
</span><span style="background: #ddffdd; color: #000000">+++ b/darshan-util/darshan-posix-logutils.c
</span><span style="color: #aaaaaa">@@ -55,7 +55,7 @@ static int darshan_log_get_posix_file(darshan_fd fd, void* posix_buf)
</span>     int i;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_getmod(fd, DARSHAN_POSIX_MOD, posix_buf,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_get_mod(fd, DARSHAN_POSIX_MOD, posix_buf,
</span>         sizeof(struct darshan_posix_file));
     if(ret < 0)
         return(-1);
<span style="color: #aaaaaa">@@ -84,7 +84,7 @@ static int darshan_log_put_posix_file(darshan_fd fd, void* posix_buf, int ver)
</span>     struct darshan_posix_file *file = (struct darshan_posix_file *)posix_buf;
     int ret;
 
<span style="background: #ffdddd; color: #000000">-    ret = darshan_log_putmod(fd, DARSHAN_POSIX_MOD, file,
</span><span style="background: #ddffdd; color: #000000">+    ret = darshan_log_put_mod(fd, DARSHAN_POSIX_MOD, file,
</span>         sizeof(struct darshan_posix_file), ver);
     if(ret < 0)
         return(-1);
</code></pre>

<br>
</li>

</div>
<div class="footer" style="margin-top: 10px">
<p style="color: #777; font-size: small">

<br>
<a href="https://xgitlab.cels.anl.gov/darshan/darshan/compare/94430f41b6f479bf73c4350a26378a1b04c1db0e...999ee9c886eaff3b6a013badbf1f0eb298f2d116">View it on GitLab</a>.
<br>
You're receiving this email because of your account on xgitlab.cels.anl.gov.
If you'd like to receive fewer emails, you can
adjust your notification settings.

</p>
</div>
</body>
</html>