Changeset 5f70118 in mainline for uspace/srv/bd/file_bd
- Timestamp:
- 2010-01-10T12:16:59Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c77a64f
- Parents:
- 309ede1 (diff), 1ac3a52 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- uspace/srv/bd/file_bd
- Files:
-
- 2 added
- 2 edited
-
Makefile (modified) (2 diffs)
-
Makefile.build (added)
-
Makefile.common (added)
-
file_bd.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/file_bd/Makefile
r309ede1 r5f70118 1 1 # 2 # Copyright (c) 2006 Martin Decky 2 # Copyright (c) 2005 Martin Decky 3 # Copyright (c) 2007 Jakub Jermar 3 4 # All rights reserved. 4 5 # … … 27 28 # 28 29 29 ## Setup toolchain 30 # 30 include Makefile.common 31 31 32 .PHONY: all clean 32 33 33 LIBC_PREFIX = ../../../lib/libc 34 SOFTINT_PREFIX = ../../../lib/softint 35 36 include $(LIBC_PREFIX)/Makefile.toolchain 37 38 LIBS = $(LIBC_PREFIX)/libc.a 39 40 ## Sources 41 # 42 43 OUTPUT = file_bd 44 SOURCES = \ 45 file_bd.c 46 47 OBJECTS := $(addsuffix .o,$(basename $(SOURCES))) 48 49 .PHONY: all clean depend disasm 50 51 all: $(OUTPUT) $(OUTPUT).disasm 52 53 -include Makefile.depend 34 all: $(LIBC_PREFIX)/../../../Makefile.config $(LIBC_PREFIX)/../../../config.h $(LIBC_PREFIX)/../../../config.defs $(LIBS) 35 -[ -f $(DEPEND) ] && mv -f $(DEPEND) $(DEPEND_PREV) 36 $(MAKE) -f Makefile.build PRECHECK=$(PRECHECK) 54 37 55 38 clean: 56 -rm -f $(OUTPUT) $(OUTPUT).map $(OUTPUT).disasm Makefile.depend $(OBJECTS) 57 58 depend: 59 $(CC) $(DEFS) $(CFLAGS) -M $(SOURCES) > Makefile.depend 60 61 $(OUTPUT): $(OBJECTS) $(LIBS) 62 $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld $(OBJECTS) $(LIBS) $(LFLAGS) -o $@ -Map $(OUTPUT).map 63 64 disasm: $(OUTPUT).disasm 65 66 $(OUTPUT).disasm: $(OUTPUT) 67 $(OBJDUMP) -d $< > $@ 68 69 %.o: %.S 70 $(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@ 71 72 %.o: %.s 73 $(AS) $(AFLAGS) $< -o $@ 74 75 %.o: %.c 76 $(CC) $(DEFS) $(CFLAGS) -c $< -o $@ 39 rm -f $(DEPEND) $(DEPEND_PREV) $(JOB) $(OUTPUT) $(OUTPUT).map $(OUTPUT).disasm 40 find . -name '*.o' -follow -exec rm \{\} \; -
uspace/srv/bd/file_bd/file_bd.c
r309ede1 r5f70118 45 45 #include <async.h> 46 46 #include <as.h> 47 #include <fibril_sync .h>47 #include <fibril_synch.h> 48 48 #include <devmap.h> 49 49 #include <sys/types.h> … … 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); … … 130 145 ipc_answer_0(iid, EOK); 131 146 132 if (! ipc_share_out_receive(&callid, &comm_size, &flags)) {147 if (!async_share_out_receive(&callid, &comm_size, &flags)) { 133 148 ipc_answer_0(callid, EHANGUP); 134 149 return; … … 141 156 } 142 157 143 (void) ipc_share_out_finalize(callid, fs_va);158 (void) async_share_out_finalize(callid, fs_va); 144 159 145 160 while (1) { … … 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) {
Note:
See TracChangeset
for help on using the changeset viewer.
