Changeset da5c257 in mainline
- Timestamp:
- 2024-08-31T10:35:43Z (9 months ago)
- Children:
- 12cbf25e
- Parents:
- e0b7763
- Location:
- uspace/srv/bd/hr
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/hr/hr.c
re0b7763 rda5c257 36 36 #include <async.h> 37 37 #include <bd_srv.h> 38 #include <block.h>39 38 #include <errno.h> 40 39 #include <hr.h> … … 59 58 static service_id_t ctl_sid; 60 59 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 93 60 static void hr_create_srv(ipc_call_t *icall) 94 61 { … … 211 178 hr_volume_t *vol; 212 179 213 s ysarg_t svc_id = ipc_get_arg2(icall);180 service_id_t svc_id = ipc_get_arg2(icall); 214 181 215 182 if (svc_id == ctl_sid) { -
uspace/srv/bd/hr/meson.build
re0b7763 rda5c257 28 28 29 29 deps = [ 'block', 'device' ] 30 src = files('hr.c', 'raid1.c' )30 src = files('hr.c', 'raid1.c', 'util.c') -
uspace/srv/bd/hr/raid1.c
re0b7763 rda5c257 49 49 50 50 #include "var.h" 51 #include "util.h" 51 52 52 53 extern fibril_mutex_t big_lock; … … 160 161 161 162 errno_t rc; 162 service_id_t new_id;163 category_id_t cat_id;164 163 165 164 rc = hr_init_devs(new_volume); 166 165 if (rc != EOK) 167 goto end;166 return rc; 168 167 169 168 bd_srvs_init(&new_volume->hr_bds); … … 171 170 new_volume->hr_bds.sarg = new_volume; 172 171 173 rc = loc_service_register(hr_srv, new_volume->devname, &new_id);172 rc = hr_register_volume(new_volume); 174 173 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; 180 176 } 181 177 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 199 178 return EOK; 200 error:201 hr_fini_devs(new_volume);202 end:203 return rc;204 179 } 205 180 -
uspace/srv/bd/hr/var.h
re0b7763 rda5c257 37 37 #define _HR_VAR_H 38 38 39 #include <bd_srv.h> 40 #include <errno.h> 41 #include <hr.h> 42 39 43 #define NAME "hr" 40 44 … … 59 63 extern void hr_fini_devs(hr_volume_t *); 60 64 65 extern errno_t hr_raid0_create(hr_volume_t *); 61 66 extern errno_t hr_raid1_create(hr_volume_t *); 62 67
Note:
See TracChangeset
for help on using the changeset viewer.