Changeset 4c6fd56 in mainline for uspace/app


Ignore:
Timestamp:
2023-09-16T19:58:18Z (2 years ago)
Author:
Jiri Svoboda <jiri@…>
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)
Message:

loc_server_register() should be callable more than once (API only)

Now loc_server_register() returns a pointer to a loc_srv_t object,
that is then passed to loc_service_register() and
loc_service_add_to_cat().

Added loc_server_unregister() that unregisters the server
and frees the loc_srv_t object.

Updated all callers. The implementation, however, is a stub.
It is not actually possible to call loc_server_register() more
than once, yet.

Location:
uspace/app
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/display-cfg/test/seats.c

    r6a0b2cc r4c6fd56  
    9494        service_id_t sid;
    9595        test_response_t resp;
     96        loc_srv_t *srv;
    9697
    9798        async_set_fallback_port_handler(test_dispcfg_conn, &resp);
    9899
    99100        // FIXME This causes this test to be non-reentrant!
    100         rc = loc_server_register(test_dispcfg_server);
    101         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    102 
    103         rc = loc_service_register(test_dispcfg_svc, &sid);
     101        rc = loc_server_register(test_dispcfg_server, &srv);
     102        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     103
     104        rc = loc_service_register(srv, test_dispcfg_svc, &sid);
    104105        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    105106
     
    135136        dcfg_seats_destroy(seats);
    136137        display_cfg_destroy(dcfg);
     138
     139        rc = loc_service_unregister(srv, sid);
     140        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     141        loc_server_unregister(srv);
    137142}
    138143
  • uspace/app/taskbar/test/wndlist.c

    r6a0b2cc r4c6fd56  
    139139        ui_fixed_t *fixed = NULL;
    140140        wndlist_t *wndlist;
     141        loc_srv_t *srv;
    141142
    142143        /* Set up a test WM service */
     
    145146
    146147        // FIXME This causes this test to be non-reentrant!
    147         rc = loc_server_register(test_wndmgt_server);
    148         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    149 
    150         rc = loc_service_register(test_wndmgt_svc, &sid);
     148        rc = loc_server_register(test_wndmgt_server, &srv);
     149        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     150
     151        rc = loc_service_register(srv, test_wndmgt_svc, &sid);
    151152        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    152153
     
    177178        ui_destroy(ui);
    178179
    179         rc = loc_service_unregister(sid);
    180         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     180        rc = loc_service_unregister(srv, sid);
     181        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     182        loc_server_unregister(srv);
    181183}
    182184
  • uspace/app/terminal/terminal.c

    r6a0b2cc r4c6fd56  
    10221022        term->srvs.sarg = term;
    10231023
    1024         rc = loc_server_register(NAME);
     1024        rc = loc_server_register(NAME, &term->srv);
    10251025        if (rc != EOK) {
    10261026                printf("Error registering server.\n");
     
    10331033            task_get_id());
    10341034
    1035         rc = loc_service_register(vc, &term->dsid);
     1035        rc = loc_service_register(term->srv, vc, &term->dsid);
    10361036        if (rc != EOK) {
    10371037                printf("Error registering service.\n");
     
    10631063        return EOK;
    10641064error:
     1065        if (term->dsid != 0)
     1066                loc_service_unregister(term->srv, term->dsid);
     1067        if (term->srv != NULL)
     1068                loc_server_unregister(term->srv);
    10651069        if (term->window != NULL)
    10661070                ui_window_destroy(term->window);
  • uspace/app/terminal/terminal.h

    r6a0b2cc r4c6fd56  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * Copyright (c) 2012 Petr Koupy
    44 * All rights reserved.
     
    9191        charfield_t *ubuf;
    9292
     93        loc_srv_t *srv;
    9394        service_id_t dsid;
    9495        con_srvs_t srvs;
Note: See TracChangeset for help on using the changeset viewer.