Changes in uspace/lib/c/generic/bd_srv.c [5a6cc679:a46e56b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/bd_srv.c
r5a6cc679 ra46e56b 43 43 #include <bd_srv.h> 44 44 45 static void bd_read_blocks_srv(bd_srv_t *srv, ipc_callid_t callid,45 static void bd_read_blocks_srv(bd_srv_t *srv, cap_call_handle_t chandle, 46 46 ipc_call_t *call) 47 47 { … … 51 51 size_t size; 52 52 errno_t rc; 53 ipc_callid_t rcallid;53 cap_call_handle_t rcall_handle; 54 54 55 55 ba = MERGE_LOUP32(IPC_GET_ARG1(*call), IPC_GET_ARG2(*call)); 56 56 cnt = IPC_GET_ARG3(*call); 57 57 58 if (!async_data_read_receive(&rcall id, &size)) {59 async_answer_0(c allid, EINVAL);58 if (!async_data_read_receive(&rcall_handle, &size)) { 59 async_answer_0(chandle, EINVAL); 60 60 return; 61 61 } … … 63 63 buf = malloc(size); 64 64 if (buf == NULL) { 65 async_answer_0(rcall id, ENOMEM);66 async_answer_0(c allid, ENOMEM);65 async_answer_0(rcall_handle, ENOMEM); 66 async_answer_0(chandle, ENOMEM); 67 67 return; 68 68 } 69 69 70 70 if (srv->srvs->ops->read_blocks == NULL) { 71 async_answer_0(rcall id, ENOTSUP);72 async_answer_0(c allid, ENOTSUP);71 async_answer_0(rcall_handle, ENOTSUP); 72 async_answer_0(chandle, ENOTSUP); 73 73 free(buf); 74 74 return; … … 77 77 rc = srv->srvs->ops->read_blocks(srv, ba, cnt, buf, size); 78 78 if (rc != EOK) { 79 async_answer_0(rcall id, ENOMEM);80 async_answer_0(c allid, ENOMEM);81 free(buf); 82 return; 83 } 84 85 async_data_read_finalize(rcall id, buf, size);79 async_answer_0(rcall_handle, ENOMEM); 80 async_answer_0(chandle, ENOMEM); 81 free(buf); 82 return; 83 } 84 85 async_data_read_finalize(rcall_handle, buf, size); 86 86 87 87 free(buf); 88 async_answer_0(c allid, EOK);89 } 90 91 static void bd_read_toc_srv(bd_srv_t *srv, ipc_callid_t callid,88 async_answer_0(chandle, EOK); 89 } 90 91 static void bd_read_toc_srv(bd_srv_t *srv, cap_call_handle_t chandle, 92 92 ipc_call_t *call) 93 93 { … … 96 96 size_t size; 97 97 errno_t rc; 98 ipc_callid_t rcallid;98 cap_call_handle_t rcall_handle; 99 99 100 100 session = IPC_GET_ARG1(*call); 101 101 102 if (!async_data_read_receive(&rcall id, &size)) {103 async_answer_0(c allid, EINVAL);102 if (!async_data_read_receive(&rcall_handle, &size)) { 103 async_answer_0(chandle, EINVAL); 104 104 return; 105 105 } … … 107 107 buf = malloc(size); 108 108 if (buf == NULL) { 109 async_answer_0(rcall id, ENOMEM);110 async_answer_0(c allid, ENOMEM);109 async_answer_0(rcall_handle, ENOMEM); 110 async_answer_0(chandle, ENOMEM); 111 111 return; 112 112 } 113 113 114 114 if (srv->srvs->ops->read_toc == NULL) { 115 async_answer_0(rcall id, ENOTSUP);116 async_answer_0(c allid, ENOTSUP);115 async_answer_0(rcall_handle, ENOTSUP); 116 async_answer_0(chandle, ENOTSUP); 117 117 free(buf); 118 118 return; … … 121 121 rc = srv->srvs->ops->read_toc(srv, session, buf, size); 122 122 if (rc != EOK) { 123 async_answer_0(rcall id, ENOMEM);124 async_answer_0(c allid, ENOMEM);125 free(buf); 126 return; 127 } 128 129 async_data_read_finalize(rcall id, buf, size);123 async_answer_0(rcall_handle, ENOMEM); 124 async_answer_0(chandle, ENOMEM); 125 free(buf); 126 return; 127 } 128 129 async_data_read_finalize(rcall_handle, buf, size); 130 130 131 131 free(buf); 132 async_answer_0(c allid, EOK);133 } 134 135 static void bd_sync_cache_srv(bd_srv_t *srv, ipc_callid_t callid,132 async_answer_0(chandle, EOK); 133 } 134 135 static void bd_sync_cache_srv(bd_srv_t *srv, cap_call_handle_t chandle, 136 136 ipc_call_t *call) 137 137 { … … 144 144 145 145 if (srv->srvs->ops->sync_cache == NULL) { 146 async_answer_0(c allid, ENOTSUP);146 async_answer_0(chandle, ENOTSUP); 147 147 return; 148 148 } 149 149 150 150 rc = srv->srvs->ops->sync_cache(srv, ba, cnt); 151 async_answer_0(c allid, rc);152 } 153 154 static void bd_write_blocks_srv(bd_srv_t *srv, ipc_callid_t callid,151 async_answer_0(chandle, rc); 152 } 153 154 static void bd_write_blocks_srv(bd_srv_t *srv, cap_call_handle_t chandle, 155 155 ipc_call_t *call) 156 156 { … … 166 166 rc = async_data_write_accept(&data, false, 0, 0, 0, &size); 167 167 if (rc != EOK) { 168 async_answer_0(c allid, rc);168 async_answer_0(chandle, rc); 169 169 return; 170 170 } 171 171 172 172 if (srv->srvs->ops->write_blocks == NULL) { 173 async_answer_0(c allid, ENOTSUP);173 async_answer_0(chandle, ENOTSUP); 174 174 return; 175 175 } … … 177 177 rc = srv->srvs->ops->write_blocks(srv, ba, cnt, data, size); 178 178 free(data); 179 async_answer_0(c allid, rc);180 } 181 182 static void bd_get_block_size_srv(bd_srv_t *srv, ipc_callid_t callid,179 async_answer_0(chandle, rc); 180 } 181 182 static void bd_get_block_size_srv(bd_srv_t *srv, cap_call_handle_t chandle, 183 183 ipc_call_t *call) 184 184 { … … 187 187 188 188 if (srv->srvs->ops->get_block_size == NULL) { 189 async_answer_0(c allid, ENOTSUP);189 async_answer_0(chandle, ENOTSUP); 190 190 return; 191 191 } 192 192 193 193 rc = srv->srvs->ops->get_block_size(srv, &block_size); 194 async_answer_1(c allid, rc, block_size);195 } 196 197 static void bd_get_num_blocks_srv(bd_srv_t *srv, ipc_callid_t callid,194 async_answer_1(chandle, rc, block_size); 195 } 196 197 static void bd_get_num_blocks_srv(bd_srv_t *srv, cap_call_handle_t chandle, 198 198 ipc_call_t *call) 199 199 { … … 202 202 203 203 if (srv->srvs->ops->get_num_blocks == NULL) { 204 async_answer_0(c allid, ENOTSUP);204 async_answer_0(chandle, ENOTSUP); 205 205 return; 206 206 } 207 207 208 208 rc = srv->srvs->ops->get_num_blocks(srv, &num_blocks); 209 async_answer_2(c allid, rc, LOWER32(num_blocks), UPPER32(num_blocks));209 async_answer_2(chandle, rc, LOWER32(num_blocks), UPPER32(num_blocks)); 210 210 } 211 211 … … 228 228 } 229 229 230 errno_t bd_conn( ipc_callid_t iid, ipc_call_t *icall, bd_srvs_t *srvs)230 errno_t bd_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, bd_srvs_t *srvs) 231 231 { 232 232 bd_srv_t *srv; … … 234 234 235 235 /* Accept the connection */ 236 async_answer_0(i id, EOK);236 async_answer_0(icall_handle, EOK); 237 237 238 238 srv = bd_srv_create(srvs); … … 252 252 while (true) { 253 253 ipc_call_t call; 254 ipc_callid_t callid= async_get_call(&call);254 cap_call_handle_t chandle = async_get_call(&call); 255 255 sysarg_t method = IPC_GET_IMETHOD(call); 256 256 257 257 if (!method) { 258 258 /* The other side has hung up */ 259 async_answer_0(c allid, EOK);259 async_answer_0(chandle, EOK); 260 260 break; 261 261 } … … 263 263 switch (method) { 264 264 case BD_READ_BLOCKS: 265 bd_read_blocks_srv(srv, c allid, &call);265 bd_read_blocks_srv(srv, chandle, &call); 266 266 break; 267 267 case BD_READ_TOC: 268 bd_read_toc_srv(srv, c allid, &call);268 bd_read_toc_srv(srv, chandle, &call); 269 269 break; 270 270 case BD_SYNC_CACHE: 271 bd_sync_cache_srv(srv, c allid, &call);271 bd_sync_cache_srv(srv, chandle, &call); 272 272 break; 273 273 case BD_WRITE_BLOCKS: 274 bd_write_blocks_srv(srv, c allid, &call);274 bd_write_blocks_srv(srv, chandle, &call); 275 275 break; 276 276 case BD_GET_BLOCK_SIZE: 277 bd_get_block_size_srv(srv, c allid, &call);277 bd_get_block_size_srv(srv, chandle, &call); 278 278 break; 279 279 case BD_GET_NUM_BLOCKS: 280 bd_get_num_blocks_srv(srv, c allid, &call);280 bd_get_num_blocks_srv(srv, chandle, &call); 281 281 break; 282 282 default: 283 async_answer_0(c allid, EINVAL);283 async_answer_0(chandle, EINVAL); 284 284 } 285 285 }
Note:
See TracChangeset
for help on using the changeset viewer.