Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
QUORU...IALIZE(3)  Corosync Cluster Engine Programmer's Manual QUORU...IALIZE(3)

NAME
     quorum_model_initialize - Create a new connection to the Quorum service

SYNOPSIS
     #include <corosync/quorum.h>

     cs_error_t  quorum_model_initialize(quorum_handle_t *handle, quorum_model_t
     model, quorum_model_data_t *model_data,  uint32_t	*quorum_type,void  *con-
     text);

DESCRIPTION
     The  quorum_model_initialize  function  is  an enhanced way to initialize a
     connection to the quorum API.

     Each application may have several connections to the quorum API.  Each  ap-
     plication	uses  the  handle  argument to uniquely identify the connection.
     The handle argument is then used in other function calls  to  identify  the
     connection to be used for communication with the quorum service.

     The  model is used to explicitly choose set of callbacks and internal para-
     meters. Currently two models QUORUM_MODEL_V0 and  QUORUM_MODEL_V1	are  de-
     fined.   QUORUM_MODEL_V0  exists  only  for compatibility reasons with quo-
     rum_initialize(3) function and it is not recommended to be used as an argu-
     ment for quorum_model_initialize(3).

     The Following description is focused only on QUORUM_MODEL_V1 model.

     Every time the voting configuration changes (eg a node joins or  leave  the
     cluster)  or  the quorum status changes the quorum callback is called.  The
     quorum callback function is described by the following type definitions:

     typedef void (*quorum_v1_quorum_notification_fn_t) (
	     quorum_handle_t handle,
	     uint32_t quorate,
	     struct quorum_ring_id ring_id,
	     uint32_t member_list_entries,
	     const uint32_t *member_list
     );

     Also every time when membership configuration changes (eg a node  joins  or
     leave  the cluster) the node list change callback is called before the quo-
     rum callback.  The node list change callback function is described  by  the
     following type definitions:

     typedef void (*quorum_v1_nodelist_notification_fn_t) (
	     quorum_handle_t handle,
	     struct quorum_ring_id ring_id,
	     uint32_t member_list_entries,
	     const uint32_t *member_list,
	     uint32_t joined_list_entries,
	     const uint32_t *joined_list,
	     uint32_t left_list_entries,
	     const uint32_t *left_list
     );

     The model_data argument for QUORUM_MODEL_V1 is of the type:

     typedef struct {
	     quorum_model_t model;
	     quorum_v1_quorum_notification_fn_t quorum_notify_fn;
	     quorum_v1_nodelist_notification_fn_t nodelist_notify_fn;
     } quorum_model_v1_data_t;

     It's not required (nor recommended) to set model field in the structure. It
     is  also  fine  if only some of notification callbacks are used (only these
     events will be delivered then).

     The quorum_type argument is set to:

     #define QUORUM_FREE     0
     #define QUORUM_SET      1

     QUORUM_FREE value means that no quorum algorithm  is  loaded  and	that  no
     callbacks will take place.

     QUORUM_SET  value	means  that  one quorum algorithm is configured and that
     callbacks will take place.

     The context argument sets context same way as quorum_context_set(3).

     When a configuration change occurs, the callback is called  from  the  quo-
     rum_dispatch(3) function.

RETURN VALUE
     This  call returns the CS_OK value if successful, otherwise an error is re-
     turned.

ERRORS
     CS_ERR_TRY_AGAIN Resource temporarily unavailable

     CS_ERR_INVALID_PARAM Invalid argument

     CS_ERR_ACCESS Permission denied

     CS_ERR_LIBRARY The connection failed

     CS_ERR_INTERRUPT System call interrupted by a signal

     CS_ERR_NOT_SUPPORTED The requested protocol/functionality not supported

     CS_ERR_MESSAGE_ERROR Incorrect auth message received

     CS_ERR_NO_MEMORY Not enough memory to complete the requested task

SEE ALSO
     quorum_overview(3),    quorum_initialize(3),    quorum_finalize(3),    quo-
     rum_getquorate(3),    quorum_trackstart(3),    quorum_trackstop(3),    quo-
     rum_fd_get(3),   quorum_dispatch(3),   quorum_context_set(3),   quorum_con-
     text_get(3)

corosync Man Page		   2026-07-30		       QUORU...IALIZE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=quorum_model_initialize&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help