Changeset 4c6fd56 in mainline for uspace/srv/bd/sata_bd/sata_bd.c


Ignore:
Timestamp:
2023-09-16T19:58:18Z (9 months 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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/sata_bd/sata_bd.c

    r6a0b2cc r4c6fd56  
    11/*
     2 * Copyright (c) 2023 Jiri Svoboda
    23 * Copyright (c) 2012 Petr Jerman
    34 * All rights reserved.
     
    5758#define MAXDISKS  256
    5859
     60static loc_srv_t *srv;
    5961static sata_bd_dev_t disk[MAXDISKS];
    6062static int disk_count;
     
    249251
    250252        async_set_fallback_port_handler(sata_bd_connection, NULL);
    251         rc = loc_server_register(NAME);
     253        rc = loc_server_register(NAME, &srv);
    252254        if (rc != EOK) {
    253255                printf(NAME ": Unable to register driver: %s.\n", str_error(rc));
     
    270272                char name[1024];
    271273                snprintf(name, 1024, "%s/%s", NAMESPACE, disk[i].dev_name);
    272                 rc = loc_service_register(name, &disk[i].service_id);
     274                rc = loc_service_register(srv, name, &disk[i].service_id);
    273275                if (rc != EOK) {
    274276                        printf(NAME ": Unable to register device %s: %s\n", name, str_error(rc));
     
    276278                }
    277279
    278                 rc = loc_service_add_to_cat(disk[i].service_id, disk_cat);
     280                rc = loc_service_add_to_cat(srv, disk[i].service_id, disk_cat);
    279281                if (rc != EOK) {
    280282                        printf("%s: Failed adding %s to category: %s.",
Note: See TracChangeset for help on using the changeset viewer.