[LTP] [PATCH] openposix: mmap/21-1: adjust the test to work with MAP_SHARED_VALIDATE
Stanislav Kholmanskikh
stanislav.kholmanskikh@oracle.com
Mon Feb 12 13:29:25 CET 2018
Hi.
On 02/08/2018 07:34 PM, Cyril Hrubis wrote:
> Hi!
>> +int is_valid(int flag)
>> +{
>> + if (flag == MAP_SHARED || flag == MAP_PRIVATE || flag == MAP_FIXED)
>> + return 1;
>> +
>> +#ifdef __linux__
>> +
>> +#ifndef MAP_SHARED_VALIDATE
>> +#define MAP_SHARED_VALIDATE 0x03
>> +#endif
>> +
>> + if (flag == MAP_SHARED_VALIDATE)
>> + return 1;
>> +#endif
>> +
>> + return 0;
>> +}
>
> Hmm, this probably does not scale up, what about setting the flag to
> have all its bits set (i.e. passing ~0 to the mmap()) from the start
> instead?
>
In main() we search for the first value of 'flag' for which the
following statement is not true:
flag == MAP_SHARED || flag == MAP_PRIVATE || flag == MAP_FIXED || flag
== MAP_SHARED_VALIDATE
where the last part is Linux-specific and likely needs an #ifdef.
We are not interested if flag has MAP_SHARED or other bits set, but we
are interested when flag _equals_ MAP_SHARED or other values.
In order to make the code more readable (IMHO) I decided to move this
check into a separate function.
I don't fully understand your proposal. Could you, please, elaborate a
bit more?
Thanks.
More information about the ltp
mailing list