HPCToolkit
name.c
Go to the documentation of this file.
1 // -*-Mode: C++;-*- // technically C99
2 
3 // * BeginRiceCopyright *****************************************************
4 //
5 // $HeadURL$
6 // $Id$
7 //
8 // --------------------------------------------------------------------------
9 // Part of HPCToolkit (hpctoolkit.org)
10 //
11 // Information about sources of support for research and development of
12 // HPCToolkit is at 'hpctoolkit.org' and in 'README.Acknowledgments'.
13 // --------------------------------------------------------------------------
14 //
15 // Copyright ((c)) 2002-2019, Rice University
16 // All rights reserved.
17 //
18 // Redistribution and use in source and binary forms, with or without
19 // modification, are permitted provided that the following conditions are
20 // met:
21 //
22 // * Redistributions of source code must retain the above copyright
23 // notice, this list of conditions and the following disclaimer.
24 //
25 // * Redistributions in binary form must reproduce the above copyright
26 // notice, this list of conditions and the following disclaimer in the
27 // documentation and/or other materials provided with the distribution.
28 //
29 // * Neither the name of Rice University (RICE) nor the names of its
30 // contributors may be used to endorse or promote products derived from
31 // this software without specific prior written permission.
32 //
33 // This software is provided by RICE and contributors "as is" and any
34 // express or implied warranties, including, but not limited to, the
35 // implied warranties of merchantability and fitness for a particular
36 // purpose are disclaimed. In no event shall RICE or contributors be
37 // liable for any direct, indirect, incidental, special, exemplary, or
38 // consequential damages (including, but not limited to, procurement of
39 // substitute goods or services; loss of use, data, or profits; or
40 // business interruption) however caused and on any theory of liability,
41 // whether in contract, strict liability, or tort (including negligence
42 // or otherwise) arising in any way out of the use of this software, even
43 // if advised of the possibility of such damage.
44 //
45 // ******************************************************* EndRiceCopyright *
46 
47 /*****************************************************************************
48  * File: name.c
49  * Purpose: maintain the name of the executable
50  * Modification history:
51  * 28 October 2007 - created - John Mellor-Crummey
52  *****************************************************************************/
53 
54 /******************************************************************************
55  * standard include files
56  *****************************************************************************/
57 #include <strings.h>
58 #include <string.h>
59 #include <stddef.h>
60 
61 /******************************************************************************
62  * local include files
63  *****************************************************************************/
64 #include "name.h"
65 
66 
67 /******************************************************************************
68  * macros
69  *****************************************************************************/
70 
71 #ifndef NULL
72 #define NULL 0
73 #endif
74 
75 
76 /******************************************************************************
77  * local variables
78  *****************************************************************************/
79 
80 static char *executable_name = NULL;
82 
83 
84 /******************************************************************************
85  * forward declarations
86  *****************************************************************************/
87 
88 #ifdef NEED_CSPROF_BASENAME
89 static char *basename(char *string);
90 #endif
91 
92 
93 /******************************************************************************
94  * interface functions
95  *****************************************************************************/
96 
97 void hpcrun_set_executable_name(char *argv0)
98 {
99  // executable_name = strdup(basename(argv0));
100  executable_name = basename(argv0);
101 }
102 
104 {
105  return executable_name;
106 }
107 
108 
109 void hpcrun_set_mpirank(int rank)
110 {
111  mpirank = rank;
112 }
113 
115 {
116  return mpirank;
117 }
118 
119 
120 /******************************************************************************
121  * private operations
122  *****************************************************************************/
123 
124 #ifdef NEED_CSPROF_BASENAME
125 static char *basename(char *string)
126 {
127  char *last_slash = rindex(string,'/');
128  if (last_slash) return last_slash++;
129  else return string;
130 }
131 #endif
void hpcrun_set_executable_name(char *argv0)
Definition: name.c:97
int hpcrun_get_mpirank()
Definition: name.c:114
void hpcrun_set_mpirank(int rank)
Definition: name.c:109
static int mpirank
Definition: name.c:81
static char * executable_name
Definition: name.c:80
#define UNKNOWN_MPI_RANK
Definition: name.h:63
#define NULL
Definition: name.c:72
string basename(const char *fName)
Definition: FileUtil.cpp:90
const char * hpcrun_get_executable_name()
Definition: name.c:103