inode_io_manager@Base 1.37-2sarge1
io_channel_set_options@Base 1.37-2sarge1
io_channel_write_byte@Base 1.37-2sarge1
+ io_channel_read_blk64@Base 1.41.1-1
+ io_channel_write_blk64@Base 1.41.1-1
set_undo_io_backing_manager@Base 1.41.0-1
set_undo_io_backup_file@Base 1.41.0-1
tdb_null@Base 1.40-1
errcode_t error);
int refcount;
int flags;
- int reserved[14];
+ long reserved[14];
void *private_data;
void *app_data;
};
int count, void *data);
errcode_t (*write_blk64)(io_channel channel, unsigned long long block,
int count, const void *data);
- int reserved[16];
+ long reserved[16];
};
#define IO_FLAG_RW 0x0001
#define io_channel_close(c) ((c)->manager->close((c)))
#define io_channel_set_blksize(c,s) ((c)->manager->set_blksize((c),s))
#define io_channel_read_blk(c,b,n,d) ((c)->manager->read_blk((c),b,n,d))
-#define io_channel_read_blk64(c,b,n,d) ((c)->manager->read_blk64((c),b,n,d))
#define io_channel_write_blk(c,b,n,d) ((c)->manager->write_blk((c),b,n,d))
-#define io_channel_write_blk64(c,b,n,d) ((c)->manager->write_blk64((c),b,n,d))
#define io_channel_flush(c) ((c)->manager->flush((c)))
#define io_channel_bumpcount(c) ((c)->refcount++)
extern errcode_t io_channel_write_byte(io_channel channel,
unsigned long offset,
int count, const void *data);
+extern errcode_t io_channel_read_blk64(io_channel channel,
+ unsigned long long block,
+ int count, void *data);
+extern errcode_t io_channel_write_blk64(io_channel channel,
+ unsigned long long block,
+ int count, const void *data);
/* unix_io.c */
extern io_manager unix_io_manager;
return EXT2_ET_UNIMPLEMENTED;
}
+
+errcode_t io_channel_read_blk64(io_channel channel, unsigned long long block,
+ int count, void *data)
+{
+ EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
+
+ if (channel->manager->read_blk64)
+ return (channel->manager->read_blk64)(channel, block,
+ count, data);
+
+ if ((block >> 32) != 0)
+ return EXT2_ET_IO_CHANNEL_NO_SUPPORT_64;
+
+ return (channel->manager->read_blk)(channel, (unsigned long) block,
+ count, data);
+}
+
+errcode_t io_channel_write_blk64(io_channel channel, unsigned long long block,
+ int count, const void *data)
+{
+ EXT2_CHECK_MAGIC(channel, EXT2_ET_MAGIC_IO_CHANNEL);
+
+ if (channel->manager->write_blk64)
+ return (channel->manager->write_blk64)(channel, block,
+ count, data);
+
+ if ((block >> 32) != 0)
+ return EXT2_ET_IO_CHANNEL_NO_SUPPORT_64;
+
+ return (channel->manager->write_blk)(channel, (unsigned long) block,
+ count, data);
+}