97 lines
3.4 KiB
C
97 lines
3.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* postmaster.h
|
|
* Exports from postmaster/postmaster.c.
|
|
*
|
|
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/postmaster/postmaster.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef _POSTMASTER_H
|
|
#define _POSTMASTER_H
|
|
|
|
#include "miscadmin.h"
|
|
|
|
/* GUC options */
|
|
extern PGDLLIMPORT bool EnableSSL;
|
|
extern PGDLLIMPORT int SuperuserReservedConnections;
|
|
extern PGDLLIMPORT int ReservedConnections;
|
|
extern PGDLLIMPORT int PostPortNumber;
|
|
extern PGDLLIMPORT int Unix_socket_permissions;
|
|
extern PGDLLIMPORT char *Unix_socket_group;
|
|
extern PGDLLIMPORT char *Unix_socket_directories;
|
|
extern PGDLLIMPORT char *ListenAddresses;
|
|
extern PGDLLIMPORT bool ClientAuthInProgress;
|
|
extern PGDLLIMPORT int PreAuthDelay;
|
|
extern PGDLLIMPORT int AuthenticationTimeout;
|
|
extern PGDLLIMPORT bool Log_connections;
|
|
extern PGDLLIMPORT bool log_hostname;
|
|
extern PGDLLIMPORT bool enable_bonjour;
|
|
extern PGDLLIMPORT char *bonjour_name;
|
|
extern PGDLLIMPORT bool restart_after_crash;
|
|
extern PGDLLIMPORT bool remove_temp_files_after_crash;
|
|
extern PGDLLIMPORT bool send_abort_for_crash;
|
|
extern PGDLLIMPORT bool send_abort_for_kill;
|
|
|
|
#ifdef WIN32
|
|
extern PGDLLIMPORT HANDLE PostmasterHandle;
|
|
#else
|
|
extern PGDLLIMPORT int postmaster_alive_fds[2];
|
|
|
|
/*
|
|
* Constants that represent which of postmaster_alive_fds is held by
|
|
* postmaster, and which is used in children to check for postmaster death.
|
|
*/
|
|
#define POSTMASTER_FD_WATCH 0 /* used in children to check for
|
|
* postmaster death */
|
|
#define POSTMASTER_FD_OWN 1 /* kept open by postmaster only */
|
|
#endif
|
|
|
|
extern PGDLLIMPORT const char *progname;
|
|
|
|
extern void PostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
extern void ClosePostmasterPorts(bool am_syslogger);
|
|
extern void InitProcessGlobals(void);
|
|
|
|
extern int MaxLivePostmasterChildren(void);
|
|
|
|
extern bool PostmasterMarkPIDForWorkerNotify(int);
|
|
|
|
extern void BackendMain(char *startup_data, size_t startup_data_len) pg_attribute_noreturn();
|
|
|
|
#ifdef EXEC_BACKEND
|
|
extern Size ShmemBackendArraySize(void);
|
|
extern void ShmemBackendArrayAllocation(void);
|
|
|
|
#ifdef WIN32
|
|
extern void pgwin32_register_deadchild_callback(HANDLE procHandle, DWORD procId);
|
|
#endif
|
|
#endif
|
|
|
|
/* defined in globals.c */
|
|
extern struct ClientSocket *MyClientSocket;
|
|
|
|
/* prototypes for functions in launch_backend.c */
|
|
extern pid_t postmaster_child_launch(BackendType child_type, char *startup_data, size_t startup_data_len, struct ClientSocket *sock);
|
|
const char *PostmasterChildName(BackendType child_type);
|
|
#ifdef EXEC_BACKEND
|
|
extern void SubPostmasterMain(int argc, char *argv[]) pg_attribute_noreturn();
|
|
#endif
|
|
|
|
/*
|
|
* Note: MAX_BACKENDS is limited to 2^18-1 because that's the width reserved
|
|
* for buffer references in buf_internals.h. This limitation could be lifted
|
|
* by using a 64bit state; but it's unlikely to be worthwhile as 2^18-1
|
|
* backends exceed currently realistic configurations. Even if that limitation
|
|
* were removed, we still could not a) exceed 2^23-1 because inval.c stores
|
|
* the ProcNumber as a 3-byte signed integer, b) INT_MAX/4 because some places
|
|
* compute 4*MaxBackends without any overflow check. This is rechecked in the
|
|
* relevant GUC check hooks and in RegisterBackgroundWorker().
|
|
*/
|
|
#define MAX_BACKENDS 0x3FFFF
|
|
|
|
#endif /* _POSTMASTER_H */
|