Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
make distcheck is now successful
[simgrid.git] / src / gras / Virtu / process.c
1 /* $Id$ */
2
3 /* process - GRAS process handling (common code for RL and SG)              */
4
5 /* Authors: Martin Quinson                                                  */
6 /* Copyright (C) 2003,2004 da GRAS posse.                                   */
7
8 /* This program is free software; you can redistribute it and/or modify it
9    under the terms of the license (GNU LGPL) which comes with this package. */
10
11 #include "gras_private.h"
12 #include "Virtu/virtu_interface.h"
13
14
15 /* **************************************************************************
16  * Process data
17  * **************************************************************************/
18 void *gras_userdata_get(void) {
19   gras_procdata_t *pd=gras_procdata_get();
20   return pd->userdata;
21 }
22
23 void gras_userdata_set(void *ud) {
24   gras_procdata_t *pd=gras_procdata_get();
25
26   pd->userdata = ud;
27 }
28
29 gras_error_t
30 gras_procdata_init() {
31   gras_error_t errcode;
32   gras_procdata_t *pd=gras_procdata_get();
33   pd->userdata = NULL;
34   TRY(gras_dynar_new(&(pd->msg_queue), sizeof(gras_msg_t),     NULL));
35   TRY(gras_dynar_new(&(pd->cbl_list),  sizeof(gras_cblist_t *),gras_cbl_free));
36   TRY(gras_dynar_new(&(pd->sockets),   sizeof(gras_socket_t*), NULL));
37   return no_error;
38 }
39
40 void
41 gras_procdata_exit() {
42   gras_procdata_t *pd=gras_procdata_get();
43
44   gras_dynar_free(pd->msg_queue);
45   gras_dynar_free(pd->cbl_list);
46   gras_dynar_free(pd->sockets);
47 }
48
49 gras_dynar_t *
50 gras_socketset_get(void) {
51    return gras_procdata_get()->sockets;
52 }