save
This commit is contained in:
parent
2b190bdb1d
commit
abea3375ca
9 changed files with 866 additions and 45 deletions
56
src/scheduler/include/plugin.h
Normal file
56
src/scheduler/include/plugin.h
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#if !defined(_PLUGIN_H_)
|
||||
|
||||
#define _PLUGIN_H_ 1
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "sched/types.h"
|
||||
|
||||
typedef void* plugin_data_t;
|
||||
|
||||
/* hooker of plugin, the first parameter should be xce_sched_plugin_t */
|
||||
typedef int (*plugin_update_config_hook_t)(void*, xce_conf4sched_t*);
|
||||
typedef int (*plugin_update_queue_hook_t)(void*, xce_sched_queue_t*);
|
||||
typedef int (*plugin_update_job_hook_t)(void*, xce_sched_job_t*);
|
||||
typedef int (*plugin_update_worker_hook_t)(void*, xce_sched_worker_t*);
|
||||
|
||||
/* initialize function of plugin */
|
||||
typedef int (*plugin_init_fn_t)(void*);
|
||||
|
||||
typedef void (*plugin_fini_fn_t)(void*);
|
||||
|
||||
/* plugin function to elect job to be scheduler */
|
||||
typedef int64_t (*plugin_job_election_fn_t)(void*);
|
||||
|
||||
/* allocation function of job */
|
||||
typedef xce_job_alloc_t* (*plugin_job_allocate_fn_t)(void*, int64_t*);
|
||||
|
||||
typedef struct {
|
||||
plugin_update_config_hook_t config_hook;
|
||||
plugin_update_queue_hook_t queue_hook;
|
||||
plugin_update_job_hook_t job_hook;
|
||||
plugin_update_worker_hook_t worker_hook;
|
||||
} plugin_hooks_t;
|
||||
|
||||
typedef struct {
|
||||
char* name;
|
||||
void* sched;
|
||||
plugin_init_fn_t init_fn;
|
||||
plugin_fini_fn_t fini_fn;
|
||||
plugin_job_election_fn_t job_elect_fn;
|
||||
plugin_job_allocate_fn_t job_alloc_fn;
|
||||
plugin_hooks_t hooks;
|
||||
plugin_data_t data;
|
||||
} xce_sched_plugin_t;
|
||||
|
||||
extern int plugin_register(void*, void*);
|
||||
extern void plugin_unregister(void*);
|
||||
extern int plugin_config_update(void*, xce_conf4sched_t*);
|
||||
extern int plugin_queue_update(void*, xce_sched_queue_t*);
|
||||
extern int plugin_job_update(void*, xce_sched_job_t*);
|
||||
extern int plugin_worker_update(void*, xce_sched_worker_t*);
|
||||
|
||||
extern int register_fcfs(void*);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue