Changeset 5559712 in mainline for uspace/srv/sysman/unit.h
- Timestamp:
- 2019-08-03T09:28:50Z (6 years ago)
- Children:
- c0e4fc50
- Parents:
- 2dda1d4
- git-author:
- Michal Koutný <xm.koutny+hos@…> (2015-05-07 11:49:47)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-08-03 09:28:50)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/sysman/unit.h
r2dda1d4 r5559712 45 45 UNIT_MOUNT, 46 46 UNIT_CONFIGURATION, 47 UNIT_SERVICE 47 48 } unit_type_t; 48 49 … … 73 74 #include "unit_mnt.h" 74 75 #include "unit_tgt.h" 76 #include "unit_svc.h" 75 77 76 #define DEFINE_CAST(NAME, TYPE, ENUM_TYPE) \77 static inline TYPE *CAST_##NAME(unit_t *u) \78 { \79 if (u->type == ENUM_TYPE) \80 return (TYPE *)u; \81 else \82 return NULL; \83 } \78 #define DEFINE_CAST(NAME, TYPE, ENUM_TYPE) \ 79 static inline TYPE *CAST_##NAME(unit_t *u) \ 80 { \ 81 if (u->type == ENUM_TYPE) \ 82 return (TYPE *)u; \ 83 else \ 84 return NULL; \ 85 } \ 84 86 85 87 DEFINE_CAST(CFG, unit_cfg_t, UNIT_CONFIGURATION) 86 88 DEFINE_CAST(MNT, unit_mnt_t, UNIT_MOUNT) 87 89 DEFINE_CAST(TGT, unit_tgt_t, UNIT_TARGET) 90 DEFINE_CAST(SVC, unit_svc_t, UNIT_SERVICE) 88 91 89 92 struct unit_vmt { … … 97 100 98 101 int (*start)(unit_t *); 102 103 void (*exposee_created)(unit_t *); 104 105 void (*fail)(unit_t *); 99 106 }; 100 107 101 108 extern unit_vmt_t *unit_type_vmts[]; 102 109 103 #define DEFINE_UNIT_VMT(PREFIX) \ 104 unit_vmt_t PREFIX##_ops = { \ 105 .size = sizeof(PREFIX##_t), \ 106 .init = &PREFIX##_init, \ 107 .load = &PREFIX##_load, \ 108 .destroy = &PREFIX##_destroy, \ 109 .start = &PREFIX##_start \ 110 #define DEFINE_UNIT_VMT(PREFIX) \ 111 unit_vmt_t PREFIX##_vmt = { \ 112 .size = sizeof(PREFIX##_t), \ 113 .init = &PREFIX##_init, \ 114 .load = &PREFIX##_load, \ 115 .destroy = &PREFIX##_destroy, \ 116 .start = &PREFIX##_start, \ 117 .exposee_created = &PREFIX##_exposee_created, \ 118 .fail = &PREFIX##_fail \ 110 119 }; 111 120 … … 115 124 extern void unit_destroy(unit_t **); 116 125 117 // TODO add flags argument with explicit notification?118 extern void unit_set_state(unit_t *, unit_state_t);119 120 126 extern int unit_load(unit_t *, ini_configuration_t *, text_parse_t *); 121 127 extern int unit_start(unit_t *); 128 extern void unit_exposee_created(unit_t *); 129 extern void unit_fail(unit_t *); 130 131 extern void unit_notify_state(unit_t *); 122 132 123 133 extern unit_type_t unit_type_name_to_type(const char *);
Note:
See TracChangeset
for help on using the changeset viewer.