MCPcopy Create free account
hub / github.com/HelenOS/helenos / taskbar_clock_create

Function taskbar_clock_create

uspace/app/taskbar/clock.c:69–102  ·  view source on GitHub ↗

Create task bar clock. * * @param window Containing window * @param rclock Place to store pointer to new clock * @return EOK on success or an error code */

Source from the content-addressed store, hash-verified

67 * @return EOK on success or an error code
68 */
69errno_t taskbar_clock_create(ui_window_t *window, taskbar_clock_t **rclock)
70{
71 taskbar_clock_t *clock;
72 errno_t rc;
73
74 clock = calloc(1, sizeof(taskbar_clock_t));
75 if (clock == NULL)
76 return ENOMEM;
77
78 rc = ui_control_new(&taskbar_clock_ctl_ops, (void *)clock,
79 &clock->control);
80 if (rc != EOK) {
81 free(clock);
82 return rc;
83 }
84
85 clock->timer = fibril_timer_create(NULL);
86 if (clock->timer == NULL) {
87 rc = ENOMEM;
88 goto error;
89 }
90
91 fibril_mutex_initialize(&clock->lock);
92 fibril_condvar_initialize(&clock->timer_done_cv);
93 fibril_timer_set(clock->timer, 1000000, taskbar_clock_timer, clock);
94
95 clock->window = window;
96 *rclock = clock;
97 return EOK;
98error:
99 ui_control_delete(clock->control);
100 free(clock);
101 return rc;
102}
103
104/** Destroy task bar clock.
105 *

Callers 2

taskbar_createFunction · 0.85
clock.cFile · 0.85

Calls 8

callocFunction · 0.85
ui_control_newFunction · 0.85
fibril_timer_createFunction · 0.85
fibril_mutex_initializeFunction · 0.85
fibril_timer_setFunction · 0.85
ui_control_deleteFunction · 0.85
freeFunction · 0.50

Tested by

no test coverage detected