- e_surf_token_t token;
- char *name = NULL;
- xbt_maxmin_float_t power_scale = 0.0;
- xbt_maxmin_float_t initial_power = 0.0;
- tmgr_trace_t power_trace = NULL;;
- e_surf_cpu_state_t initial_state = SURF_CPU_OFF;
- tmgr_trace_t state_trace = NULL;
-
- name=xbt_strdup(surf_parse_text);
-
- token=surf_parse(); /* power_scale */
- xbt_assert1((token==TOKEN_WORD),"Parse error line %d",line_pos);
- xbt_assert2((sscanf(surf_parse_text,XBT_MAXMIN_FLOAT_T, &power_scale)==1),
- "Parse error line %d : %s not a number",line_pos,surf_parse_text);
-
- token=surf_parse(); /* initial_power */
- xbt_assert1((token==TOKEN_WORD),"Parse error line %d",line_pos);
- xbt_assert2((sscanf(surf_parse_text,XBT_MAXMIN_FLOAT_T, &initial_power)==1),
- "Parse error line %d : %s not a number",line_pos,surf_parse_text);
-
- token=surf_parse(); /* power_trace */
- xbt_assert1((token==TOKEN_WORD),"Parse error line %d",line_pos);
- if(strcmp(surf_parse_text,"")==0) power_trace = NULL;
- else power_trace = tmgr_trace_new(surf_parse_text);
-
- token=surf_parse(); /* initial_state */
- xbt_assert1((token==TOKEN_WORD),"Parse error line %d",line_pos);
- if(strcmp(surf_parse_text,"ON")==0) initial_state = SURF_CPU_ON;
- else if(strcmp(surf_parse_text,"OFF")==0) initial_state = SURF_CPU_OFF;
- else {
- CRITICAL2("Invalid cpu state (line %d): %s neq ON or OFF\n",line_pos,
- surf_parse_text);
- xbt_abort();
- }
-
- token=surf_parse(); /* state_trace */
- xbt_assert1((token==TOKEN_WORD),"Parse error line %d",line_pos);
- if(strcmp(surf_parse_text,"")==0) state_trace = NULL;
- else state_trace = tmgr_trace_new(surf_parse_text);
-
- cpu_new(name, power_scale, initial_power, power_trace, initial_state, state_trace);