Changeset dd8b6a8 in mainline for uspace/lib
- Timestamp:
- 2014-08-27T23:56:16Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 95fe55ca
- Parents:
- f27f3fd
- Location:
- uspace/lib
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/block/block.c
rf27f3fd rdd8b6a8 194 194 if (devcon->cache) 195 195 (void) block_cache_fini(service_id); 196 197 (void)bd_sync_cache(devcon->bd, 0, 0); 196 198 197 199 devcon_remove(devcon); -
uspace/lib/c/generic/bd.c
rf27f3fd rdd8b6a8 150 150 } 151 151 152 int bd_sync_cache(bd_t *bd, aoff64_t ba, size_t cnt) 153 { 154 async_exch_t *exch = async_exchange_begin(bd->sess); 155 156 int rc = async_req_3_0(exch, BD_SYNC_CACHE, LOWER32(ba), 157 UPPER32(ba), cnt); 158 async_exchange_end(exch); 159 160 return rc; 161 } 162 152 163 int bd_get_block_size(bd_t *bd, size_t *rbsize) 153 164 { -
uspace/lib/c/generic/bd_srv.c
rf27f3fd rdd8b6a8 128 128 } 129 129 130 static void bd_sync_cache_srv(bd_srv_t *srv, ipc_callid_t callid, 131 ipc_call_t *call) 132 { 133 aoff64_t ba; 134 size_t cnt; 135 int rc; 136 137 ba = MERGE_LOUP32(IPC_GET_ARG1(*call), IPC_GET_ARG2(*call)); 138 cnt = IPC_GET_ARG3(*call); 139 140 if (srv->srvs->ops->sync_cache == NULL) { 141 async_answer_0(callid, ENOTSUP); 142 return; 143 } 144 145 rc = srv->srvs->ops->sync_cache(srv, ba, cnt); 146 async_answer_0(callid, rc); 147 } 148 130 149 static void bd_write_blocks_srv(bd_srv_t *srv, ipc_callid_t callid, 131 150 ipc_call_t *call) … … 244 263 bd_read_toc_srv(srv, callid, &call); 245 264 break; 265 case BD_SYNC_CACHE: 266 bd_sync_cache_srv(srv, callid, &call); 267 break; 246 268 case BD_WRITE_BLOCKS: 247 269 bd_write_blocks_srv(srv, callid, &call); -
uspace/lib/c/include/bd.h
rf27f3fd rdd8b6a8 48 48 extern int bd_read_toc(bd_t *, uint8_t, void *, size_t); 49 49 extern int bd_write_blocks(bd_t *, aoff64_t, size_t, const void *, size_t); 50 extern int bd_sync_cache(bd_t *, aoff64_t, size_t); 50 51 extern int bd_get_block_size(bd_t *, size_t *); 51 52 extern int bd_get_num_blocks(bd_t *, aoff64_t *); -
uspace/lib/c/include/bd_srv.h
rf27f3fd rdd8b6a8 62 62 int (*read_blocks)(bd_srv_t *, aoff64_t, size_t, void *, size_t); 63 63 int (*read_toc)(bd_srv_t *, uint8_t, void *, size_t); 64 int (*sync_cache)(bd_srv_t *, aoff64_t, size_t); 64 65 int (*write_blocks)(bd_srv_t *, aoff64_t, size_t, const void *, size_t); 65 66 int (*get_block_size)(bd_srv_t *, size_t *); -
uspace/lib/c/include/ipc/bd.h
rf27f3fd rdd8b6a8 42 42 BD_GET_NUM_BLOCKS, 43 43 BD_READ_BLOCKS, 44 BD_SYNC_CACHE, 44 45 BD_WRITE_BLOCKS, 45 46 BD_READ_TOC -
uspace/lib/scsi/include/scsi/sbc.h
rf27f3fd rdd8b6a8 50 50 SCSI_CMD_READ_CAPACITY_16 = 0x9e, 51 51 52 SCSI_CMD_SYNC_CACHE_10 = 0x35, 53 SCSI_CMD_SYNC_CACHE_16 = 0x91, 54 52 55 SCSI_CMD_WRITE_6 = 0x0a, 53 56 SCSI_CMD_WRITE_10 = 0x2a, … … 131 134 } scsi_read_capacity_10_data_t; 132 135 136 /** SCSI Synchronize Cache (10) command */ 137 typedef struct { 138 /** Operation code (SCSI_CMD_SYNC_CACHE_10) */ 139 uint8_t op_code; 140 /** Reserved, Sync_NV, Immed, Reserved */ 141 uint8_t flags; 142 /** Logical block address */ 143 uint32_t lba; 144 /** Reserved, Group Number */ 145 uint8_t group_no; 146 /** Number of Logical Blocks */ 147 uint16_t numlb; 148 /** Control */ 149 uint8_t control; 150 } __attribute__((packed)) scsi_cdb_sync_cache_10_t; 151 152 /** SCSI Synchronize Cache (16) command */ 153 typedef struct { 154 /** Operation code (SCSI_CMD_SYNC_CACHE_16) */ 155 uint8_t op_code; 156 /** Reserved, Sync_NV, Immed, Reserved */ 157 uint8_t flags; 158 /** Logical block address */ 159 uint64_t lba; 160 /** Number of Logical Blocks */ 161 uint32_t numlb; 162 /** Reserved, Group Number */ 163 uint8_t group_no; 164 /** Control */ 165 uint8_t control; 166 } __attribute__((packed)) scsi_cdb_sync_cache_16_t; 167 133 168 /** SCSI Write (10) command */ 134 169 typedef struct {
Note:
See TracChangeset
for help on using the changeset viewer.