Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 984 → Rev 985

/shark/trunk/ports/first/fsf_include/fsf_basic_types.h
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