Changeset 08232ee in mainline for uspace/lib/libblock
- Timestamp:
- 2010-01-09T21:52:07Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9245413
- Parents:
- dccf721
- Location:
- uspace/lib/libblock
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libblock/libblock.c
rdccf721 r08232ee 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) … … 738 739 } 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); 756 } 757 740 758 /** Read blocks from block device. 741 759 * … … 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 */ -
uspace/lib/libblock/libblock.h
rdccf721 r08232ee 60 60 #define BLOCK_FLAGS_NOREAD 1 61 61 62 typedef uint64_t bn_t; /**< Block number type. */63 64 62 typedef struct block { 65 63 /** Mutex protecting the reference count. */ … … 110 108 111 109 extern int block_get_bsize(dev_handle_t, size_t *); 110 extern int block_get_nblocks(dev_handle_t, bn_t *); 112 111 extern int block_read_direct(dev_handle_t, bn_t, size_t, void *); 113 112 extern int block_write_direct(dev_handle_t, bn_t, size_t, const void *);
Note:
See TracChangeset
for help on using the changeset viewer.