Fixed passed ot open() for O_CREAT

In nuttx the mode parameter to open is not required but in Linux,
and per the POSIX spec, mode is required if the O_CREAT flag is
passed.

The mode flags are different for NuttX and Linux so a new set of
PX4 defines was added:

PX4_O_MODE_777 - read, write, execute for user, group and other
PX4_O_MODE_666 - read, and write for user, group and other
PX4_O_MODE_600 - read, and write for user

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
This commit is contained in:
Mark Charlebois
2015-06-14 11:26:40 +02:00
committed by Lorenz Meier
parent c6b36073fe
commit 872a26e6da
8 changed files with 19 additions and 12 deletions
+11
View File
@@ -107,6 +107,11 @@ typedef param_t px4_param_t;
#define PX4_ISFINITE(x) isfinite(x)
// mode for open with O_CREAT
#define PX4_O_MODE_777 0777
#define PX4_O_MODE_666 0666
#define PX4_O_MODE_600 0600
#ifndef PRIu64
#define PRIu64 "llu"
#endif
@@ -119,6 +124,12 @@ typedef param_t px4_param_t;
// Flag is meaningless on Linux
#define O_BINARY 0
// mode for open with O_CREAT
#define PX4_O_MODE_777 (S_IRWXU | S_IRWXG | S_IRWXO)
#define PX4_O_MODE_666 (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH )
#define PX4_O_MODE_600 (S_IRUSR | S_IWUSR)
// NuttX _IOC is equivalent to Linux _IO
#define _PX4_IOC(x,y) _IO(x,y)