aboutsummaryrefslogtreecommitdiff
path: root/src/include/utils/ps_status.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/utils/ps_status.h')
-rw-r--r--src/include/utils/ps_status.h102
1 files changed, 10 insertions, 92 deletions
diff --git a/src/include/utils/ps_status.h b/src/include/utils/ps_status.h
index 31e98f6ce30..90f088ea2d0 100644
--- a/src/include/utils/ps_status.h
+++ b/src/include/utils/ps_status.h
@@ -2,8 +2,7 @@
*
* ps_status.h
*
- * Defines macros to show backend status on the ps status line.
- * Unfortunately this is system dpendent.
+ * Declarations for backend/utils/misc/ps_status.c
*
*-------------------------------------------------------------------------
*/
@@ -11,98 +10,17 @@
#ifndef PS_STATUS_H
#define PS_STATUS_H
-#ifdef HAVE_SETPROCTITLE
+#include "libpq/libpq-be.h"
-extern char Ps_status_buffer[];
+void
+init_ps_display(int argc, char *argv[],
+ const char * username, const char * dbname,
+ const char * host_info);
-#undef PS_DEFINE_BUFFER
+void
+set_ps_display(const char * value);
-#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
- do { \
- sprintf(Ps_status_buffer, "%s %s %s %s", execname, hostname, username, dbname); \
- setproctitle("%s", Ps_status_buffer); \
- } while (0)
-
-#define PS_CLEAR_STATUS() \
- do { setproctitle("%s", Ps_status_buffer); } while (0)
-
-#define PS_SET_STATUS(status) \
- do { setproctitle("%s %s", Ps_status_buffer, (status)); } while (0)
-
-#define PS_STATUS (Ps_status_buffer)
-
-#elif defined(linux)
-
-#include <string.h>
-
-extern char *ps_status_buffer;
-
-#define PS_DEFINE_BUFFER \
-char *ps_status_buffer = NULL
-
-#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
- do { \
- int i; \
- for (i = 0; i < (argc); i++) { \
- memset((argv)[i], 0, strlen((argv)[i])); \
- } \
- ps_status_buffer = (argv)[0]; \
- sprintf(ps_status_buffer, "%s %s %s %s ", execname, username, hostname, dbname); \
- ps_status_buffer += strlen(ps_status_buffer); \
- ps_status_buffer[0] = '\0'; \
- } while (0)
-
-#define PS_CLEAR_STATUS() \
- do { \
- if (ps_status_buffer) \
- memset(ps_status_buffer, 0, strlen(ps_status_buffer)); \
- } while (0)
-
-#define PS_SET_STATUS(status) \
- do { \
- if (ps_status_buffer) \
- { \
- PS_CLEAR_STATUS(); \
- strcpy(ps_status_buffer, status); \
- } \
- } while (0)
-
-#define PS_STATUS (ps_status_buffer ? ps_status_buffer : "")
-
-#else /* !linux */
-
-extern char Ps_status_buffer[];
-
-#undef PS_DEFINE_BUFFER
-
-#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
- do { \
- int i; \
- Assert(argc >= 5); \
- argv[0] = execname; \
- argv[1] = hostname; \
- argv[2] = username; \
- argv[3] = dbname; \
- argv[4] = Ps_status_buffer; \
- for (i = 5; i < argc; i++) \
- argv[i] = ""; /* blank them */ \
- } while (0)
-
-#define PS_CLEAR_STATUS() \
- do { Ps_status_buffer[0] = '\0'; } while (0)
-
-#define PS_SET_STATUS(status) \
- do { strcpy(Ps_status_buffer, (status)); } while (0)
-
-#define PS_STATUS (Ps_status_buffer)
-#endif
-
-#ifdef NO_PS_STATUS
-#undef PS_DEFINE_BUFFER
-#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname)
-#define PS_CLEAR_STATUS()
-#define PS_SET_STATUS(status) do { if ((status)); } while (0)
-#define PS_STATUS ""
-#endif /* !linux */
+const char *
+get_ps_display(void);
#endif /* PS_STATUS_H */