}
/* Commit contract */
- ids._length = 1;
+ ids._length = ids._maximum = 1;
ids._buffer = id;
fres_resource_manager_commit_contracts(rm->rm, &ids, &contracts_sched, ev);
if (forb_exception_occured(ev)) {
void fres_contract_destroy(struct fres_contract *contract);
struct fres_contract *fres_contract_duplicate(struct fres_contract *src);
+static inline int
+fres_contract_add_block(struct fres_contract *contract,
+ enum fres_block_type type, void *block)
+{
+ return fres_container_add_block(contract->container, type, block);
+}
+static inline void
+fres_contract_del_block(struct fres_contract *contract,
+ enum fres_block_type type)
+{
+ fres_container_del_block(contract->container, type);
+}
+
+static inline void *
+fres_contract_get_block(struct fres_contract *contract,
+ enum fres_block_type type)
+{
+ return fres_container_get_block(contract->container, type);
+}
+
#define FRES_CONTRACT_ACCESSOR(type) \
static inline int \
fres_contract_add_##type(struct fres_contract *contract, \
*/
typedef bool (*frm_adm_test_fnc_t)(struct fres_sa_scenario *scenario, void *priv);
+/** Description of a resource manager */
struct fres_res_manager {
frsh_resource_type_t res_type;
frsh_resource_id_t res_id;
frm_adm_test_fnc_t admission_test;
- void *priv;
+ void *priv; /**< Any data to be passed to admission test */
};
int frm_register_and_run(forb_orb orb,