1998-08-25 17:29:16 -04:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
|
*
|
1999-02-13 18:22:53 -05:00
|
|
|
* ps_status.h
|
1998-08-25 17:29:16 -04:00
|
|
|
*
|
|
|
|
|
* Defines macros to show backend status on the ps status line.
|
|
|
|
|
* Unfortunately this is system dpendent.
|
|
|
|
|
*
|
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef PS_STATUS_H
|
|
|
|
|
#define PS_STATUS_H
|
|
|
|
|
|
2000-05-12 10:33:08 -04:00
|
|
|
#ifdef HAVE_SETPROCTITLE
|
|
|
|
|
|
|
|
|
|
extern char Ps_status_buffer[];
|
|
|
|
|
|
|
|
|
|
#undef PS_DEFINE_BUFFER
|
|
|
|
|
|
|
|
|
|
#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
|
|
|
|
|
do { \
|
2000-05-23 20:14:26 -04:00
|
|
|
sprintf(Ps_status_buffer, "%s %s %s %s", execname, hostname, username, dbname); \
|
2000-05-23 20:24:17 -04:00
|
|
|
setproctitle("%s", Ps_status_buffer); \
|
2000-05-12 10:33:08 -04:00
|
|
|
} while (0)
|
|
|
|
|
|
|
|
|
|
#define PS_CLEAR_STATUS() \
|
2000-05-23 20:14:26 -04:00
|
|
|
do { setproctitle("%s", Ps_status_buffer); } while (0)
|
2000-05-12 10:33:08 -04:00
|
|
|
|
|
|
|
|
#define PS_SET_STATUS(status) \
|
2000-05-23 20:14:26 -04:00
|
|
|
do { setproctitle("%s %s", Ps_status_buffer, (status)); } while (0)
|
2000-05-12 10:33:08 -04:00
|
|
|
|
|
|
|
|
#define PS_STATUS (Ps_status_buffer)
|
|
|
|
|
|
|
|
|
|
#elif defined(linux)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
extern char *ps_status_buffer;
|
|
|
|
|
|
|
|
|
|
#define PS_DEFINE_BUFFER \
|
1999-03-19 13:56:43 -05:00
|
|
|
char *ps_status_buffer = NULL
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
|
2000-04-12 13:17:23 -04:00
|
|
|
do { \
|
1998-09-01 00:40:42 -04:00
|
|
|
int i; \
|
1998-08-25 17:29:16 -04:00
|
|
|
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); \
|
1999-02-02 18:53:26 -05:00
|
|
|
ps_status_buffer[0] = '\0'; \
|
2000-04-12 13:17:23 -04:00
|
|
|
} while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_CLEAR_STATUS() \
|
2000-04-12 16:33:37 -04:00
|
|
|
do { \
|
|
|
|
|
if (ps_status_buffer) \
|
|
|
|
|
memset(ps_status_buffer, 0, strlen(ps_status_buffer)); \
|
|
|
|
|
} while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_SET_STATUS(status) \
|
2000-04-12 16:33:37 -04:00
|
|
|
do { \
|
1998-08-25 17:29:16 -04:00
|
|
|
if (ps_status_buffer) \
|
|
|
|
|
{ \
|
|
|
|
|
PS_CLEAR_STATUS(); \
|
1999-02-02 18:53:26 -05:00
|
|
|
strcpy(ps_status_buffer, status); \
|
1998-08-25 17:29:16 -04:00
|
|
|
} \
|
2000-04-12 13:17:23 -04:00
|
|
|
} while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_STATUS (ps_status_buffer ? ps_status_buffer : "")
|
|
|
|
|
|
|
|
|
|
#else /* !linux */
|
|
|
|
|
|
1999-12-10 05:29:01 -05:00
|
|
|
extern char Ps_status_buffer[];
|
1998-08-25 17:29:16 -04:00
|
|
|
|
2000-03-23 18:16:49 -05:00
|
|
|
#undef PS_DEFINE_BUFFER
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname) \
|
2000-04-12 13:17:23 -04:00
|
|
|
do { \
|
1998-08-25 17:29:16 -04:00
|
|
|
int i; \
|
|
|
|
|
Assert(argc >= 5); \
|
|
|
|
|
argv[0] = execname; \
|
|
|
|
|
argv[1] = hostname; \
|
|
|
|
|
argv[2] = username; \
|
|
|
|
|
argv[3] = dbname; \
|
1999-12-10 05:29:01 -05:00
|
|
|
argv[4] = Ps_status_buffer; \
|
|
|
|
|
for (i = 5; i < argc; i++) \
|
1998-08-25 17:29:16 -04:00
|
|
|
argv[i] = ""; /* blank them */ \
|
2000-04-12 13:17:23 -04:00
|
|
|
} while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_CLEAR_STATUS() \
|
2000-04-12 13:17:23 -04:00
|
|
|
do { Ps_status_buffer[0] = '\0'; } while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
|
|
|
|
#define PS_SET_STATUS(status) \
|
2000-04-12 13:17:23 -04:00
|
|
|
do { strcpy(Ps_status_buffer, (status)); } while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
|
1999-12-10 05:29:01 -05:00
|
|
|
#define PS_STATUS (Ps_status_buffer)
|
1998-08-25 17:29:16 -04:00
|
|
|
#endif
|
|
|
|
|
|
1999-07-18 13:38:25 -04:00
|
|
|
#ifdef NO_PS_STATUS
|
2000-03-23 18:16:49 -05:00
|
|
|
#undef PS_DEFINE_BUFFER
|
1998-08-25 17:29:16 -04:00
|
|
|
#define PS_INIT_STATUS(argc, argv, execname, username, hostname, dbname)
|
|
|
|
|
#define PS_CLEAR_STATUS()
|
2000-04-12 13:17:23 -04:00
|
|
|
#define PS_SET_STATUS(status) do { if ((status)); } while (0)
|
1998-08-25 17:29:16 -04:00
|
|
|
#define PS_STATUS ""
|
1998-09-01 00:40:42 -04:00
|
|
|
#endif /* !linux */
|
1998-08-25 17:29:16 -04:00
|
|
|
|
1998-09-01 00:40:42 -04:00
|
|
|
#endif /* PS_STATUS_H */
|