Changes in uspace/lib/libblock/libblock.c [0da4e41:08232ee] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libblock/libblock.c
r0da4e41 r08232ee 47 47 #include <as.h> 48 48 #include <assert.h> 49 #include <fibril_sync .h>49 #include <fibril_synch.h> 50 50 #include <adt/list.h> 51 51 #include <adt/hash_table.h> … … 87 87 static int write_blocks(devcon_t *devcon, bn_t ba, size_t cnt); 88 88 static int get_block_size(int dev_phone, size_t *bsize); 89 static int get_num_blocks(int dev_phone, bn_t *nblocks); 89 90 90 91 static devcon_t *devcon_search(dev_handle_t dev_handle) … … 714 715 715 716 memcpy(devcon->comm_area, data, devcon->pblock_size * cnt); 716 rc = read_blocks(devcon, ba, cnt);717 rc = write_blocks(devcon, ba, cnt); 717 718 718 719 fibril_mutex_unlock(&devcon->comm_area_lock); … … 736 737 737 738 return get_block_size(devcon->dev_phone, bsize); 739 } 740 741 /** Get number of blocks on device. 742 * 743 * @param dev_handle Device handle of the block device. 744 * @param nblocks Output number of blocks. 745 * 746 * @return EOK on success or negative error code on failure. 747 */ 748 int block_get_nblocks(dev_handle_t dev_handle, bn_t *nblocks) 749 { 750 devcon_t *devcon; 751 752 devcon = devcon_search(dev_handle); 753 assert(devcon); 754 755 return get_num_blocks(devcon->dev_phone, nblocks); 738 756 } 739 757 … … 789 807 } 790 808 809 /** Get total number of blocks on block device. */ 810 static int get_num_blocks(int dev_phone, bn_t *nblocks) 811 { 812 ipcarg_t nb_l, nb_h; 813 int rc; 814 815 rc = async_req_0_2(dev_phone, BD_GET_NUM_BLOCKS, &nb_l, &nb_h); 816 if (rc == EOK) { 817 *nblocks = (bn_t) MERGE_LOUP32(nb_l, nb_h); 818 } 819 820 return rc; 821 } 822 791 823 /** @} 792 824 */
Note:
See TracChangeset
for help on using the changeset viewer.