Hi Norman,
thank you for you answer!
The RO attach sounds indeed like a mechanism that would fit our scenario.
May i ask you some more questions on this idea?
RO attach
In addition to the read/write permission as stored in the dataspace, we may add the same property to 'Region' objects, which are created whenever a dataspace is attached via 'Region_map::attach'.
Does the '_write' flag in 'Rm_region' already specify whether the 'Region' is writable or not? May i use it to determine if the corresponding Mapping should be writable or do i need to implement another flag?
By specifying that a dataspace should be attached read-only, the resulting mapping will always be read-only regardless of whether the underlying dataspace is writable. As far as I see, the implementation wouldn't be too hard. When resolving page faults, the pager would logically-AND the r/w conditions of the traversed region maps (they may be nested so the downgrade from RW to RO could happen at any level) with the property of the dataspace.
As far as i can follow your description i would have to do the following two things:
1. Provide an alternative implementation for 'Region_map_component::attach' which allows to create a read-only 'Region' (corresponding flag set)
2. Modify the method 'Rm_client::pager' in order to take the flag of the region into account when creating mappings. (At the moment only the property of the dataspace is considered)
Is that everything or did i miss something?
Kind Regards, David