three quesions about filesytem

shizheng neversetsun at ustc.edu
Sat Apr 21 04:41:10 UTC 2007


rtems-users-request at rtems.org wrote:
> ------------------------------
>
> Message: 2
> Date: Fri, 20 Apr 2007 08:41:59 -0500
> From: Joel Sherrill <joel.sherrill at oarcorp.com>
> Subject: Re: three quesions about filesytem
> To: neversetsun at ustc.edu
> Cc: rtems-users at rtems.org
> Message-ID: <4628C327.9060708 at oarcorp.com>
> Content-Type: text/plain; charset=GB2312
>
> shizheng wrote:
>> Hi:
>>
>> 1.
>> rtems_libio_is_valid_perms always returns non-zero value,
>> so I can't catch why it's called in IMFS_evaluate_permission and
>> IMFS_eval_path.
>>
>> #define RTEMS_LIBIO_PERMS_RWX S_IRWXO
>> /*
>> * Verifies that the permission flag is valid.
>> */
>> #define rtems_libio_is_valid_perms( _perm ) \
>> (~ ((~RTEMS_LIBIO_PERMS_RWX) & _perm ))
>>
>>
> This is only used to check for an assert condition. Did somehow a bit
> get set in
> the permissions that isn't even defined.
But I dont' think there's a situation that the macro will check the
undefined bit set in "_perm" parameter, becasue

(~ ((~RTEMS_LIBIO_PERMS_RWX) & _perm )) = (RTEMS_LIBIO_PERMS_RWX ||
(~_perm))


The macro maybe like this:

#define rtems_libio_is_valid_perms( _perm ) \
(~( ((~RTEMS_LIBIO_PERMS_RWX) & _perm ) & (~RTEMS_LIBIO_PERM_RWX)))

Then it will check out the bits set outside RTEMS_LIBIO_PERMS_RWX which
is 007.



More information about the users mailing list