Change sync_init api call to pass information relevant for making

synchronization decisions.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2305 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
Steven Dake 2009-06-27 01:59:59 +00:00
parent e448603f2f
commit e1b054ae0a
6 changed files with 49 additions and 16 deletions

View File

@ -76,7 +76,10 @@
#include "sync.h"
#include "evil.h"
static void clm_sync_init (void);
static void clm_sync_init (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id);
static int clm_sync_process (void);
@ -98,7 +101,10 @@ static struct sync_callbacks clm_sync_operations = {
static struct corosync_api_v1 *api = NULL;
static void sync_dummy_init (void)
static void sync_dummy_init (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id)
{
}
@ -329,7 +335,10 @@ static int clm_nodejoin_send (void)
/*
* This is a noop for this service
*/
static void clm_sync_init (void)
static void clm_sync_init (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id)
{
return;
}

View File

@ -78,7 +78,7 @@ static struct sync_callbacks sync_callbacks;
static int sync_processing = 0;
static void (*sync_next_start) (
unsigned int *member_list,
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id);
@ -176,7 +176,7 @@ static void sync_start_init (const struct memb_ring_id *ring_id)
static void sync_service_init (struct memb_ring_id *ring_id)
{
sync_callbacks.sync_init ();
sync_callbacks.sync_init (my_member_list, my_member_list_entries, ring_id);
totempg_callback_token_destroy (&sync_callback_token_handle);
/*
@ -264,7 +264,7 @@ int sync_register (
struct sync_callbacks *callbacks),
void (*next_start) (
unsigned int *member_list,
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id))
{

View File

@ -40,7 +40,10 @@
#include "totemsrp.h"
struct sync_callbacks {
void (*sync_init) (void);
void (*sync_init) (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id);
int (*sync_process) (void);
void (*sync_activate) (void);
void (*sync_abort) (void);
@ -53,7 +56,7 @@ int sync_register (
struct sync_callbacks *callbacks),
void (*next_start) (
unsigned int *member_list,
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id));

View File

@ -80,7 +80,10 @@ enum sync_state {
struct service_entry {
int service_id;
void (*sync_init) (void);
void (*sync_init) (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id);
void (*sync_abort) (void);
int (*sync_process) (void);
void (*sync_activate) (void);
@ -113,7 +116,11 @@ static int my_processing_idx = 0;
static hdb_handle_t my_schedwrk_handle;
static struct processor_entry my_processor_list[128];
static struct processor_entry my_processor_list[PROCESSOR_COUNT_MAX];
static unsigned int my_member_list[PROCESSOR_COUNT_MAX];
static size_t my_member_list_entries = 0;
static int my_processor_list_entries = 0;
@ -123,7 +130,7 @@ static int my_service_list_entries = 0;
static const struct memb_ring_id sync_ring_id;
static struct service_entry my_initial_service_list[128];
static struct service_entry my_initial_service_list[PROCESSOR_COUNT_MAX];
static int my_initial_service_list_entries;
@ -229,7 +236,10 @@ static void sync_barrier_handler (unsigned int nodeid, const void *msg)
}
}
static void dummy_sync_init (void)
static void dummy_sync_init (
const unsigned int *member_list,
unsigned int member_list_entries,
const struct memb_ring_id *ring_id)
{
}
@ -438,7 +448,8 @@ static int schedwrk_processor (const void *context)
if (my_service_list[my_processing_idx].state == INIT) {
my_service_list[my_processing_idx].state = PROCESS;
my_service_list[my_processing_idx].sync_init ();
my_service_list[my_processing_idx].sync_init (my_member_list, my_member_list_entries,
&my_ring_id);
}
if (my_service_list[my_processing_idx].state == PROCESS) {
my_service_list[my_processing_idx].state = PROCESS;

View File

@ -629,7 +629,10 @@ struct corosync_service_engine {
const unsigned int *joined_list, size_t joined_list_entries,
const struct memb_ring_id *ring_id);
enum cs_sync_mode sync_mode;
void (*sync_init) (void);
void (*sync_init) (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id);
int (*sync_process) (void);
void (*sync_activate) (void);
void (*sync_abort) (void);

View File

@ -206,7 +206,11 @@ static int cpg_node_joinleave_send (unsigned int pid, const mar_cpg_name_t *grou
static int cpg_exec_send_joinlist(void);
static void cpg_sync_init (void);
static void cpg_sync_init (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id);
static int cpg_sync_process (void);
static void cpg_sync_activate (void);
static void cpg_sync_abort (void);
@ -354,7 +358,10 @@ struct req_exec_cpg_downlist {
static struct req_exec_cpg_downlist g_req_exec_cpg_downlist;
static void cpg_sync_init (void)
static void cpg_sync_init (
const unsigned int *member_list,
size_t member_list_entries,
const struct memb_ring_id *ring_id)
{
}