Lines Matching refs:grid
151 skc_grid_call(skc_grid_t const grid, struct skc_grid_pfn_name const * const pn) in skc_grid_call() argument
154 pn->pfn(grid); in skc_grid_call()
160 skc_grid_schedule(skc_grid_t const grid, struct skc_grid_pfn_name const * const pn) in skc_grid_schedule() argument
163 skc_scheduler_schedule(grid->deps->scheduler,pn->pfn,grid,pn->name); in skc_grid_schedule()
173 skc_grid_invalidate(skc_grid_t const grid) in skc_grid_invalidate() argument
175 if (grid->addr != NULL) { in skc_grid_invalidate()
176 *grid->addr = NULL; in skc_grid_invalidate()
186 skc_grid_move(skc_grid_t const grid,
191 skc_grid_invalidate(grid);
193 grid->state = state;
194 grid->addr = addr;
195 grid->data = data;
197 return grid;
202 skc_grid_get_data(skc_grid_t const grid) in skc_grid_get_data() argument
204 return grid->data; in skc_grid_get_data()
208 skc_grid_set_data(skc_grid_t const grid, void * const data) in skc_grid_set_data() argument
210 grid->data = data; in skc_grid_set_data()
350 struct skc_grid * const grid = deps->grids + first; in skc_grid_deps_attach() local
354 *addr = grid; in skc_grid_deps_attach()
357 *grid = (struct skc_grid){ in skc_grid_deps_attach()
370 return grid; in skc_grid_deps_attach()
409 skc_grid_detach(skc_grid_t const grid) in skc_grid_detach() argument
415 grid->state = SKC_GRID_STATE_DETACHED; in skc_grid_detach()
422 if (skc_grid_words_set(grid->deps->active,grid->id)) // 1:inactive in skc_grid_detach()
423 grid->deps->count -= 1; in skc_grid_detach()
431 skc_grid_map(skc_grid_t const grid, skc_handle_t const handle) in skc_grid_map() argument
433 grid->deps->handle_map[handle] = grid->id; in skc_grid_map()
456 skc_grid_t const grid = deps->grids + grid_id; in skc_grid_deps_force() local
458 skc_grid_force(grid); in skc_grid_deps_force()
460 while (grid->state >= SKC_GRID_STATE_COMPLETE) in skc_grid_deps_force()
552 skc_grid_start(skc_grid_t const grid) in skc_grid_start() argument
555 if (grid->state != SKC_GRID_STATE_READY) in skc_grid_start()
559 grid->state = SKC_GRID_STATE_WAITING; in skc_grid_start()
563 skc_grid_call(grid,&grid->waiting); in skc_grid_start()
566 skc_grid_invalidate(grid); in skc_grid_start()
569 if (grid->before.count == 0) in skc_grid_start()
572 grid->state = SKC_GRID_STATE_EXECUTING; in skc_grid_start()
573 skc_grid_schedule(grid,&grid->execute); in skc_grid_start()
582 skc_grid_force(skc_grid_t const grid) in skc_grid_force() argument
585 if (grid->state >= SKC_GRID_STATE_FORCED) in skc_grid_force()
589 if (grid->state == SKC_GRID_STATE_READY) in skc_grid_force()
592 grid->state = SKC_GRID_STATE_WAITING; in skc_grid_force()
596 skc_grid_call(grid,&grid->waiting); in skc_grid_force()
599 skc_grid_invalidate(grid); in skc_grid_force()
602 skc_uint before_count = grid->before.count; in skc_grid_force()
608 grid->state = SKC_GRID_STATE_EXECUTING; in skc_grid_force()
609 skc_grid_schedule(grid,&grid->execute); in skc_grid_force()
613 grid->state = SKC_GRID_STATE_FORCED; in skc_grid_force()
615 struct skc_grid * before = grid->deps->grids; in skc_grid_force()
616 skc_uint * before_words = grid->before.words; in skc_grid_force()
652 skc_grid_complete(skc_grid_t const grid) in skc_grid_complete() argument
655 assert(grid->state == SKC_GRID_STATE_EXECUTING); in skc_grid_complete()
658 grid->state = SKC_GRID_STATE_COMPLETE; in skc_grid_complete()
660 skc_uint after_count = grid->after.count; in skc_grid_complete()
665 struct skc_grid * after = grid->deps->grids; in skc_grid_complete()
666 skc_uint * after_words = grid->after.words; in skc_grid_complete()
688 skc_grid_clear_dependency(after+idx,grid->id); in skc_grid_complete()
697 skc_grid_call(grid,&grid->dispose); in skc_grid_complete()
700 skc_grid_detach(grid); in skc_grid_complete()