X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/aef8ad40dbb075883c0b147319cd73ed813f8cb9..74f69c4435c448239fe6d8d040f95fb8534db7f9:/src/include/simix/datatypes.h diff --git a/src/include/simix/datatypes.h b/src/include/simix/datatypes.h index 28e1be2241..d318db2691 100644 --- a/src/include/simix/datatypes.h +++ b/src/include/simix/datatypes.h @@ -1,7 +1,5 @@ -/* $Id$ */ - -/* Copyright (c) 2007 Arnaud Legrand, Bruno Donnassolo. - All rights reserved. */ +/* Copyright (c) 2007, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -33,15 +31,29 @@ SG_BEGIN_DECL() /* ******************************** Syncro ************************************ */ - - typedef struct s_smx_mutex *smx_mutex_t; - typedef struct s_smx_cond *smx_cond_t; - + typedef struct s_smx_mutex { + xbt_swag_t sleeping; /* list of sleeping process */ + int refcount; + } s_smx_mutex_t; + typedef s_smx_mutex_t *smx_mutex_t; + + typedef struct s_smx_cond { + xbt_swag_t sleeping; /* list of sleeping process */ + smx_mutex_t mutex; + xbt_fifo_t actions; /* list of actions */ + } s_smx_cond_t; + typedef s_smx_cond_t *smx_cond_t; + + typedef struct s_smx_sem { + xbt_fifo_t sleeping; /* list of sleeping process */ + int capacity; + xbt_fifo_t actions; /* list of actions */ + } s_smx_sem_t; + typedef s_smx_sem_t *smx_sem_t; /********************************** Action *************************************/ typedef struct s_smx_action *smx_action_t; - /* ****************************** Process *********************************** */ /** @brief Agent datatype @ingroup m_datatypes_management @@ -53,5 +65,16 @@ SG_BEGIN_DECL() typedef struct s_smx_process *smx_process_t; /** @} */ + typedef struct s_smx_context *smx_context_t; + +/******************************* Networking ***********************************/ + typedef struct s_smx_rvpoint *smx_rdv_t; + typedef struct s_smx_comm *smx_comm_t; + typedef enum {comm_send, + comm_recv + } smx_comm_type_t; + + + SG_END_DECL() #endif