Changeset 4c6fd56 in mainline for uspace/lib/c/generic/loc.c
- Timestamp:
- 2023-09-16T19:58:18Z (16 months ago)
- Branches:
- master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7d7f5e3
- Parents:
- 6a0b2cc
- git-author:
- Jiri Svoboda <jiri@…> (2023-09-16 19:48:07)
- git-committer:
- Jiri Svoboda <jiri@…> (2023-09-16 19:58:18)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/loc.c
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 2023 Jiri Svoboda 2 3 * Copyright (c) 2007 Josef Cejka 3 * Copyright (c) 2011 Jiri Svoboda4 4 * All rights reserved. 5 5 * … … 239 239 } 240 240 241 /** Register new server with loc. */ 242 errno_t loc_server_register(const char *name) 243 { 244 async_exch_t *exch = loc_exchange_begin_blocking(INTERFACE_LOC_SUPPLIER); 241 /** Register new server with loc. 242 * 243 * XXX Proper impementation - currently cannot actually call 244 * this function more than once. 245 * 246 * @param name Server name 247 * @param rsrv Place to store new server object on success 248 * @return EOK on succes or an error code 249 */ 250 errno_t loc_server_register(const char *name, loc_srv_t **rsrv) 251 { 252 async_exch_t *exch; 253 loc_srv_t *srv; 254 255 srv = calloc(1, sizeof(loc_srv_t)); 256 if (srv == NULL) 257 return ENOMEM; 258 259 exch = loc_exchange_begin_blocking(INTERFACE_LOC_SUPPLIER); 245 260 246 261 ipc_call_t answer; … … 251 266 async_forget(req); 252 267 loc_exchange_end(exch); 268 free(srv); 253 269 return retval; 254 270 } … … 264 280 loc_exchange_end(exch); 265 281 282 if (retval != EOK) { 283 free(srv); 284 return retval; 285 } 286 287 *rsrv = srv; 266 288 return retval; 267 289 } 268 290 291 /** Unregister server from loc. 292 * 293 * Unregister server and free server object. 294 * 295 * XXX Proper implementation 296 * 297 * @param srv Server object 298 */ 299 void loc_server_unregister(loc_srv_t *srv) 300 { 301 free(srv); 302 } 303 269 304 /** Register new service. 270 305 * 271 * @param fqsn Fully qualified service name 272 * @param[out] sid Service ID of new service 273 * 274 */ 275 errno_t loc_service_register(const char *fqsn, service_id_t *sid) 306 * @param srv Server object 307 * @param fqsn Fully qualified service name 308 * @param sid Service ID of new service 309 * 310 */ 311 errno_t loc_service_register(loc_srv_t *srv, const char *fqsn, 312 service_id_t *sid) 276 313 { 277 314 async_exch_t *exch = loc_exchange_begin_blocking(INTERFACE_LOC_SUPPLIER); 315 316 (void)srv; 278 317 279 318 ipc_call_t answer; … … 310 349 /** Unregister service. 311 350 * 312 * @param sid Service ID 313 */ 314 errno_t loc_service_unregister(service_id_t sid) 351 * @param srv Server object 352 * @param sid Service ID 353 */ 354 errno_t loc_service_unregister(loc_srv_t *srv, service_id_t sid) 315 355 { 316 356 async_exch_t *exch; 317 357 errno_t retval; 358 359 (void)srv; 318 360 319 361 exch = loc_exchange_begin_blocking(INTERFACE_LOC_SUPPLIER); … … 611 653 /** Add service to category. 612 654 * 613 * @param svc_id Service ID 614 * @param cat_id Category ID 615 * @return EOK on success or an error code 616 */ 617 errno_t loc_service_add_to_cat(service_id_t svc_id, service_id_t cat_id) 655 * @param srv Server object 656 * @param svc_id Service ID 657 * @param cat_id Category ID 658 * 659 * @return EOK on success or an error code 660 */ 661 errno_t loc_service_add_to_cat(loc_srv_t *srv, service_id_t svc_id, 662 service_id_t cat_id) 618 663 { 619 664 async_exch_t *exch;
Note:
See TracChangeset
for help on using the changeset viewer.