# HG changeset patch # User Paul Boddie # Date 1618180394 -7200 # Node ID f2b7be2d6143164bee26c14fa058d12a02807364 # Parent 00dc578063750732c4adcf3fdac2f94469556f2e Introduced an address type and used the offset type more thoroughly. Unlike previous suspicions, the offset type should be compatible with various IPC operations even on 32-bit architectures. diff -r 00dc57806375 -r f2b7be2d6143 client/file.cc --- a/client/file.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/client/file.cc Mon Apr 12 00:33:14 2021 +0200 @@ -124,7 +124,8 @@ return -L4_EINVAL; client_Opener opener(server); - unsigned long size, flags; + offset_t size; + flags_t flags; long err; file_init(file); diff -r 00dc57806375 -r f2b7be2d6143 files/file_pager.cc --- a/files/file_pager.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/files/file_pager.cc Mon Apr 12 00:33:14 2021 +0200 @@ -56,7 +56,7 @@ /* Generic pager operations. */ -long FilePager::map(unsigned long offset, l4_addr_t hot_spot, flags_t flags, l4_snd_fpage_t *region) +long FilePager::map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region) { return Pager::map(offset, hot_spot, flags, region); } diff -r 00dc57806375 -r f2b7be2d6143 files/file_pager.h --- a/files/file_pager.h Sun Apr 11 19:34:07 2021 +0200 +++ b/files/file_pager.h Mon Apr 12 00:33:14 2021 +0200 @@ -36,7 +36,7 @@ /* Pager and mapped file methods. */ - virtual long map(unsigned long offset, l4_addr_t hot_spot, flags_t flags, + virtual long map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region); virtual long mmap(offset_t position, offset_t length, offset_t *start_pos, diff -r 00dc57806375 -r f2b7be2d6143 files/opener_context_resource.cc --- a/files/opener_context_resource.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/files/opener_context_resource.cc Mon Apr 12 00:33:14 2021 +0200 @@ -45,7 +45,7 @@ /* Opener context interface methods. */ -long OpenerContextResource::open(flags_t flags, size_t *size, l4_cap_idx_t *file) +long OpenerContextResource::open(flags_t flags, offset_t *size, l4_cap_idx_t *file) { char *path = get_path(); diff -r 00dc57806375 -r f2b7be2d6143 files/opener_context_resource.h --- a/files/opener_context_resource.h Sun Apr 11 19:34:07 2021 +0200 +++ b/files/opener_context_resource.h Mon Apr 12 00:33:14 2021 +0200 @@ -36,11 +36,11 @@ /* Opener context interface methods. */ - long open(flags_t flags, size_t *size, l4_cap_idx_t *file); + long open(flags_t flags, offset_t *size, l4_cap_idx_t *file); /* Pager/dataspace methods. */ - long map(unsigned long offset, l4_addr_t hot_spot, flags_t flags, + long map(unsigned long offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region) { return SimplePager::map(offset, hot_spot, flags, region); } diff -r 00dc57806375 -r f2b7be2d6143 generic/pager.cc --- a/generic/pager.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/generic/pager.cc Mon Apr 12 00:33:14 2021 +0200 @@ -66,7 +66,7 @@ /* Map a flexpage corresponding to the dataspace 'offset' involving a 'hot_spot' (flexpage offset). */ -long Pager::map(offset_t offset, l4_addr_t hot_spot, flags_t flags, +long Pager::map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region) { offset_t file_offset = _start + offset; diff -r 00dc57806375 -r f2b7be2d6143 generic/pager.h --- a/generic/pager.h Sun Apr 11 19:34:07 2021 +0200 +++ b/generic/pager.h Mon Apr 12 00:33:14 2021 +0200 @@ -23,7 +23,7 @@ /* Paging methods. */ - virtual long map(offset_t offset, l4_addr_t hot_spot, flags_t flags, + virtual long map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region); /* Limit methods. */ diff -r 00dc57806375 -r f2b7be2d6143 generic/simple_pager.cc --- a/generic/simple_pager.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/generic/simple_pager.cc Mon Apr 12 00:33:14 2021 +0200 @@ -29,7 +29,7 @@ /* Map a flexpage corresponding to the dataspace 'offset' involving a 'hot_spot' (flexpage offset). */ -long SimplePager::map(offset_t offset, l4_addr_t hot_spot, flags_t flags, l4_snd_fpage_t *region) +long SimplePager::map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region) { Flexpage flexpage(_region); diff -r 00dc57806375 -r f2b7be2d6143 generic/simple_pager.h --- a/generic/simple_pager.h Sun Apr 11 19:34:07 2021 +0200 +++ b/generic/simple_pager.h Mon Apr 12 00:33:14 2021 +0200 @@ -22,7 +22,7 @@ /* Paging methods. */ - long map(offset_t offset, l4_addr_t hot_spot, flags_t flags, l4_snd_fpage_t *region); + long map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region); long info(offset_t *size, flags_t *flags); }; diff -r 00dc57806375 -r f2b7be2d6143 mapping/ipc.cc --- a/mapping/ipc.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/mapping/ipc.cc Mon Apr 12 00:33:14 2021 +0200 @@ -17,8 +17,8 @@ /* Make a representation of a flexpage for the IPC system. */ -long ipc_prepare_flexpage(Flexpage *flexpage, unsigned long offset, - unsigned long max_offset, l4_addr_t hot_spot, +long ipc_prepare_flexpage(Flexpage *flexpage, offset_t offset, + offset_t max_offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region) { SendFlexpage send_flexpage = flexpage->to_send(offset, hot_spot, flags, diff -r 00dc57806375 -r f2b7be2d6143 mapping/ipc.h --- a/mapping/ipc.h Sun Apr 11 19:34:07 2021 +0200 +++ b/mapping/ipc.h Mon Apr 12 00:33:14 2021 +0200 @@ -6,8 +6,8 @@ -long ipc_prepare_flexpage(Flexpage *flexpage, unsigned long offset, - unsigned long max_offset, l4_addr_t hot_spot, +long ipc_prepare_flexpage(Flexpage *flexpage, offset_t offset, + offset_t max_offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region); void ipc_unmap_flexpage(Flexpage *flexpage); diff -r 00dc57806375 -r f2b7be2d6143 pipes/pipe_pager.cc --- a/pipes/pipe_pager.cc Sun Apr 11 19:34:07 2021 +0200 +++ b/pipes/pipe_pager.cc Mon Apr 12 00:33:14 2021 +0200 @@ -38,7 +38,7 @@ /* Support paging. */ -long PipePager::map(unsigned long offset, l4_addr_t hot_spot, flags_t flags, l4_snd_fpage_t *region) +long PipePager::map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region) { return Pager::map(offset, hot_spot, flags, region); } diff -r 00dc57806375 -r f2b7be2d6143 pipes/pipe_pager.h --- a/pipes/pipe_pager.h Sun Apr 11 19:34:07 2021 +0200 +++ b/pipes/pipe_pager.h Mon Apr 12 00:33:14 2021 +0200 @@ -35,7 +35,7 @@ /* Pager methods. */ - virtual long map(unsigned long offset, l4_addr_t hot_spot, flags_t flags, l4_snd_fpage_t *region); + virtual long map(offset_t offset, address_t hot_spot, flags_t flags, l4_snd_fpage_t *region); /* Pipe methods. */