Last change
on this file since 59ba708 was 6efec7e3, checked in by Matthieu Riolo <matthieu.riolo@…>, 6 years ago |
Unit polymorphism (simple mount), debug logging
|
-
Property mode
set to
100644
|
File size:
914 bytes
|
Rev | Line | |
---|
[f42ee6f] | 1 | #include <adt/list.h>
|
---|
| 2 | #include <assert.h>
|
---|
| 3 | #include <errno.h>
|
---|
| 4 | #include <fibril_synch.h>
|
---|
| 5 |
|
---|
| 6 | #include "configuration.h"
|
---|
[6efec7e3] | 7 | #include "log.h"
|
---|
[f42ee6f] | 8 |
|
---|
| 9 | static list_t units;
|
---|
| 10 | static fibril_mutex_t units_mtx;
|
---|
| 11 |
|
---|
| 12 | void configuration_init(void)
|
---|
| 13 | {
|
---|
| 14 | list_initialize(&units);
|
---|
| 15 | fibril_mutex_initialize(&units_mtx);
|
---|
| 16 | }
|
---|
| 17 |
|
---|
| 18 | int configuration_add_unit(unit_t *unit)
|
---|
| 19 | {
|
---|
[6efec7e3] | 20 | sysman_log(LVL_DEBUG2, "%s(%p)", __func__, unit);
|
---|
[f42ee6f] | 21 | assert(unit);
|
---|
| 22 | assert(unit->state == STATE_EMBRYO);
|
---|
| 23 |
|
---|
| 24 | fibril_mutex_lock(&units_mtx);
|
---|
| 25 | list_append(&unit->units, &units);
|
---|
| 26 |
|
---|
| 27 | // TODO check name uniqueness
|
---|
| 28 | fibril_mutex_unlock(&units_mtx);
|
---|
| 29 | return EOK;
|
---|
| 30 | }
|
---|
| 31 |
|
---|
| 32 | /** Marks newly added units as usable (via state change) */
|
---|
| 33 | int configuration_commit(void)
|
---|
| 34 | {
|
---|
[6efec7e3] | 35 | sysman_log(LVL_DEBUG2, "%s", __func__);
|
---|
| 36 |
|
---|
[f42ee6f] | 37 | fibril_mutex_lock(&units_mtx);
|
---|
| 38 | list_foreach(units, units, unit_t, u) {
|
---|
| 39 | if (u->state == STATE_EMBRYO) {
|
---|
| 40 | u->state = STATE_STOPPED;
|
---|
| 41 | }
|
---|
| 42 | }
|
---|
| 43 | fibril_mutex_unlock(&units_mtx);
|
---|
| 44 |
|
---|
| 45 | return EOK;
|
---|
| 46 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.