Changes in uspace/srv/hid/display/cfgops.c [8a4ceaa:b3eeae5] in mainline
- File:
-
- 1 edited
-
uspace/srv/hid/display/cfgops.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/display/cfgops.c
r8a4ceaa rb3eeae5 50 50 static errno_t dispc_dev_assign(void *, sysarg_t, sysarg_t); 51 51 static errno_t dispc_dev_unassign(void *, sysarg_t); 52 static errno_t dispc_get_asgn_dev_list(void *, sysarg_t, dispcfg_dev_list_t **);53 52 static errno_t dispc_get_event(void *, dispcfg_ev_t *); 54 53 … … 60 59 .dev_assign = dispc_dev_assign, 61 60 .dev_unassign = dispc_dev_unassign, 62 .get_asgn_dev_list = dispc_get_asgn_dev_list,63 61 .get_event = dispc_get_event, 64 62 }; … … 197 195 ds_cfgclient_t *cfgclient = (ds_cfgclient_t *)arg; 198 196 ds_seat_t *seat; 199 ds_seat_t *s;200 197 201 198 log_msg(LOG_DEFAULT, LVL_DEBUG, "dispcfg_seat_delete()"); … … 206 203 ds_display_unlock(cfgclient->display); 207 204 return ENOENT; 208 }209 210 /* Verify we are not deleting the last seat */211 s = ds_display_first_seat(cfgclient->display);212 if (s == seat && ds_display_next_seat(s) == NULL) {213 ds_display_unlock(cfgclient->display);214 return EBUSY;215 205 } 216 206 … … 291 281 } 292 282 293 /** Get assigned device list.294 *295 * @param arg Argument (CFG client)296 * @param seat_id Seat ID297 * @param rlist Place to store pointer to new list298 * @return EOK on success or an error code299 */300 static errno_t dispc_get_asgn_dev_list(void *arg, sysarg_t seat_id,301 dispcfg_dev_list_t **rlist)302 {303 ds_cfgclient_t *cfgclient = (ds_cfgclient_t *)arg;304 dispcfg_dev_list_t *list;305 ds_seat_t *seat;306 ds_idevcfg_t *idevcfg;307 unsigned i;308 309 log_msg(LOG_DEFAULT, LVL_DEBUG, "dispcfg_get_asgn_dev_list()");310 311 list = calloc(1, sizeof(dispcfg_dev_list_t));312 if (list == NULL)313 return ENOMEM;314 315 ds_display_lock(cfgclient->display);316 317 seat = ds_display_find_seat(cfgclient->display, seat_id);318 if (seat == NULL) {319 ds_display_unlock(cfgclient->display);320 free(list);321 return ENOENT;322 }323 324 /* Count the number of devices */325 list->ndevs = 0;326 idevcfg = ds_seat_first_idevcfg(seat);327 while (idevcfg != NULL) {328 ++list->ndevs;329 idevcfg = ds_display_next_idevcfg(idevcfg);330 }331 332 /* Allocate array for device IDs */333 list->devs = calloc(list->ndevs, sizeof(sysarg_t));334 if (list->devs == NULL) {335 ds_display_unlock(cfgclient->display);336 free(list);337 return ENOMEM;338 }339 340 /* Fill in device IDs */341 i = 0;342 idevcfg = ds_seat_first_idevcfg(seat);343 while (idevcfg != NULL) {344 list->devs[i++] = idevcfg->svc_id;345 idevcfg = ds_display_next_idevcfg(idevcfg);346 }347 348 ds_display_unlock(cfgclient->display);349 *rlist = list;350 return EOK;351 }352 353 283 /** Get display configuration event. 354 284 *
Note:
See TracChangeset
for help on using the changeset viewer.
