53,6 → 53,51 |
fsf_renegotiation_status_t; |
|
|
/** |
Contract parameters type; it is an opaque type (i.e. the internal |
structure of this data type is implementation dependent). The user |
can access and modify the parameters of a contract only with the |
proper functions, and should never access the data directly. |
*/ |
typedef FSF_CONTRACT_PARAMETERS_T_OPAQUE fsf_contract_parameters_t; |
|
|
/** |
Synchronization object handle type, this an opaque type |
used to signaling of servers |
*/ |
typedef FSF_SYNCH_OBJ_HANDLE_T_OPAQUE fsf_synch_obj_handle_t; |
|
|
|
/** |
Server Id type, that identifies a server created to manage a given |
contract |
*/ |
typedef int fsf_server_id_t; // => 0 |
|
/** |
The type references a function that may become a thread's |
code |
*/ |
typedef void * (*fsf_thread_code_t) (void *); |
|
|
/// List of contracts to negotiate |
typedef struct { |
int size; |
fsf_contract_parameters_t* contracts[FSF_MAX_N_SERVERS]; |
} fsf_contracts_group_t; |
|
/// List of servers to cancel |
typedef struct { |
int size; |
fsf_server_id_t servers[FSF_MAX_N_SERVERS]; |
} fsf_servers_group_t; |
|
|
|
|
// |
// Types for the spare capacity module |
// |
84,7 → 129,16 |
#define FSF_NULL_UTILIZATION_SET \ |
(fsf_utilization_set_t *)NULL |
|
// Constants used in the specification of the spare capacity |
// operations |
#define FSF_MAX_QUALITY (2**32 -1) |
#define FSF_MIN_QUALITY 0 |
#define FSF_MAX_IMPORTANCE FSF_N_IMPORTANCE_LEVELS |
#define FSF_MIN_IMPORTANCE 1 |
|
|
|
|
// |
// Types for the implementation specific module |
// |
135,6 → 189,7 |
// following: |
// FP: int (priority) |
// EDF: struct timespec (deadline) |
// RR: none |
// TABLE_DRIVEN : struct fsf_table_driven_params_t |
|
|
157,8 → 212,13 |
// It shall be one of the following: |
// FP: none |
// EDF: none |
// RR: struct timespec (slice duration) |
// TABLE_DRIVEN : struct timespec (schedule duration) |
|
// Constant for assigning default values |
#define FSF_DEFAULT_SCHED_POLICY FSF_NONE |
|
|
// |
// Types for the distributed services module |
// |
170,7 → 230,32 |
#define FSF_DEFAULT_NETWORK_ID 1 |
#define FSF_NULL_NETWORK_ID 0 |
|
//opaque types for fsf endpoints |
typedef FSF_SEND_ENDPOINT_T_OPAQUE fsf_send_endpoint_t; |
typedef FSF_RECEIVE_ENDPOINT_T_OPAQUE fsf_receive_endpoint_t; |
|
/** |
\ingroup distjmodule |
|
The node_address type specifies the node address in a |
communication-protocol-independent way. The actual address is |
obtained via a configuration dependent mapping function |
*/ |
typedef unsigned int fsf_node_address_t; |
|
/** |
\ingroup distjmodule |
|
The port type specifies the information that is necessary to get in |
contact with the thread in the receiving node, in a |
protocol-independent way. The actual port number is obtained via a |
configuration dependent mapping function |
*/ |
typedef unsigned int fsf_port_t; |
|
|
|
|
// Error codes |
#define FSF_ERR_BASE_VALUE 0x02004000 |
|
180,7 → 265,7 |
#define FSF_ERR_NO_RENEGOTIATION_REQUESTED 0x02004004 |
#define FSF_ERR_CONTRACT_REJECTED 0x02004005 |
#define FSF_ERR_NOT_SCHEDULED_CALLING_THREAD 0x02004006 |
#define FSF_ERR_NOT_BOUND_THREAD 0x02004007 |
#define FSF_ERR_NOT_BOUND 0x02004007 |
#define FSF_ERR_UNKNOWN_SCHEDULED_THREAD 0x02004008 |
#define FSF_ERR_NOT_CONTRACTED_SERVER 0x02004009 |
#define FSF_ERR_NOT_SCHEDULED_THREAD 0x0200400A |