Changes in / [40d4c1d:234e39e] in mainline
- Files:
-
- 9 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/Makefile.common
r40d4c1d r234e39e 60 60 $(USPACEDIR)/app/getterm/getterm \ 61 61 $(USPACEDIR)/app/klog/klog \ 62 $(USPACEDIR)/app/mkfat/mkfat \ 62 63 $(USPACEDIR)/app/redir/redir \ 63 64 $(USPACEDIR)/app/tester/tester \ -
tools/mkfat.py
r40d4c1d r234e39e 354 354 return 355 355 356 fat16_clusters = 4096356 fat16_clusters = 8192 357 357 358 358 sector_size = 512 -
uspace/Makefile
r40d4c1d r234e39e 38 38 app/init \ 39 39 app/klog \ 40 app/mkfat \ 40 41 app/redir \ 41 42 app/tester \ -
uspace/app/bdsh/Makefile.build
r40d4c1d r234e39e 42 42 cmds/modules/help/help.c \ 43 43 cmds/modules/mkdir/mkdir.c \ 44 cmds/modules/mkfile/mkfile.c \ 44 45 cmds/modules/rm/rm.c \ 45 46 cmds/modules/bdd/bdd.c \ -
uspace/app/bdsh/cmds/modules/modules.h
r40d4c1d r234e39e 20 20 #include "help/entry.h" 21 21 #include "mkdir/entry.h" 22 #include "mkfile/entry.h" 22 23 #include "rm/entry.h" 23 24 #include "bdd/entry.h" … … 39 40 #include "help/help_def.h" 40 41 #include "mkdir/mkdir_def.h" 42 #include "mkfile/mkfile_def.h" 41 43 #include "rm/rm_def.h" 42 44 #include "bdd/bdd_def.h" -
uspace/lib/libblock/libblock.c
r40d4c1d r234e39e 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 */ -
uspace/lib/libblock/libblock.h
r40d4c1d r234e39e 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 *); -
uspace/lib/libc/generic/io/io.c
r40d4c1d r234e39e 554 554 } 555 555 556 int ftell(FILE *stream) 557 { 558 off_t rc = lseek(stream->fd, 0, SEEK_CUR); 559 if (rc == (off_t) (-1)) { 560 /* errno has been set by lseek. */ 561 return -1; 562 } 563 564 return rc; 565 } 566 556 567 void rewind(FILE *stream) 557 568 { -
uspace/lib/libc/include/ipc/bd.h
r40d4c1d r234e39e 40 40 typedef enum { 41 41 BD_GET_BLOCK_SIZE = IPC_FIRST_USER_METHOD, 42 BD_GET_NUM_BLOCKS, 42 43 BD_READ_BLOCKS, 43 44 BD_WRITE_BLOCKS -
uspace/lib/libc/include/sys/types.h
r40d4c1d r234e39e 40 40 typedef long off_t; 41 41 typedef int mode_t; 42 typedef uint64_t bn_t; /**< Block number type. */ 42 43 43 44 typedef int32_t wchar_t; -
uspace/srv/bd/ata_bd/ata_bd.c
r40d4c1d r234e39e 296 296 ipc_answer_1(callid, EOK, block_size); 297 297 continue; 298 case BD_GET_NUM_BLOCKS: 299 ipc_answer_2(callid, EOK, LOWER32(disk[disk_id].blocks), 300 UPPER32(disk[disk_id].blocks)); 301 continue; 298 302 default: 299 303 retval = EINVAL; -
uspace/srv/bd/file_bd/file_bd.c
r40d4c1d r234e39e 56 56 57 57 static const size_t block_size = 512; 58 static bn_t num_blocks; 58 59 static FILE *img; 59 60 … … 99 100 { 100 101 int rc; 102 long img_size; 101 103 102 104 rc = devmap_driver_register(NAME, file_bd_connection); … … 109 111 if (img == NULL) 110 112 return EINVAL; 113 114 if (fseek(img, 0, SEEK_END) != 0) { 115 fclose(img); 116 return EIO; 117 } 118 119 img_size = ftell(img); 120 if (img_size < 0) { 121 fclose(img); 122 return EIO; 123 } 124 125 num_blocks = img_size / block_size; 111 126 112 127 fibril_mutex_initialize(&dev_lock); … … 174 189 ipc_answer_1(callid, EOK, block_size); 175 190 continue; 191 case BD_GET_NUM_BLOCKS: 192 ipc_answer_2(callid, EOK, LOWER32(num_blocks), 193 UPPER32(num_blocks)); 194 continue; 176 195 default: 177 196 retval = EINVAL; … … 213 232 214 233 fseek(img, ba * block_size, SEEK_SET); 215 n_wr = f read(buf, block_size, cnt, img);234 n_wr = fwrite(buf, block_size, cnt, img); 216 235 217 236 if (ferror(img) || n_wr < cnt) { -
uspace/srv/bd/gxe_bd/gxe_bd.c
r40d4c1d r234e39e 234 234 ipc_answer_1(callid, EOK, block_size); 235 235 continue; 236 case BD_GET_NUM_BLOCKS: 237 retval = ENOTSUP; 238 break; 236 239 default: 237 240 retval = EINVAL; -
uspace/srv/bd/part/mbr_part/mbr_part.c
r40d4c1d r234e39e 463 463 ipc_answer_1(callid, EOK, block_size); 464 464 continue; 465 465 case BD_GET_NUM_BLOCKS: 466 ipc_answer_2(callid, EOK, LOWER32(part->length), 467 UPPER32(part->length)); 468 continue; 466 469 default: 467 470 retval = EINVAL; -
uspace/srv/bd/rd/rd.c
r40d4c1d r234e39e 153 153 ipc_answer_1(callid, EOK, block_size); 154 154 continue; 155 case BD_GET_NUM_BLOCKS: 156 ipc_answer_2(callid, EOK, LOWER32(rd_size / block_size), 157 UPPER32(rd_size / block_size)); 158 continue; 155 159 default: 156 160 /* -
uspace/srv/vfs/vfs_ops.c
r40d4c1d r234e39e 900 900 } 901 901 newpos = size + off; 902 file->pos = newpos; 902 903 fibril_mutex_unlock(&file->lock); 903 904 ipc_answer_1(rid, EOK, newpos);
Note:
See TracChangeset
for help on using the changeset viewer.