postgres_extension/postmaster/
bgworker.rs1use libc::*;
2use crate::postgres::*;
3
4pub const BGWORKER_SHMEM_ACCESS: c_int = 0x0001;
5pub const BGWORKER_BACKEND_DATABASE_CONNECTION: c_int = 0x0002;
6pub const BGW_MAXLEN: usize = 96;
7pub const BGW_EXTRALEN: usize = 128;
8
9#[repr(C)]
10pub enum BgWorkerStartTime {
11 BgWorkerStart_PostmasterStart,
12 BgWorkerStart_ConsistentState,
13 BgWorkerStart_RecoveryFinished,
14}
15
16#[repr(C)]
17pub struct BackgroundWorker {
18 pub bgw_name: [c_char; BGW_MAXLEN],
19 pub bgw_type: [c_char; BGW_MAXLEN],
20 pub bgw_flags: c_int,
21 pub bgw_start_time: BgWorkerStartTime,
22 pub bgw_restart_time: c_int, pub bgw_library_name: [c_char; BGW_MAXLEN],
24 pub bgw_function_name: [c_char; BGW_MAXLEN],
25 pub bgw_main_arg: Datum,
26 pub bgw_extra: [c_char; BGW_EXTRALEN],
27 pub bgw_notify_pid: pid_t, }
29
30extern "C" {
31 pub fn RegisterBackgroundWorker(worker: &BackgroundWorker);
32}