From 3078c9460c62d2acbcea9c9a5eab6d666fad79e9 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 27 Jul 2019 12:40:06 +0200 Subject: Catch LFS64 inconsistencies in RPC server stubs * libdiskfs/diskfs.h (protid_t): New type (diskfs_S_io_write, diskfs_S_io_read, diskfs_S_io_seek, diskfs_S_io_stat, diskfs_S_file_set_size, diskfs_S_file_get_storage_info, diskfs_S_file_statfs): New prototypes. * libnetfs/netfs.h (netfs_S_io_write, netfs_S_io_read, netfs_S_io_seek, netfs_S_io_stat, netfs_S_file_set_size, netfs_S_file_get_storage_info, netfs_S_file_statfs): New prototypes. * libtrivfs/trivfs.h (trivfs_S_io_write, trivfs_S_io_read, trivfs_S_io_seek, trivfs_S_io_stat, trivfs_S_file_set_size, trivfs_S_file_get_storage_info, trivfs_S_file_statfs): New prototypes. --- libdiskfs/diskfs.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'libdiskfs') diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h index 4fdeaac2..c949ec07 100644 --- a/libdiskfs/diskfs.h +++ b/libdiskfs/diskfs.h @@ -1159,4 +1159,48 @@ struct store *diskfs_init_main (struct argp *startup_argp, /* Make errors go somewhere reasonable. */ void diskfs_console_stdio (); + +/* The following extracts from io_S.h and fs_S.h catch loff_t erroneously + written off_t and stat64 erroneously written stat, + or missing -D_FILE_OFFSET_BITS=64 build flag. */ + +typedef struct protid *protid_t; + +kern_return_t diskfs_S_io_write (protid_t io_object, + data_t data, + mach_msg_type_number_t dataCnt, + loff_t offset, + vm_size_t *amount); + +kern_return_t diskfs_S_io_read (protid_t io_object, + data_t *data, + mach_msg_type_number_t *dataCnt, + loff_t offset, + vm_size_t amount); + +kern_return_t diskfs_S_io_seek (protid_t io_object, + loff_t offset, + int whence, + loff_t *newp); + +kern_return_t diskfs_S_io_stat (protid_t stat_object, + io_statbuf_t *stat_info); + +kern_return_t diskfs_S_file_set_size (protid_t trunc_file, + loff_t new_size); + +kern_return_t diskfs_S_file_get_storage_info (protid_t file, + portarray_t *ports, + mach_msg_type_name_t *portsPoly, + mach_msg_type_number_t *portsCnt, + intarray_t *ints, + mach_msg_type_number_t *intsCnt, + off_array_t *offsets, + mach_msg_type_number_t *offsetsCnt, + data_t *data, + mach_msg_type_number_t *dataCnt); + +kern_return_t diskfs_S_file_statfs (protid_t file, + fsys_statfsbuf_t *info); + #endif /* hurd/diskfs.h */ -- cgit v1.2.3