1 /* 2 * Copyright 2004-2024 the Pacemaker project contributors 3 * 4 * The version control history for this file may have further details. 5 * 6 * This source code is licensed under the GNU Lesser General Public License 7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. 8 */ 9 10 #ifndef PCMK__CRM_COMMON_LOCATION_INTERNAL__H 11 #define PCMK__CRM_COMMON_LOCATION_INTERNAL__H 12 13 #include <glib.h> // GList 14 15 #include <crm/common/nodes.h> // enum pe_discover_e 16 #include <crm/common/resources.h> // enum rsc_role_e 17 #include <crm/common/scheduler_types.h> // pcmk_resource_t 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 23 //! Location constraint object 24 typedef struct { 25 char *id; // XML ID of location constraint 26 pcmk_resource_t *rsc; // Resource with location preference 27 enum rsc_role_e role_filter; // Limit to instances with this role 28 enum pe_discover_e discover_mode; // How to probe resource on node 29 GList *nodes; // Affected nodes, with preference score 30 } pcmk__location_t; 31 32 #ifdef __cplusplus 33 } 34 #endif 35 36 #endif // PCMK__CRM_COMMON_LOCATION_INTERNAL__H