Changeset 9532981 in mainline for uspace/srv/sysman/edge.h
- Timestamp:
- 2019-08-07T09:35:37Z (6 years ago)
- Children:
- db34424
- Parents:
- af92309
- git-author:
- Michal Koutný <xm.koutny+hos@…> (2015-11-02 23:10:51)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-08-07 09:35:37)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/sysman/edge.h
raf92309 r9532981 27 27 */ 28 28 29 #ifndef SYSMAN_ DEP_H30 #define SYSMAN_ DEP_H29 #ifndef SYSMAN_EDGE_H 30 #define SYSMAN_EDGE_H 31 31 32 32 #include <adt/list.h> … … 34 34 #include "unit.h" 35 35 36 typedef enum { 37 DEP_EMBRYO, 38 DEP_VALID 39 } dependency_state_t; 40 41 /** Dependency edge between unit in dependency graph 36 /** Dependency edge between units in dependency graph 42 37 * 43 38 * @code 44 * dependant ---> dependency39 * input ---> output 45 40 * @endcode 46 41 * 47 42 */ 48 43 typedef struct { 49 /** Link to dependantslist */50 link_t dependants;51 /** Link to dependencieslist */52 link_t dependencies;44 /** Link to edges_out list */ 45 link_t edges_in; 46 /** Link to edges_out list */ 47 link_t edges_out; 53 48 54 dependency_state_t state;49 bool commited; 55 50 56 51 /** Unit that depends on another */ 57 unit_t * dependant;52 unit_t *input; 58 53 59 54 /** Unit that is dependency for another */ 60 unit_t * dependency;55 unit_t *output; 61 56 62 /** Name of the dependency unit, for resolved dependencies it's NULL57 /** Name of the output unit, for resolved edges it's NULL 63 58 * 64 * @note Either dependency or dependency_name is set. Never both nor 65 * none. 59 * @note Either output or output_nameis set. Never both nor none. 66 60 */ 67 char * dependency_name;68 } unit_ dependency_t;61 char *output_name; 62 } unit_edge_t; 69 63 70 extern unit_ dependency_t *dep_dependency_create(void);71 extern void dep_dependency_destroy(unit_dependency_t **);64 extern unit_edge_t *edge_create(void); 65 extern void edge_destroy(unit_edge_t **); 72 66 73 extern int dep_sprout_dependency(unit_t *, const char *);74 extern void dep_resolve_dependency(unit_dependency_t *, unit_t *);67 extern int edge_sprout_out(unit_t *, const char *); 68 extern void edge_resolve_output(unit_edge_t *, unit_t *); 75 69 76 extern int dep_add_dependency(unit_t *, unit_t *);77 extern void dep_remove_dependency(unit_dependency_t **);70 extern int edge_connect(unit_t *, unit_t *); 71 extern void edge_remove(unit_edge_t **); 78 72 79 73
Note:
See TracChangeset
for help on using the changeset viewer.