Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Substitution of the word "resource" by "model" in every surf related identifier
[simgrid.git] / src / surf / workstation_KCCFLN05_private.h
1 /*      $Id$     */
2
3 /* Copyright (c) 2005 Arnaud Legrand. All rights reserved.                  */
4
5 /* This program is free software; you can redistribute it and/or modify it
6  * under the terms of the license (GNU LGPL) which comes with this package. */
7
8 #ifndef _SURF_WORKSTATION_KCCFLN05_PRIVATE_H
9 #define _SURF_WORKSTATION_KCCFLN05_PRIVATE_H
10
11 #include "surf_private.h"
12
13 typedef enum {
14   SURF_WORKSTATION_RESOURCE_CPU,
15   SURF_WORKSTATION_RESOURCE_LINK,
16 } e_surf_workstation_model_type_t;
17
18
19 /**************************************/
20 /********* router object **************/
21 /**************************************/
22 typedef struct router_KCCFLN05 {
23   char *name;           
24   unsigned int id;
25 } s_router_KCCFLN05_t, *router_KCCFLN05_t;
26
27
28 /**************************************/
29 /********* cpu object *****************/
30 /**************************************/
31 typedef struct cpu_KCCFLN05 {
32   surf_model_t model;
33   e_surf_workstation_model_type_t type; /* Do not move this field */
34   char *name;                                   /* Do not move this field */
35   lmm_constraint_t constraint;
36   lmm_constraint_t bus;
37   double power_scale;
38   double power_current;
39   double interference_send;
40   double interference_recv;
41   double interference_send_recv;
42   tmgr_trace_event_t power_event;
43   e_surf_cpu_state_t state_current;
44   tmgr_trace_event_t state_event;
45   int id;                       /* cpu and network card are a single object... */
46   xbt_dynar_t incomming_communications;
47   xbt_dynar_t outgoing_communications;
48 } s_cpu_KCCFLN05_t, *cpu_KCCFLN05_t;
49
50 /**************************************/
51 /*********** network object ***********/
52 /**************************************/
53
54 typedef struct network_link_KCCFLN05 {
55   surf_model_t model;
56   e_surf_workstation_model_type_t type; /* Do not move this field */
57   char *name;                                   /* Do not move this field */
58   lmm_constraint_t constraint;
59   double lat_current;
60   tmgr_trace_event_t lat_event;
61   double bw_current;
62   tmgr_trace_event_t bw_event;
63   e_surf_network_link_state_t state_current;
64   tmgr_trace_event_t state_event;
65 } s_network_link_KCCFLN05_t, *network_link_KCCFLN05_t;
66
67
68 typedef struct s_route_KCCFLN05 {
69   double impact_on_src;
70   double impact_on_dst;
71   double impact_on_src_with_other_recv;
72   double impact_on_dst_with_other_send;
73   network_link_KCCFLN05_t *links;
74   int size;
75 } s_route_KCCFLN05_t, *route_KCCFLN05_t;
76
77 /**************************************/
78 /*************** actions **************/
79 /**************************************/
80 typedef struct surf_action_workstation_KCCFLN05 {
81   s_surf_action_t generic_action;
82   double latency;
83   double lat_current;
84   lmm_variable_t variable;
85   double rate;
86   int suspended;
87   cpu_KCCFLN05_t src;           /* could be avoided */
88   cpu_KCCFLN05_t dst;           /* could be avoided */
89 } s_surf_action_workstation_KCCFLN05_t,
90   *surf_action_workstation_KCCFLN05_t;
91
92
93
94
95 #endif                          /* _SURF_WORKSTATION_KCCFLN05_PRIVATE_H */