* grub-core/fs/affs.c (grub_affs_read_file): Use grub_off_t for offset.
* grub-core/fs/afs.c (grub_afs_read_file): Likewise.
* grub-core/fs/fshelp.c (grub_fshelp_find_file): Remove leftover
variable.
* grub-core/fs/hfs.c (grub_hfs_read_file): Use grub_off_t for offset
and connected types.
* grub-core/fs/nilfs2.c (grub_nilfs2_read_file): Use grub_off_t for
offset.
(grub_nilfs2_iterate_dir): Use grub_off_t for fpos.
* grub-core/fs/sfs.c (grub_sfs_read_file): Use grub_off_t for offset.
* grub-core/fs/ufs.c (grub_ufs_read_file): Use grub_off_t for offset
and connected types.
+2011-10-16 Vladimir Serbinenko <phcoder@gmail.com>
+
+ Fix few obvious type discrepancies.
+
+ * grub-core/fs/affs.c (grub_affs_read_file): Use grub_off_t for offset.
+ * grub-core/fs/afs.c (grub_afs_read_file): Likewise.
+ * grub-core/fs/fshelp.c (grub_fshelp_find_file): Remove leftover
+ variable.
+ * grub-core/fs/hfs.c (grub_hfs_read_file): Use grub_off_t for offset
+ and connected types.
+ * grub-core/fs/nilfs2.c (grub_nilfs2_read_file): Use grub_off_t for
+ offset.
+ (grub_nilfs2_iterate_dir): Use grub_off_t for fpos.
+ * grub-core/fs/sfs.c (grub_sfs_read_file): Use grub_off_t for offset.
+ * grub-core/fs/ufs.c (grub_ufs_read_file): Use grub_off_t for offset
+ and connected types.
+
2011-10-16 Vladimir Serbinenko <phcoder@gmail.com>
Fix python 3.x incompatibilities.
grub_affs_read_file (grub_fshelp_node_t node,
void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector,
unsigned offset, unsigned length),
- int pos, grub_size_t len, char *buf)
+ grub_off_t pos, grub_size_t len, char *buf)
{
return grub_fshelp_read_file (node->data->disk, node, read_hook,
pos, len, buf, grub_affs_read_block,
grub_afs_read_file (grub_fshelp_node_t node,
void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector,
unsigned offset, unsigned length),
- int pos, grub_size_t len, char *buf)
+ grub_off_t pos, grub_size_t len, char *buf)
{
return grub_fshelp_read_file (node->data->disk, node, read_hook,
pos, len, buf, grub_afs_read_block,
char fpath[grub_strlen (currpath) + 1];
char *name = fpath;
char *next;
- // unsigned int pos = 0;
enum grub_fshelp_filetype type = GRUB_FSHELP_DIR;
grub_fshelp_node_t currnode = currroot;
grub_fshelp_node_t oldnode = currroot;
grub_hfs_read_file (struct grub_hfs_data *data,
void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector,
unsigned offset, unsigned length),
- int pos, grub_size_t len, char *buf)
+ grub_off_t pos, grub_size_t len, char *buf)
{
- int i;
- int blockcnt;
+ grub_off_t i;
+ grub_off_t blockcnt;
- blockcnt = ((len + pos)
- + data->blksz - 1) / data->blksz;
+ blockcnt = grub_divmod64 (((len + pos)
+ + data->blksz - 1), data->blksz, 0);
- for (i = pos / data->blksz; i < blockcnt; i++)
+ for (i = grub_divmod64 (pos, data->blksz, 0); i < blockcnt; i++)
{
- int blknr;
- int blockoff = pos % data->blksz;
- int blockend = data->blksz;
+ grub_disk_addr_t blknr;
+ grub_off_t blockoff;
+ grub_off_t blockend = data->blksz;
int skipfirst = 0;
+ grub_divmod64 (pos, data->blksz, &blockoff);
+
blknr = grub_hfs_block (data, data->extents, data->fileid, i, 1);
if (grub_errno)
return -1;
/* Last block. */
if (i == blockcnt - 1)
{
- blockend = (len + pos) % data->blksz;
+ grub_divmod64 ((len + pos), data->blksz, &blockend);
/* The last portion is exactly EXT2_BLOCK_SIZE (data). */
if (! blockend)
}
/* First block. */
- if (i == pos / data->blksz)
+ if (i == grub_divmod64 (pos, data->blksz, 0))
{
skipfirst = blockoff;
blockend -= skipfirst;
sector,
unsigned offset,
unsigned length),
- int pos, grub_size_t len, char *buf)
+ grub_off_t pos, grub_size_t len, char *buf)
{
return grub_fshelp_read_file (node->data->disk, node, read_hook,
pos, len, buf, grub_nilfs2_read_block,
enum grub_fshelp_filetype filetype,
grub_fshelp_node_t node))
{
- unsigned int fpos = 0;
+ grub_off_t fpos = 0;
struct grub_fshelp_node *diro = (struct grub_fshelp_node *) dir;
if (!diro->inode_read)
grub_sfs_read_file (grub_fshelp_node_t node,
void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector,
unsigned offset, unsigned length),
- int pos, grub_size_t len, char *buf)
+ grub_off_t pos, grub_size_t len, char *buf)
{
return grub_fshelp_read_file (node->data->disk, node, read_hook,
pos, len, buf, grub_sfs_read_block,
grub_ufs_read_file (struct grub_ufs_data *data,
void NESTED_FUNC_ATTR (*read_hook) (grub_disk_addr_t sector,
unsigned offset, unsigned length),
- int pos, grub_size_t len, char *buf)
+ grub_off_t pos, grub_size_t len, char *buf)
{
struct grub_ufs_sblock *sblock = &data->sblock;
- int i;
- int blockcnt;
+ grub_off_t i;
+ grub_off_t blockcnt;
/* Adjust len so it we can't read past the end of the file. */
if (len + pos > INODE_SIZE (data))
len = INODE_SIZE (data) - pos;
- blockcnt = (len + pos + UFS_BLKSZ (sblock) - 1) / UFS_BLKSZ (sblock);
+ blockcnt = grub_divmod64 ((len + pos + UFS_BLKSZ (sblock) - 1),
+ UFS_BLKSZ (sblock), 0);
- for (i = pos / UFS_BLKSZ (sblock); i < blockcnt; i++)
+ for (i = grub_divmod64 (pos, UFS_BLKSZ (sblock), 0); i < blockcnt; i++)
{
- int blknr;
- int blockoff = pos % UFS_BLKSZ (sblock);
- int blockend = UFS_BLKSZ (sblock);
+ grub_disk_addr_t blknr;
+ grub_off_t blockoff;
+ grub_off_t blockend = UFS_BLKSZ (sblock);
int skipfirst = 0;
+ grub_divmod64 (pos, UFS_BLKSZ (sblock), &blockoff);
+
blknr = grub_ufs_get_file_block (data, i);
if (grub_errno)
return -1;
/* Last block. */
if (i == blockcnt - 1)
{
- blockend = (len + pos) % UFS_BLKSZ (sblock);
+ grub_divmod64 (len + pos, UFS_BLKSZ (sblock), &blockend);
if (!blockend)
blockend = UFS_BLKSZ (sblock);
}
/* First block. */
- if (i == (pos / (int) UFS_BLKSZ (sblock)))
+ if (i == grub_divmod64 (pos, UFS_BLKSZ (sblock), 0))
{
skipfirst = blockoff;
blockend -= skipfirst;