Changeset 12956e57 in mainline for uspace/srv/bd/file_bd/file_bd.c
- Timestamp:
- 2009-06-20T19:31:19Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2dfd9fa
- Parents:
- ac47b7c2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/file_bd/file_bd.c
rac47b7c2 r12956e57 45 45 #include <async.h> 46 46 #include <as.h> 47 #include <f utex.h>47 #include <fibril_sync.h> 48 48 #include <devmap.h> 49 49 #include <sys/types.h> … … 57 57 58 58 static dev_handle_t dev_handle; 59 static atomic_t dev_futex = FUTEX_INITIALIZER;59 static fibril_mutex_t dev_lock; 60 60 61 61 static int file_bd_init(const char *fname); … … 106 106 if (img == NULL) 107 107 return EINVAL; 108 109 fibril_mutex_initialize(&dev_lock); 108 110 109 111 return EOK; … … 170 172 size_t n_rd; 171 173 172 printf("file_bd_read\n"); 173 futex_down(&dev_futex); 174 175 printf("seek\n"); 174 fibril_mutex_lock(&dev_lock); 175 176 176 fseek(img, blk_idx * size, SEEK_SET); 177 printf("read\n");178 177 n_rd = fread(buf, 1, size, img); 179 printf("done\n");180 181 printf("done\n");182 178 183 179 if (ferror(img)) { 184 f utex_up(&dev_futex);180 fibril_mutex_unlock(&dev_lock); 185 181 return EIO; /* Read error */ 186 182 } 187 183 188 f utex_up(&dev_futex);184 fibril_mutex_unlock(&dev_lock); 189 185 190 186 if (n_rd < size) … … 198 194 size_t n_wr; 199 195 200 f utex_down(&dev_futex);196 fibril_mutex_lock(&dev_lock); 201 197 202 198 fseek(img, blk_idx * size, SEEK_SET); … … 204 200 205 201 if (ferror(img) || n_wr < size) { 206 f utex_up(&dev_futex);202 fibril_mutex_unlock(&dev_lock); 207 203 return EIO; /* Write error */ 208 204 } 209 205 210 f utex_up(&dev_futex);206 fibril_mutex_unlock(&dev_lock); 211 207 212 208 return EOK;
Note:
See TracChangeset
for help on using the changeset viewer.