1 /*-------------------------------------------------------------------------
4 * Exports from postmaster/postmaster.c.
6 * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
9 * src/include/postmaster/postmaster.h
11 *-------------------------------------------------------------------------
17 extern bool EnableSSL;
18 extern int ReservedBackends;
19 extern PGDLLIMPORT int PostPortNumber;
20 extern int Unix_socket_permissions;
21 extern char *Unix_socket_group;
22 extern char *Unix_socket_directories;
23 extern char *ListenAddresses;
24 extern bool ClientAuthInProgress;
25 extern int PreAuthDelay;
26 extern int AuthenticationTimeout;
27 extern bool Log_connections;
28 extern bool log_hostname;
29 extern bool enable_bonjour;
30 extern char *bonjour_name;
31 extern bool restart_after_crash;
34 extern HANDLE PostmasterHandle;
36 extern int postmaster_alive_fds[2];
39 * Constants that represent which of postmaster_alive_fds is held by
40 * postmaster, and which is used in children to check for postmaster death.
42 #define POSTMASTER_FD_WATCH 0 /* used in children to check for
44 #define POSTMASTER_FD_OWN 1 /* kept open by postmaster only */
47 extern PGDLLIMPORT const char *progname;
49 extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
50 extern void ClosePostmasterPorts(bool am_syslogger);
52 extern int MaxLivePostmasterChildren(void);
54 extern int GetNumShmemAttachedBgworkers(void);
55 extern bool PostmasterMarkPIDForWorkerNotify(int);
58 extern pid_t postmaster_forkexec(int argc, char *argv[]);
59 extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
61 extern Size ShmemBackendArraySize(void);
62 extern void ShmemBackendArrayAllocation(void);
66 * Note: MAX_BACKENDS is limited to 2^18-1 because that's the width reserved
67 * for buffer references in buf_internals.h. This limitation could be lifted
68 * by using a 64bit state; but it's unlikely to be worthwhile as 2^18-1
69 * backends exceed currently realistic configurations. Even if that limitation
70 * were removed, we still could not a) exceed 2^23-1 because inval.c stores
71 * the backend ID as a 3-byte signed integer, b) INT_MAX/4 because some places
72 * compute 4*MaxBackends without any overflow check. This is rechecked in the
73 * relevant GUC check hooks and in RegisterBackgroundWorker().
75 #define MAX_BACKENDS 0x3FFFF
77 #endif /* _POSTMASTER_H */