Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3537 → Rev 3538

/trunk/uspace/lib/libblock/libblock.c
176,6 → 176,7
int block_bb_read(dev_handle_t dev_handle, off_t off, size_t size)
{
void *bb_buf;
int rc;
 
devcon_t *devcon = devcon_search(dev_handle);
if (!devcon)
188,10 → 189,11
off_t bufpos = 0;
size_t buflen = 0;
if (!block_read(dev_handle, &bufpos, &buflen, &off,
bb_buf, size, size)) {
rc = block_read(dev_handle, &bufpos, &buflen, &off,
bb_buf, size, size);
if (rc != EOK) {
free(bb_buf);
return EIO; /* XXX real error code */
return rc;
}
devcon->bb_buf = bb_buf;
devcon->bb_off = off;
219,9 → 221,9
* @param size Size of the destination buffer.
* @param block_size Block size to be used for the transfer.
*
* @return True on success, false on failure.
* @return EOK on success or a negative return code on failure.
*/
bool
int
block_read(int dev_handle, off_t *bufpos, size_t *buflen, off_t *pos, void *dst,
size_t size, size_t block_size)
{
256,7 → 258,7
int rc = async_req_2_1(devcon->dev_phone, RD_READ_BLOCK,
*pos / block_size, block_size, &retval);
if ((rc != EOK) || (retval != EOK))
return false;
return (rc != EOK ? rc : retval);
*bufpos = 0;
*buflen = block_size;
263,7 → 265,7
}
}
return true;
return EOK;
}
 
block_t *block_get(dev_handle_t dev_handle, off_t offset, size_t bs)
285,8 → 287,8
}
b->size = bs;
 
if (!block_read(dev_handle, &bufpos, &buflen, &pos, b->data,
bs, bs)) {
if (block_read(dev_handle, &bufpos, &buflen, &pos, b->data,
bs, bs) != EOK) {
free(b->data);
free(b);
return NULL;
/trunk/uspace/lib/libblock/libblock.h
76,7 → 76,7
extern block_t *block_get(dev_handle_t, off_t, size_t);
extern void block_put(block_t *);
 
extern bool block_read(int, off_t *, size_t *, off_t *, void *, size_t, size_t);
extern int block_read(int, off_t *, size_t *, off_t *, void *, size_t, size_t);
 
#endif
 
/trunk/uspace/srv/fs/tmpfs/tmpfs_dump.c
65,8 → 65,8
tmpfs_dentry_t *node;
uint32_t size;
if (!block_read(dev, bufpos, buflen, pos, &entry, sizeof(entry),
TMPFS_BLOCK_SIZE))
if (block_read(dev, bufpos, buflen, pos, &entry, sizeof(entry),
TMPFS_BLOCK_SIZE) != EOK)
return false;
entry.len = uint32_t_le2host(entry.len);
85,8 → 85,8
return false;
}
if (!block_read(dev, bufpos, buflen, pos, fname,
entry.len, TMPFS_BLOCK_SIZE)) {
if (block_read(dev, bufpos, buflen, pos, fname,
entry.len, TMPFS_BLOCK_SIZE) != EOK) {
ops->destroy((void *) node);
free(fname);
return false;
100,8 → 100,8
}
free(fname);
if (!block_read(dev, bufpos, buflen, pos, &size,
sizeof(size), TMPFS_BLOCK_SIZE))
if (block_read(dev, bufpos, buflen, pos, &size,
sizeof(size), TMPFS_BLOCK_SIZE) != EOK)
return false;
size = uint32_t_le2host(size);
111,8 → 111,8
return false;
node->size = size;
if (!block_read(dev, bufpos, buflen, pos, node->data,
size, TMPFS_BLOCK_SIZE))
if (block_read(dev, bufpos, buflen, pos, node->data,
size, TMPFS_BLOCK_SIZE) != EOK)
return false;
break;
127,8 → 127,8
return false;
}
if (!block_read(dev, bufpos, buflen, pos,
fname, entry.len, TMPFS_BLOCK_SIZE)) {
if (block_read(dev, bufpos, buflen, pos, fname,
entry.len, TMPFS_BLOCK_SIZE) != EOK) {
ops->destroy((void *) node);
free(fname);
return false;
169,8 → 169,8
off_t pos = 0;
char tag[6];
if (!block_read(dev, &bufpos, &buflen, &pos, tag, 5,
TMPFS_BLOCK_SIZE))
if (block_read(dev, &bufpos, &buflen, &pos, tag, 5,
TMPFS_BLOCK_SIZE) != EOK)
goto error;
tag[5] = 0;