Changeset da5c257 in mainline


Ignore:
Timestamp:
2024-08-31T10:35:43Z (9 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
12cbf25e
Parents:
e0b7763
Message:

hr: create util.c

Location:
uspace/srv/bd/hr
Files:
2 added
4 edited

Legend:

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

    re0b7763 rda5c257  
    3636#include <async.h>
    3737#include <bd_srv.h>
    38 #include <block.h>
    3938#include <errno.h>
    4039#include <hr.h>
     
    5958static service_id_t ctl_sid;
    6059
    61 errno_t hr_init_devs(hr_volume_t *vol)
    62 {
    63         log_msg(LOG_DEFAULT, LVL_NOTE, "hr_init_devs()");
    64 
    65         errno_t rc;
    66         size_t i;
    67 
    68         for (i = 0; i < vol->dev_no; i++) {
    69                 rc = block_init(vol->devs[i]);
    70                 log_msg(LOG_DEFAULT, LVL_DEBUG,
    71                     "hr_init_devs(): initing (%" PRIun ")", vol->devs[i]);
    72                 if (rc != EOK) {
    73                         log_msg(LOG_DEFAULT, LVL_ERROR,
    74                             "hr_init_devs(): initing (%" PRIun ") failed, aborting",
    75                             vol->devs[i]);
    76                         break;
    77                 }
    78         }
    79 
    80         return rc;
    81 }
    82 
    83 void hr_fini_devs(hr_volume_t *vol)
    84 {
    85         log_msg(LOG_DEFAULT, LVL_NOTE, "hr_fini_devs()");
    86 
    87         size_t i;
    88 
    89         for (i = 0; i < vol->dev_no; i++)
    90                 block_fini(vol->devs[i]);
    91 }
    92 
    9360static void hr_create_srv(ipc_call_t *icall)
    9461{
     
    211178        hr_volume_t *vol;
    212179
    213         sysarg_t svc_id = ipc_get_arg2(icall);
     180        service_id_t svc_id = ipc_get_arg2(icall);
    214181
    215182        if (svc_id == ctl_sid) {
  • uspace/srv/bd/hr/meson.build

    re0b7763 rda5c257  
    2828
    2929deps = [ 'block', 'device' ]
    30 src = files('hr.c', 'raid1.c')
     30src = files('hr.c', 'raid1.c', 'util.c')
  • uspace/srv/bd/hr/raid1.c

    re0b7763 rda5c257  
    4949
    5050#include "var.h"
     51#include "util.h"
    5152
    5253extern fibril_mutex_t big_lock;
     
    160161
    161162        errno_t rc;
    162         service_id_t new_id;
    163         category_id_t cat_id;
    164163
    165164        rc = hr_init_devs(new_volume);
    166165        if (rc != EOK)
    167                 goto end;
     166                return rc;
    168167
    169168        bd_srvs_init(&new_volume->hr_bds);
     
    171170        new_volume->hr_bds.sarg = new_volume;
    172171
    173         rc = loc_service_register(hr_srv, new_volume->devname, &new_id);
     172        rc = hr_register_volume(new_volume);
    174173        if (rc != EOK) {
    175                 log_msg(LOG_DEFAULT, LVL_ERROR,
    176                     "unable to register device \"%s\": %s\n",
    177                     new_volume->devname, str_error(rc));
    178 
    179                 goto error;
     174                hr_fini_devs(new_volume);
     175                return rc;
    180176        }
    181177
    182         rc = loc_category_get_id("raid", &cat_id, IPC_FLAG_BLOCKING);
    183         if (rc != EOK) {
    184                 log_msg(LOG_DEFAULT, LVL_ERROR,
    185                     "failed resolving category \"raid\": %s\n", str_error(rc));
    186                 goto error;
    187         }
    188 
    189         rc = loc_service_add_to_cat(hr_srv, new_id, cat_id);
    190         if (rc != EOK) {
    191                 log_msg(LOG_DEFAULT, LVL_ERROR,
    192                     "failed adding \"%s\" to category \"raid\": %s\n",
    193                     new_volume->devname, str_error(rc));
    194                 goto error;
    195         }
    196 
    197         new_volume->svc_id = new_id;
    198 
    199178        return EOK;
    200 error:
    201         hr_fini_devs(new_volume);
    202 end:
    203         return rc;
    204179}
    205180
  • uspace/srv/bd/hr/var.h

    re0b7763 rda5c257  
    3737#define _HR_VAR_H
    3838
     39#include <bd_srv.h>
     40#include <errno.h>
     41#include <hr.h>
     42
    3943#define NAME "hr"
    4044
     
    5963extern void hr_fini_devs(hr_volume_t *);
    6064
     65extern errno_t hr_raid0_create(hr_volume_t *);
    6166extern errno_t hr_raid1_create(hr_volume_t *);
    6267
Note: See TracChangeset for help on using the changeset viewer.