Changeset 4c6fd56 in mainline for uspace/srv/bd
- Timestamp:
- 2023-09-16T19:58:18Z (2 years ago)
- 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)
- Location:
- uspace/srv/bd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/file_bd/file_bd.c
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 20 09Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 61 61 static aoff64_t num_blocks; 62 62 static FILE *img; 63 static loc_srv_t *srv; 63 64 64 65 static service_id_t service_id; … … 137 138 return -1; 138 139 139 rc = loc_service_register( device_name, &service_id);140 rc = loc_service_register(srv, device_name, &service_id); 140 141 if (rc != EOK) { 141 142 printf("%s: Unable to register device '%s': %s.\n", … … 150 151 } 151 152 152 rc = loc_service_add_to_cat(s ervice_id, disk_cat);153 rc = loc_service_add_to_cat(srv, service_id, disk_cat); 153 154 if (rc != EOK) { 154 155 printf("%s: Failed adding %s to category: %s", … … 176 177 177 178 async_set_fallback_port_handler(file_bd_connection, NULL); 178 errno_t rc = loc_server_register(NAME );179 errno_t rc = loc_server_register(NAME, &srv); 179 180 if (rc != EOK) { 180 181 printf("%s: Unable to register driver.\n", NAME); … … 183 184 184 185 img = fopen(fname, "rb+"); 185 if (img == NULL) 186 return EINVAL; 186 if (img == NULL) { 187 rc = EINVAL; 188 goto error; 189 } 187 190 188 191 if (fseek(img, 0, SEEK_END) != 0) { 189 fclose(img);190 return EIO;192 rc = EIO; 193 goto error; 191 194 } 192 195 193 196 off64_t img_size = ftell(img); 194 197 if (img_size < 0) { 198 rc = EIO; 199 goto error; 200 } 201 202 num_blocks = img_size / block_size; 203 204 fibril_mutex_initialize(&dev_lock); 205 206 return EOK; 207 error: 208 if (img != NULL) { 195 209 fclose(img); 196 return EIO; 197 } 198 199 num_blocks = img_size / block_size; 200 201 fibril_mutex_initialize(&dev_lock); 202 203 return EOK; 210 img = NULL; 211 } 212 213 if (srv != NULL) { 214 loc_server_unregister(srv); 215 srv = NULL; 216 } 217 218 return rc; 204 219 } 205 220 -
uspace/srv/bd/rd/rd.c
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 2023 Jiri Svoboda 2 3 * Copyright (c) 2007 Michal Konopa 3 4 * Copyright (c) 2007 Martin Jelen … … 93 94 94 95 static bd_srvs_t bd_srvs; 96 static loc_srv_t *srv; 95 97 96 98 static void rd_client_conn(ipc_call_t *icall, void *arg) … … 178 180 179 181 async_set_fallback_port_handler(rd_client_conn, NULL); 180 ret = loc_server_register(NAME );182 ret = loc_server_register(NAME, &srv); 181 183 if (ret != EOK) { 182 184 printf("%s: Unable to register driver: %s\n", NAME, str_error(ret)); … … 185 187 186 188 service_id_t service_id; 187 ret = loc_service_register( "bd/initrd", &service_id);189 ret = loc_service_register(srv, "bd/initrd", &service_id); 188 190 if (ret != EOK) { 189 191 printf("%s: Unable to register device service\n", NAME); -
uspace/srv/bd/sata_bd/sata_bd.c
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 2023 Jiri Svoboda 2 3 * Copyright (c) 2012 Petr Jerman 3 4 * All rights reserved. … … 57 58 #define MAXDISKS 256 58 59 60 static loc_srv_t *srv; 59 61 static sata_bd_dev_t disk[MAXDISKS]; 60 62 static int disk_count; … … 249 251 250 252 async_set_fallback_port_handler(sata_bd_connection, NULL); 251 rc = loc_server_register(NAME );253 rc = loc_server_register(NAME, &srv); 252 254 if (rc != EOK) { 253 255 printf(NAME ": Unable to register driver: %s.\n", str_error(rc)); … … 270 272 char name[1024]; 271 273 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); 273 275 if (rc != EOK) { 274 276 printf(NAME ": Unable to register device %s: %s\n", name, str_error(rc)); … … 276 278 } 277 279 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); 279 281 if (rc != EOK) { 280 282 printf("%s: Failed adding %s to category: %s.", -
uspace/srv/bd/vbd/disk.c
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 20 16Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 51 51 #include "types/vbd.h" 52 52 53 loc_srv_t *vbds_srv; 54 53 55 static fibril_mutex_t vbds_disks_lock; 54 56 static list_t vbds_disks; /* of vbds_disk_t */ … … 1122 1124 log_msg(LOG_DEFAULT, LVL_DEBUG, "loc_service_register('%s')", 1123 1125 name); 1124 rc = loc_service_register( name, &psid);1126 rc = loc_service_register(vbds_srv, name, &psid); 1125 1127 if (rc != EOK) { 1126 1128 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering " … … 1131 1133 } 1132 1134 1133 rc = loc_service_add_to_cat( psid, part_cid);1135 rc = loc_service_add_to_cat(vbds_srv, psid, part_cid); 1134 1136 if (rc != EOK) { 1135 1137 log_msg(LOG_DEFAULT, LVL_ERROR, "Failled adding partition " … … 1138 1140 free(part); 1139 1141 1140 rc = loc_service_unregister( psid);1142 rc = loc_service_unregister(vbds_srv, psid); 1141 1143 if (rc != EOK) { 1142 1144 log_msg(LOG_DEFAULT, LVL_ERROR, "Error unregistering " … … 1160 1162 "disk->svc_name='%s', id=%zu)", part->disk->svc_name, part->svc_id); 1161 1163 1162 rc = loc_service_unregister( part->svc_id);1164 rc = loc_service_unregister(vbds_srv, part->svc_id); 1163 1165 if (rc != EOK) 1164 1166 return EIO; -
uspace/srv/bd/vbd/disk.h
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 20 15Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 57 57 extern void vbds_bd_conn(ipc_call_t *, void *); 58 58 59 extern loc_srv_t *vbds_srv; 60 59 61 #endif 60 62 -
uspace/srv/bd/vbd/vbd.c
r6a0b2cc r4c6fd56 1 1 /* 2 * Copyright (c) 20 15Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 68 68 async_set_fallback_port_handler(vbds_client_conn, NULL); 69 69 70 rc = loc_server_register(NAME );70 rc = loc_server_register(NAME, &vbds_srv); 71 71 if (rc != EOK) { 72 72 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server: %s.", str_error(rc)); … … 74 74 } 75 75 76 rc = loc_service_register( SERVICE_NAME_VBD, &ctl_sid);76 rc = loc_service_register(vbds_srv, SERVICE_NAME_VBD, &ctl_sid); 77 77 if (rc != EOK) { 78 78 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service: %s.", str_error(rc));
Note:
See TracChangeset
for help on using the changeset viewer.