Lines Matching refs:dev

106 	struct exfat_dev* dev;  in exfat_open()  local
130 dev = malloc(sizeof(struct exfat_dev)); in exfat_open()
131 if (dev == NULL) in exfat_open()
140 dev->fd = open_ro(spec); in exfat_open()
141 if (dev->fd == -1) in exfat_open()
143 free(dev); in exfat_open()
148 dev->mode = EXFAT_MODE_RO; in exfat_open()
151 dev->fd = open_rw(spec); in exfat_open()
152 if (dev->fd == -1) in exfat_open()
154 free(dev); in exfat_open()
159 dev->mode = EXFAT_MODE_RW; in exfat_open()
162 dev->fd = open_rw(spec); in exfat_open()
163 if (dev->fd != -1) in exfat_open()
165 dev->mode = EXFAT_MODE_RW; in exfat_open()
168 dev->fd = open_ro(spec); in exfat_open()
169 if (dev->fd != -1) in exfat_open()
171 dev->mode = EXFAT_MODE_RO; in exfat_open()
175 free(dev); in exfat_open()
180 if (fstat(dev->fd, &stbuf) != 0) in exfat_open()
182 close(dev->fd); in exfat_open()
183 free(dev); in exfat_open()
191 close(dev->fd); in exfat_open()
192 free(dev); in exfat_open()
203 if (ioctl(dev->fd, DKIOCGETBLOCKSIZE, &block_size) != 0) in exfat_open()
205 close(dev->fd); in exfat_open()
206 free(dev); in exfat_open()
210 if (ioctl(dev->fd, DKIOCGETBLOCKCOUNT, &blocks) != 0) in exfat_open()
212 close(dev->fd); in exfat_open()
213 free(dev); in exfat_open()
217 dev->size = blocks * block_size; in exfat_open()
227 if (ioctl(dev->fd, DIOCGDINFO, &lab) == -1) in exfat_open()
229 close(dev->fd); in exfat_open()
230 free(dev); in exfat_open()
239 dev->size = DL_GETPSIZE(pp) * lab.d_secsize; in exfat_open()
251 if (ioctl(dev->fd, DIOCGMEDIASIZE, &size) == -1) in exfat_open()
253 close(dev->fd); in exfat_open()
254 free(dev); in exfat_open()
258 dev->size = size; in exfat_open()
264 dev->size = exfat_seek(dev, 0, SEEK_END); in exfat_open()
265 if (dev->size <= 0) in exfat_open()
267 close(dev->fd); in exfat_open()
268 free(dev); in exfat_open()
272 if (exfat_seek(dev, 0, SEEK_SET) == -1) in exfat_open()
274 close(dev->fd); in exfat_open()
275 free(dev); in exfat_open()
286 up.up_priv = &dev->fd; in exfat_open()
288 dev->pos = 0; in exfat_open()
289 dev->ufh = ublio_open(&up); in exfat_open()
290 if (dev->ufh == NULL) in exfat_open()
292 close(dev->fd); in exfat_open()
293 free(dev); in exfat_open()
299 return dev; in exfat_open()
302 int exfat_close(struct exfat_dev* dev) in exfat_close() argument
307 if (ublio_close(dev->ufh) != 0) in exfat_close()
313 if (close(dev->fd) != 0) in exfat_close()
318 free(dev); in exfat_close()
322 int exfat_fsync(struct exfat_dev* dev) in exfat_fsync() argument
327 if (ublio_fsync(dev->ufh) != 0) in exfat_fsync()
333 if (fsync(dev->fd) != 0) in exfat_fsync()
341 enum exfat_mode exfat_get_mode(const struct exfat_dev* dev) in exfat_get_mode() argument
343 return dev->mode; in exfat_get_mode()
346 off_t exfat_get_size(const struct exfat_dev* dev) in exfat_get_size() argument
348 return dev->size; in exfat_get_size()
351 off_t exfat_seek(struct exfat_dev* dev, off_t offset, int whence) in exfat_seek() argument
355 return dev->pos = lseek(dev->fd, offset, whence); in exfat_seek()
357 return lseek(dev->fd, offset, whence); in exfat_seek()
361 ssize_t exfat_read(struct exfat_dev* dev, void* buffer, size_t size) in exfat_read() argument
364 ssize_t result = ublio_pread(dev->ufh, buffer, size, dev->pos); in exfat_read()
366 dev->pos += size; in exfat_read()
369 return read(dev->fd, buffer, size); in exfat_read()
373 ssize_t exfat_write(struct exfat_dev* dev, const void* buffer, size_t size) in exfat_write() argument
376 ssize_t result = ublio_pwrite(dev->ufh, (void*) buffer, size, dev->pos); in exfat_write()
378 dev->pos += size; in exfat_write()
381 return write(dev->fd, buffer, size); in exfat_write()
385 ssize_t exfat_pread(struct exfat_dev* dev, void* buffer, size_t size, in exfat_pread() argument
389 return ublio_pread(dev->ufh, buffer, size, offset); in exfat_pread()
391 return pread(dev->fd, buffer, size, offset); in exfat_pread()
395 ssize_t exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size, in exfat_pwrite() argument
399 return ublio_pwrite(dev->ufh, (void*) buffer, size, offset); in exfat_pwrite()
401 return pwrite(dev->fd, buffer, size, offset); in exfat_pwrite()
407 struct exfat_dev* dev; in exfat_open() local
409 dev = malloc(sizeof(struct exfat_dev)); in exfat_open()
410 if (!dev) { in exfat_open()
414 dev->mode = EXFAT_MODE_RW; in exfat_open()
415 dev->size = ctxt.cur_part_info.size * ctxt.cur_part_info.blksz; in exfat_open()
416 dev->ctxt = &ctxt; in exfat_open()
418 return dev; in exfat_open()
421 int exfat_close(struct exfat_dev* dev) in exfat_close() argument
423 free(dev); in exfat_close()
427 int exfat_fsync(struct exfat_dev* dev) in exfat_fsync() argument
432 enum exfat_mode exfat_get_mode(const struct exfat_dev* dev) in exfat_get_mode() argument
434 return dev->mode; in exfat_get_mode()
437 off_t exfat_get_size(const struct exfat_dev* dev) in exfat_get_size() argument
439 return dev->size; in exfat_get_size()
442 ssize_t exfat_pread(struct exfat_dev* dev, void* buffer, size_t size, in exfat_pread() argument
460 ssize_t exfat_pwrite(struct exfat_dev* dev, const void* buffer, size_t size, in exfat_pwrite() argument
524 if (exfat_pread(ef->dev, bufp, lsize, in exfat_generic_pread()
580 if (exfat_pwrite(ef->dev, bufp, lsize, in exfat_generic_pwrite()