Пример #1
0
stochastic_taskset *load_stochastic_taskset(FILE * source,
					    char delimiter[])
{
    stochastic_taskset *taskset;
    stochastic_task_view t_view;
    size_t line_len = 0;
    ssize_t str_len = 0;
    double *buffer = NULL;
    char *line = NULL;
    unsigned int cells = 0;
    unsigned int distribution_offset = 3;

    taskset = new_stochastic_taskset(10);
    while ((str_len = getline(&line, &line_len, source)) != -1) {
	if (line[0] != '#') {


	    cells = get_cells(line, delimiter) - distribution_offset;

	    buffer = realloc(buffer, (cells) * sizeof(double));
	    if (!buffer) {
		return NULL;
	    }
	    memset(buffer, 0, (cells) * sizeof(double));

	    if (!parse_line
		(line, delimiter, buffer, cells, distribution_offset,
		 &t_view)) {
		free(buffer);
		free(line);

		free_stochastic_taskset(taskset);
		return NULL;
	    }

	    if (!add_task(taskset, t_view)) {
		free(buffer);
		free(line);
		free_stochastic_taskset(taskset);
		return NULL;
	    }
	}

    }
    free(buffer);
    free(line);

    return taskset;

}
Пример #2
0
static void of_bus_default_count_cells(struct device_node *dev,
				       int *addrc, int *sizec)
{
	get_cells(dev, addrc, sizec);
}
 int sum (int r, char c, vector<string> strs) {
     int k = (r << 10) + c;
     dict[r - 1][c - offset] = get_cells(strs);
     mp[k] = strs;
     return dict[r - 1][c - offset];
 }
 int get (int r, char c) {
     int k = (r << 10) + c;
     if (mp.find(k) == mp.end())
         return dict[r - 1][c - offset];
     return get_cells(mp[k]);
 }