Changeset f0cc1c64 in mainline for uspace/lib
- Timestamp:
- 2025-06-20T19:26:13Z (8 months ago)
- Children:
- 817cb83
- Parents:
- f0360ec (diff), 5caad1d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- uspace/lib
- Files:
-
- 2 deleted
- 20 edited
-
c/generic/async/ports.c (modified) (12 diffs)
-
c/generic/async/server.c (modified) (2 diffs)
-
c/generic/loc.c (modified) (2 diffs)
-
c/generic/ns.c (modified) (3 diffs)
-
c/generic/private/async.h (modified) (2 diffs)
-
c/include/async.h (modified) (3 diffs)
-
c/include/loc.h (modified) (2 diffs)
-
c/test/loc.c (modified) (2 diffs)
-
ddev/test/ddev.c (modified) (6 diffs)
-
dispcfg/test/dispcfg.c (modified) (18 diffs)
-
display/test/display.c (modified) (34 diffs)
-
drv/generic/dev_iface.c (modified) (3 diffs)
-
drv/generic/driver.c (modified) (5 diffs)
-
drv/generic/remote_ahci.c (deleted)
-
drv/include/ahci_iface.h (deleted)
-
drv/meson.build (modified) (2 diffs)
-
hound/src/protocol.c (modified) (2 diffs)
-
ipcgfx/test/ipcgfx.c (modified) (18 diffs)
-
system/test/system.c (modified) (7 diffs)
-
tbarcfg/private/tbarcfg.h (modified) (3 diffs)
-
tbarcfg/src/tbarcfg.c (modified) (6 diffs)
-
wndmgt/test/wndmgt.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async/ports.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2006 Ondrej Palkovsky 3 4 * All rights reserved. … … 59 60 iface_t iface; 60 61 61 /** Interface ports*/62 hash_table_t port_hash_table;63 64 /** Next available port ID*/65 port_id_t port_id_avail;62 /** Interface connection handler */ 63 async_port_handler_t handler; 64 65 /** Client data */ 66 void *data; 66 67 } interface_t; 67 68 … … 73 74 port_id_t id; 74 75 75 /** Port connection handler */ 76 async_port_handler_t handler; 77 78 /** Client data */ 79 void *data; 76 /** Port interfaces */ 77 hash_table_t interface_hash_table; 80 78 } port_t; 81 79 … … 98 96 static void *fallback_port_data = NULL; 99 97 100 /** Futex guarding the interface hash table. */ 101 static fibril_rmutex_t interface_mutex; 102 static hash_table_t interface_hash_table; 98 /** Futex guarding the port hash table. */ 99 static fibril_rmutex_t port_mutex; 100 static hash_table_t port_hash_table; 101 /** Next available port ID */ 102 static port_id_t port_id_avail = 0; 103 103 104 104 static size_t interface_key_hash(const void *key) … … 158 158 }; 159 159 160 static interface_t *async_new_interface(iface_t iface) 160 static interface_t *async_new_interface(port_t *port, iface_t iface, 161 async_port_handler_t handler, void *data) 161 162 { 162 163 interface_t *interface = … … 164 165 if (!interface) 165 166 return NULL; 166 167 bool ret = hash_table_create(&interface->port_hash_table, 0, 0,168 &port_hash_table_ops);169 if (!ret) {170 free(interface);171 return NULL;172 }173 174 167 interface->iface = iface; 175 interface->port_id_avail = 0; 176 177 hash_table_insert(&interface_hash_table, &interface->link); 168 interface->handler = handler; 169 interface->data = data; 170 171 hash_table_insert(&port->interface_hash_table, &interface->link); 178 172 179 173 return interface; 180 174 } 181 175 182 static port_t *async_new_port(interface_t *interface, 183 async_port_handler_t handler, void *data) 176 static port_t *async_new_port(void) 184 177 { 185 178 // TODO: Move the malloc out of critical section. … … 188 181 return NULL; 189 182 190 port_id_t id = interface->port_id_avail; 191 interface->port_id_avail++; 183 bool ret = hash_table_create(&port->interface_hash_table, 0, 0, 184 &interface_hash_table_ops); 185 if (!ret) { 186 free(port); 187 return NULL; 188 } 189 190 port_id_t id = port_id_avail; 191 port_id_avail++; 192 192 193 193 port->id = id; 194 port->handler = handler; 195 port->data = data; 196 197 hash_table_insert(&interface->port_hash_table, &port->link); 194 hash_table_insert(&port_hash_table, &port->link); 198 195 199 196 return port; 197 } 198 199 static bool destroy_if(ht_link_t *link, void *arg) 200 { 201 port_t *port = (port_t *)arg; 202 203 hash_table_remove_item(&port->interface_hash_table, link); 204 return false; 205 } 206 207 static void async_delete_port(port_t *port) 208 { 209 /* Destroy interfaces */ 210 hash_table_apply(&port->interface_hash_table, destroy_if, port); 211 212 hash_table_destroy(&port->interface_hash_table); 213 free(port); 200 214 } 201 215 … … 205 219 interface_t *interface; 206 220 207 fibril_rmutex_lock(&interface_mutex); 208 209 ht_link_t *link = hash_table_find(&interface_hash_table, &iface); 210 if (link) 211 interface = hash_table_get_inst(link, interface_t, link); 212 else 213 interface = async_new_interface(iface); 214 215 if (!interface) { 216 fibril_rmutex_unlock(&interface_mutex); 221 fibril_rmutex_lock(&port_mutex); 222 223 port_t *port = async_new_port(); 224 if (port == NULL) { 225 fibril_rmutex_unlock(&port_mutex); 217 226 return ENOMEM; 218 227 } 219 228 220 port_t *port = async_new_port(interface, handler, data); 221 if (!port) { 222 fibril_rmutex_unlock(&interface_mutex); 229 interface = async_new_interface(port, iface, handler, data); 230 if (interface == NULL) { 231 async_delete_port(port); 232 fibril_rmutex_unlock(&port_mutex); 223 233 return ENOMEM; 224 234 } 225 235 226 236 *port_id = port->id; 227 228 fibril_rmutex_unlock(&interface_mutex); 229 237 fibril_rmutex_unlock(&port_mutex); 238 return EOK; 239 } 240 241 errno_t async_port_create_interface(port_id_t port_id, iface_t iface, 242 async_port_handler_t handler, void *data) 243 { 244 ht_link_t *link; 245 port_t *port; 246 interface_t *interface; 247 248 fibril_rmutex_lock(&port_mutex); 249 link = hash_table_find(&port_hash_table, &port_id); 250 assert(link != NULL); 251 port = hash_table_get_inst(link, port_t, link); 252 253 interface = async_new_interface(port, iface, handler, data); 254 if (interface == NULL) { 255 fibril_rmutex_unlock(&port_mutex); 256 return ENOMEM; 257 } 258 259 fibril_rmutex_unlock(&port_mutex); 230 260 return EOK; 231 261 } … … 248 278 } 249 279 250 static port_t *async_find_port(iface_t iface, port_id_t port_id) 251 { 252 port_t *port = NULL; 253 254 fibril_rmutex_lock(&interface_mutex); 255 256 ht_link_t *link = hash_table_find(&interface_hash_table, &iface); 257 if (link) { 258 interface_t *interface = 259 hash_table_get_inst(link, interface_t, link); 260 261 link = hash_table_find(&interface->port_hash_table, &port_id); 262 if (link) 263 port = hash_table_get_inst(link, port_t, link); 264 } 265 266 fibril_rmutex_unlock(&interface_mutex); 267 268 return port; 269 } 270 271 async_port_handler_t async_get_port_handler(iface_t iface, port_id_t port_id, 272 void **data) 280 typedef struct { 281 iface_t iface; 282 interface_t *interface; 283 } find_if_port_t; 284 285 static bool find_if_port(ht_link_t *link, void *arg) 286 { 287 find_if_port_t *fip = (find_if_port_t *)arg; 288 port_t *port; 289 interface_t *interface; 290 291 (void)arg; 292 port = hash_table_get_inst(link, port_t, link); 293 294 ht_link_t *ilink = hash_table_find(&port->interface_hash_table, 295 &fip->iface); 296 if (ilink) { 297 interface = hash_table_get_inst(ilink, interface_t, 298 link); 299 fip->interface = interface; 300 return false; 301 } 302 303 return true; 304 } 305 306 static interface_t *async_find_interface(iface_t iface, port_id_t port_id) 307 { 308 interface_t *interface = NULL; 309 find_if_port_t fip; 310 311 (void)port_id; // XXX !!! 312 313 fibril_rmutex_lock(&port_mutex); 314 315 /* 316 * XXX Find any port implementing that interface. In reality we should 317 * only look at port with ID port_id - but server.c does not 318 * provide us with a correct port ID 319 */ 320 321 fip.iface = iface; 322 fip.interface = NULL; 323 hash_table_apply(&port_hash_table, find_if_port, (void *)&fip); 324 interface = fip.interface; 325 326 fibril_rmutex_unlock(&port_mutex); 327 return interface; 328 } 329 330 async_port_handler_t async_get_interface_handler(iface_t iface, 331 port_id_t port_id, void **data) 273 332 { 274 333 assert(data); … … 277 336 *data = fallback_port_data; 278 337 279 port_t *port = async_find_port(iface, port_id);280 if ( port) {281 handler = port->handler;282 *data = port->data;338 interface_t *interface = async_find_interface(iface, port_id); 339 if (interface != NULL) { 340 handler = interface->handler; 341 *data = interface->data; 283 342 } 284 343 … … 286 345 } 287 346 288 /** Initialize the async framework. 347 void async_port_destroy(port_id_t port_id) 348 { 349 ht_link_t *link; 350 port_t *port; 351 352 fibril_rmutex_lock(&port_mutex); 353 link = hash_table_find(&port_hash_table, &port_id); 354 assert(link != NULL); 355 port = hash_table_get_inst(link, port_t, link); 356 async_delete_port(port); 357 fibril_rmutex_unlock(&port_mutex); 358 } 359 360 /** Initialize the async framework ports. 289 361 * 290 362 */ 291 363 void __async_ports_init(void) 292 364 { 293 if (fibril_rmutex_initialize(& interface_mutex) != EOK)365 if (fibril_rmutex_initialize(&port_mutex) != EOK) 294 366 abort(); 295 367 296 if (!hash_table_create(&interface_hash_table, 0, 0, 297 &interface_hash_table_ops)) 368 if (!hash_table_create(&port_hash_table, 0, 0, &port_hash_table_ops)) 298 369 abort(); 299 370 } … … 301 372 void __async_ports_fini(void) 302 373 { 303 fibril_rmutex_destroy(& interface_mutex);304 } 374 fibril_rmutex_destroy(&port_mutex); 375 } -
uspace/lib/c/generic/async/server.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2006 Ondrej Palkovsky 3 4 * All rights reserved. … … 955 956 void *data; 956 957 async_port_handler_t handler = 957 async_get_ port_handler(iface, 0, &data);958 async_get_interface_handler(iface, 0, &data); 958 959 959 960 async_new_connection(conn, call->task_id, call, handler, data); -
uspace/lib/c/generic/loc.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * Copyright (c) 2007 Josef Cejka 4 4 * All rights reserved. … … 258 258 * @param srv Server object 259 259 * @param fqsn Fully qualified service name 260 * @param portid ID of port providing the service 260 261 * @param sid Service ID of new service 261 262 * 262 263 */ 263 264 errno_t loc_service_register(loc_srv_t *srv, const char *fqsn, 264 service_id_t *sid)265 port_id_t portid, service_id_t *sid) 265 266 { 266 267 async_exch_t *exch = async_exchange_begin(srv->sess); 267 268 ipc_call_t answer; 268 aid_t req = async_send_ 0(exch, LOC_SERVICE_REGISTER, &answer);269 aid_t req = async_send_1(exch, LOC_SERVICE_REGISTER, portid, &answer); 269 270 errno_t retval = async_data_write_start(exch, fqsn, str_size(fqsn)); 270 271 -
uspace/lib/c/generic/ns.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2011 Martin Decky 3 4 * All rights reserved. … … 68 69 69 70 if (rc != EOK) { 71 async_port_destroy(port); 70 72 async_forget(req); 71 73 return rc; … … 74 76 errno_t retval; 75 77 async_wait_for(req, &retval); 78 79 if (rc != EOK) 80 async_port_destroy(port); 76 81 return rc; 77 82 } -
uspace/lib/c/generic/private/async.h
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2006 Ondrej Palkovsky 3 4 * All rights reserved. … … 103 104 extern errno_t async_create_port_internal(iface_t, async_port_handler_t, 104 105 void *, port_id_t *); 105 extern async_port_handler_t async_get_port_handler(iface_t, port_id_t, void **); 106 extern async_port_handler_t async_get_interface_handler(iface_t, port_id_t, 107 void **); 106 108 107 109 extern void async_reply_received(ipc_call_t *); -
uspace/lib/c/include/async.h
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2006 Ondrej Palkovsky 3 4 * All rights reserved. … … 99 100 } exch_mgmt_t; 100 101 102 enum { 103 fallback_port_id = 0 104 }; 105 101 106 /** Forward declarations */ 102 107 struct async_exch; … … 134 139 extern errno_t async_create_port(iface_t, async_port_handler_t, void *, 135 140 port_id_t *); 141 extern void async_port_destroy(port_id_t); 142 extern errno_t async_port_create_interface(port_id_t, iface_t, 143 async_port_handler_t, void *); 136 144 extern void async_set_fallback_port_handler(async_port_handler_t, void *); 137 145 extern errno_t async_create_callback_port(async_exch_t *, iface_t, sysarg_t, -
uspace/lib/c/include/loc.h
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 49 49 extern errno_t loc_server_register(const char *, loc_srv_t **); 50 50 extern void loc_server_unregister(loc_srv_t *); 51 extern errno_t loc_service_register(loc_srv_t *, const char *, service_id_t *); 51 extern errno_t loc_service_register(loc_srv_t *, const char *, port_id_t, 52 service_id_t *); 52 53 extern errno_t loc_service_unregister(loc_srv_t *, service_id_t); 53 54 extern errno_t loc_service_add_to_cat(loc_srv_t *, service_id_t, category_id_t); -
uspace/lib/c/test/loc.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 51 51 52 52 // XXX Without a unique name this is not reentrant 53 rc = loc_service_register(sa, "test/libc-service-a", &svca); 53 rc = loc_service_register(sa, "test/libc-service-a", 54 fallback_port_id, &svca); 54 55 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 55 56 56 57 // XXX Without a unique name this is not reentrant 57 rc = loc_service_register(sb, "test/libc-service-b", &svcb); 58 rc = loc_service_register(sb, "test/libc-service-b", 59 fallback_port_id, &svcb); 58 60 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 59 61 -
uspace/lib/ddev/test/ddev.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 86 86 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 87 87 88 rc = loc_service_register(srv, test_ddev_svc, &sid);88 rc = loc_service_register(srv, test_ddev_svc, fallback_port_id, &sid); 89 89 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 90 90 … … 115 115 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 116 116 117 rc = loc_service_register(srv, test_ddev_svc, &sid);117 rc = loc_service_register(srv, test_ddev_svc, fallback_port_id, &sid); 118 118 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 119 119 … … 151 151 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 152 152 153 rc = loc_service_register(srv, test_ddev_svc, &sid);153 rc = loc_service_register(srv, test_ddev_svc, fallback_port_id, &sid); 154 154 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 155 155 … … 196 196 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 197 197 198 rc = loc_service_register(srv, test_ddev_svc, &sid);198 rc = loc_service_register(srv, test_ddev_svc, fallback_port_id, &sid); 199 199 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 200 200 … … 229 229 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 230 230 231 rc = loc_service_register(srv, test_ddev_svc, &sid);231 rc = loc_service_register(srv, test_ddev_svc, fallback_port_id, &sid); 232 232 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 233 233 -
uspace/lib/dispcfg/test/dispcfg.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 60 60 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 61 61 62 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 62 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 63 &sid); 63 64 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 64 65 … … 89 90 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 90 91 91 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 92 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 93 &sid); 92 94 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 93 95 … … 125 127 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 126 128 127 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 129 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 130 &sid); 128 131 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 129 132 … … 174 177 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 175 178 176 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 179 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 180 &sid); 177 181 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 178 182 … … 213 217 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 214 218 215 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 219 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 220 &sid); 216 221 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 217 222 … … 258 263 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 259 264 260 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 265 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 266 &sid); 261 267 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 262 268 … … 298 304 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 299 305 300 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 306 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 307 &sid); 301 308 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 302 309 … … 338 345 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 339 346 340 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 347 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 348 &sid); 341 349 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 342 350 … … 376 384 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 377 385 378 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 386 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 387 &sid); 379 388 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 380 389 … … 415 424 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 416 425 417 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 426 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 427 &sid); 418 428 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 419 429 … … 456 466 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 457 467 458 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 468 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 469 &sid); 459 470 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 460 471 … … 496 507 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 497 508 498 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 509 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 510 &sid); 499 511 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 500 512 … … 534 546 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 535 547 536 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 548 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 549 &sid); 537 550 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 538 551 … … 573 586 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 574 587 575 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 588 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 589 &sid); 576 590 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 577 591 … … 612 626 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 613 627 614 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 628 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 629 &sid); 615 630 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 616 631 … … 661 676 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 662 677 663 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 678 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 679 &sid); 664 680 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 665 681 … … 710 726 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 711 727 712 rc = loc_service_register(srv, test_dispcfg_svc, &sid); 728 rc = loc_service_register(srv, test_dispcfg_svc, fallback_port_id, 729 &sid); 713 730 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 714 731 -
uspace/lib/display/test/display.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 194 194 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 195 195 196 rc = loc_service_register(srv, test_display_svc, &sid); 196 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 197 &sid); 197 198 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 198 199 … … 224 225 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 225 226 226 rc = loc_service_register(srv, test_display_svc, &sid); 227 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 228 &sid); 227 229 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 228 230 … … 282 284 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 283 285 284 rc = loc_service_register(srv, test_display_svc, &sid); 286 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 287 &sid); 285 288 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 286 289 … … 339 342 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 340 343 341 rc = loc_service_register(srv, test_display_svc, &sid); 344 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 345 &sid); 342 346 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 343 347 … … 402 406 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 403 407 404 rc = loc_service_register(srv, test_display_svc, &sid); 408 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 409 &sid); 405 410 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 406 411 … … 462 467 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 463 468 464 rc = loc_service_register(srv, test_display_svc, &sid); 469 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 470 &sid); 465 471 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 466 472 … … 521 527 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 522 528 523 rc = loc_service_register(srv, test_display_svc, &sid); 529 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 530 &sid); 524 531 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 525 532 … … 577 584 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 578 585 579 rc = loc_service_register(srv, test_display_svc, &sid); 586 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 587 &sid); 580 588 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 581 589 … … 633 641 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 634 642 635 rc = loc_service_register(srv, test_display_svc, &sid); 643 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 644 &sid); 636 645 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 637 646 … … 690 699 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 691 700 692 rc = loc_service_register(srv, test_display_svc, &sid); 701 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 702 &sid); 693 703 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 694 704 … … 749 759 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 750 760 751 rc = loc_service_register(srv, test_display_svc, &sid); 761 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 762 &sid); 752 763 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 753 764 … … 810 821 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 811 822 812 rc = loc_service_register(srv, test_display_svc, &sid); 823 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 824 &sid); 813 825 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 814 826 … … 877 889 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 878 890 879 rc = loc_service_register(srv, test_display_svc, &sid); 891 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 892 &sid); 880 893 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 881 894 … … 940 953 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 941 954 942 rc = loc_service_register(srv, test_display_svc, &sid); 955 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 956 &sid); 943 957 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 944 958 … … 1002 1016 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1003 1017 1004 rc = loc_service_register(srv, test_display_svc, &sid); 1018 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1019 &sid); 1005 1020 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1006 1021 … … 1067 1082 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1068 1083 1069 rc = loc_service_register(srv, test_display_svc, &sid); 1084 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1085 &sid); 1070 1086 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1071 1087 … … 1129 1145 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1130 1146 1131 rc = loc_service_register(srv, test_display_svc, &sid); 1147 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1148 &sid); 1132 1149 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1133 1150 … … 1179 1196 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1180 1197 1181 rc = loc_service_register(srv, test_display_svc, &sid); 1198 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1199 &sid); 1182 1200 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1183 1201 … … 1229 1247 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1230 1248 1231 rc = loc_service_register(srv, test_display_svc, &sid); 1249 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1250 &sid); 1232 1251 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1233 1252 … … 1279 1298 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1280 1299 1281 rc = loc_service_register(srv, test_display_svc, &sid); 1300 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1301 &sid); 1282 1302 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1283 1303 … … 1329 1349 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1330 1350 1331 rc = loc_service_register(srv, test_display_svc, &sid); 1351 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1352 &sid); 1332 1353 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1333 1354 … … 1381 1402 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1382 1403 1383 rc = loc_service_register(srv, test_display_svc, &sid); 1404 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1405 &sid); 1384 1406 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1385 1407 … … 1434 1456 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1435 1457 1436 rc = loc_service_register(srv, test_display_svc, &sid); 1458 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1459 &sid); 1437 1460 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1438 1461 … … 1490 1513 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1491 1514 1492 rc = loc_service_register(srv, test_display_svc, &sid); 1515 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1516 &sid); 1493 1517 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1494 1518 … … 1546 1570 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1547 1571 1548 rc = loc_service_register(srv, test_display_svc, &sid); 1572 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1573 &sid); 1549 1574 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1550 1575 … … 1601 1626 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1602 1627 1603 rc = loc_service_register(srv, test_display_svc, &sid); 1628 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1629 &sid); 1604 1630 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1605 1631 … … 1662 1688 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1663 1689 1664 rc = loc_service_register(srv, test_display_svc, &sid); 1690 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1691 &sid); 1665 1692 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1666 1693 … … 1729 1756 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1730 1757 1731 rc = loc_service_register(srv, test_display_svc, &sid); 1758 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1759 &sid); 1732 1760 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1733 1761 … … 1799 1827 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1800 1828 1801 rc = loc_service_register(srv, test_display_svc, &sid); 1829 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1830 &sid); 1802 1831 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1803 1832 … … 1878 1907 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1879 1908 1880 rc = loc_service_register(srv, test_display_svc, &sid); 1909 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1910 &sid); 1881 1911 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1882 1912 … … 1957 1987 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1958 1988 1959 rc = loc_service_register(srv, test_display_svc, &sid); 1989 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 1990 &sid); 1960 1991 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1961 1992 … … 2026 2057 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 2027 2058 2028 rc = loc_service_register(srv, test_display_svc, &sid); 2059 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 2060 &sid); 2029 2061 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 2030 2062 … … 2062 2094 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 2063 2095 2064 rc = loc_service_register(srv, test_display_svc, &sid); 2096 rc = loc_service_register(srv, test_display_svc, fallback_port_id, 2097 &sid); 2065 2098 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 2066 2099 -
uspace/lib/drv/generic/dev_iface.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2010 Lenka Trochtova 3 4 * All rights reserved. … … 53 54 #include "remote_audio_mixer.h" 54 55 #include "remote_audio_pcm.h" 55 #include "remote_ahci.h"56 56 57 57 static const iface_dipatch_table_t remote_ifaces = { … … 71 71 [LED_DEV_IFACE] = &remote_led_dev_iface, 72 72 [BATTERY_DEV_IFACE] = &remote_battery_dev_iface, 73 [AHCI_DEV_IFACE] = &remote_ahci_iface,74 73 } 75 74 }; -
uspace/lib/drv/generic/driver.c
rf0360ec rf0cc1c64 1046 1046 errno_t ddf_driver_main(const driver_t *drv) 1047 1047 { 1048 port_id_t drv_port; 1049 port_id_t devman_port; 1050 1048 1051 /* 1049 1052 * Remember the driver structure - driver_ops will be called by generic … … 1056 1059 * incoming connections. 1057 1060 */ 1058 port_id_t port; 1059 errno_t rc = async_create_port(INTERFACE_DDF_DRIVER, driver_connection_driver, 1060 NULL, &port); 1061 errno_t rc = async_create_port(INTERFACE_DDF_DRIVER, 1062 driver_connection_driver, NULL, &drv_port); 1061 1063 if (rc != EOK) { 1062 1064 printf("Error: Failed to create driver port.\n"); … … 1065 1067 1066 1068 rc = async_create_port(INTERFACE_DDF_DEVMAN, driver_connection_devman, 1067 NULL, & port);1069 NULL, &devman_port); 1068 1070 if (rc != EOK) { 1069 1071 printf("Error: Failed to create devman port.\n"); 1072 async_port_destroy(drv_port); 1070 1073 return rc; 1071 1074 } … … 1078 1081 "(%s).\n", (rc == EEXIST) ? "driver already started" : 1079 1082 str_error(rc)); 1080 1083 async_port_destroy(devman_port); 1084 async_port_destroy(drv_port); 1081 1085 return rc; 1082 1086 } … … 1086 1090 if (rc != EOK) { 1087 1091 printf("Error: Failed returning task value.\n"); 1092 // XXX devman_driver_unregister 1093 async_port_destroy(devman_port); 1094 async_port_destroy(drv_port); 1088 1095 return rc; 1089 1096 } -
uspace/lib/drv/meson.build
rf0360ec rf0cc1c64 1 1 # 2 # Copyright (c) 2025 Jiri Svoboda 2 3 # Copyright (c) 2005 Martin Decky 3 4 # Copyright (c) 2007 Jakub Jermar … … 50 51 'generic/remote_led_dev.c', 51 52 'generic/remote_battery_dev.c', 52 'generic/remote_ahci.c',53 53 ) -
uspace/lib/hound/src/protocol.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * Copyright (c) 2012 Jan Vesely 4 4 * All rights reserved. … … 746 746 return rc; 747 747 748 rc = loc_service_register(hound_srv, HOUND_SERVICE, id); 748 rc = loc_service_register(hound_srv, HOUND_SERVICE, 749 fallback_port_id, id); 749 750 if (rc != EOK) { 750 751 loc_server_unregister(hound_srv); -
uspace/lib/ipcgfx/test/ipcgfx.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 128 128 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 129 129 130 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);130 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 131 131 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 132 132 … … 180 180 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 181 181 182 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);182 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 183 183 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 184 184 … … 232 232 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 233 233 234 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);234 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 235 235 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 236 236 … … 278 278 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 279 279 280 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);280 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 281 281 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 282 282 … … 330 330 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 331 331 332 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);332 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 333 333 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 334 334 … … 382 382 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 383 383 384 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);384 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 385 385 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 386 386 … … 434 434 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 435 435 436 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);436 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 437 437 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 438 438 … … 485 485 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 486 486 487 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);487 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 488 488 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 489 489 … … 528 528 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 529 529 530 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);530 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 531 531 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 532 532 … … 573 573 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 574 574 575 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);575 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 576 576 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 577 577 … … 634 634 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 635 635 636 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);636 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 637 637 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 638 638 … … 700 700 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 701 701 702 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);702 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 703 703 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 704 704 … … 755 755 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 756 756 757 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);757 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 758 758 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 759 759 … … 817 817 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 818 818 819 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);819 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 820 820 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 821 821 … … 886 886 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 887 887 888 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);888 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 889 889 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 890 890 … … 956 956 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 957 957 958 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);958 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 959 959 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 960 960 … … 1025 1025 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1026 1026 1027 rc = loc_service_register(srv, test_ipcgfx_svc, &sid);1027 rc = loc_service_register(srv, test_ipcgfx_svc, fallback_port_id, &sid); 1028 1028 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1029 1029 -
uspace/lib/system/test/system.c
rf0360ec rf0cc1c64 93 93 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 94 94 95 rc = loc_service_register(srv, test_system_svc, &sid);95 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 96 96 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 97 97 … … 121 121 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 122 122 123 rc = loc_service_register(srv, test_system_svc, &sid);123 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 124 124 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 125 125 … … 156 156 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 157 157 158 rc = loc_service_register(srv, test_system_svc, &sid);158 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 159 159 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 160 160 … … 191 191 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 192 192 193 rc = loc_service_register(srv, test_system_svc, &sid);193 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 194 194 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 195 195 … … 226 226 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 227 227 228 rc = loc_service_register(srv, test_system_svc, &sid);228 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 229 229 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 230 230 … … 263 263 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 264 264 265 rc = loc_service_register(srv, test_system_svc, &sid);265 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 266 266 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 267 267 … … 307 307 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 308 308 309 rc = loc_service_register(srv, test_system_svc, &sid);309 rc = loc_service_register(srv, test_system_svc, fallback_port_id, &sid); 310 310 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 311 311 -
uspace/lib/tbarcfg/private/tbarcfg.h
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 39 39 40 40 #include <adt/list.h> 41 #include <loc.h> 41 42 #include <stdbool.h> 42 43 #include <types/tbarcfg/tbarcfg.h> … … 68 69 /** Taskbar configuration listener */ 69 70 typedef struct tbarcfg_listener { 71 /** Async port */ 72 port_id_t portid; 73 /** Registered server */ 74 loc_srv_t *srv; 75 /** Registered service */ 76 service_id_t svcid; 70 77 /** Notification callback */ 71 78 void (*cb)(void *); -
uspace/lib/tbarcfg/src/tbarcfg.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 639 639 char *svcname = NULL; 640 640 category_id_t catid; 641 port_id_t port ;641 port_id_t port = 0; 642 642 int rv; 643 643 errno_t rc; … … 667 667 } 668 668 669 rc = loc_service_register(srv, svcname, &svcid); 670 if (rc != EOK) 671 goto error; 669 rc = loc_service_register(srv, svcname, port, &svcid); 670 if (rc != EOK) 671 goto error; 672 673 free(svcname); 674 svcname = NULL; 672 675 673 676 rc = loc_category_get_id(nchan, &catid, 0); … … 679 682 goto error; 680 683 684 lst->portid = port; 685 lst->srv = srv; 686 lst->svcid = svcid; 681 687 *rlst = lst; 682 688 return EOK; … … 688 694 if (svcname != NULL) 689 695 free(svcname); 696 if (port != 0) 697 async_port_destroy(port); 690 698 return rc; 691 699 } … … 697 705 void tbarcfg_listener_destroy(tbarcfg_listener_t *lst) 698 706 { 707 loc_service_unregister(lst->srv, lst->svcid); 708 loc_server_unregister(lst->srv); 709 async_port_destroy(lst->portid); 699 710 free(lst); 700 711 } -
uspace/lib/wndmgt/test/wndmgt.c
rf0360ec rf0cc1c64 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 125 125 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 126 126 127 rc = loc_service_register(srv, test_wndmgt_svc, &sid);127 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 128 128 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 129 129 … … 154 154 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 155 155 156 rc = loc_service_register(srv, test_wndmgt_svc, &sid);156 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 157 157 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 158 158 … … 190 190 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 191 191 192 rc = loc_service_register(srv, test_wndmgt_svc, &sid);192 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 193 193 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 194 194 … … 239 239 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 240 240 241 rc = loc_service_register(srv, test_wndmgt_svc, &sid);241 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 242 242 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 243 243 … … 278 278 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 279 279 280 rc = loc_service_register(srv, test_wndmgt_svc, &sid);280 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 281 281 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 282 282 … … 328 328 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 329 329 330 rc = loc_service_register(srv, test_wndmgt_svc, &sid);330 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 331 331 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 332 332 … … 369 369 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 370 370 371 rc = loc_service_register(srv, test_wndmgt_svc, &sid);371 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 372 372 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 373 373 … … 409 409 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 410 410 411 rc = loc_service_register(srv, test_wndmgt_svc, &sid);411 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 412 412 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 413 413 … … 447 447 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 448 448 449 rc = loc_service_register(srv, test_wndmgt_svc, &sid);449 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 450 450 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 451 451 … … 484 484 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 485 485 486 rc = loc_service_register(srv, test_wndmgt_svc, &sid);486 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 487 487 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 488 488 … … 533 533 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 534 534 535 rc = loc_service_register(srv, test_wndmgt_svc, &sid);535 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 536 536 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 537 537 … … 582 582 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 583 583 584 rc = loc_service_register(srv, test_wndmgt_svc, &sid);584 rc = loc_service_register(srv, test_wndmgt_svc, fallback_port_id, &sid); 585 585 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 586 586
Note:
See TracChangeset
for help on using the changeset viewer.
