* [PATCH 0/2] Make fio.h a bit more C++ safe
@ 2014-02-12 14:51 Daniel Gollub
2014-02-12 14:51 ` [PATCH 1/2] Make file.h C++ safe by casting fio_file_flags Daniel Gollub
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Daniel Gollub @ 2014-02-12 14:51 UTC (permalink / raw)
To: fio; +Cc: Daniel Gollub
Following patches allow to include fio.h for a C++ based
(external) ioengine to be compiled with g++.
(Preparing two fio engines: one internal for CEPH RBD
another external for CEPH FileStore)
Daniel Gollub (2):
Make file.h C++ safe by casting fio_file_flags
Make parse.h C++ safe by avoiding "or" keyword
file.h | 4 ++--
options.c | 6 +++---
parse.c | 4 ++--
parse.h | 2 +-
4 files changed, 8 insertions(+), 8 deletions(-)
--
1.7.10.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] Make file.h C++ safe by casting fio_file_flags
2014-02-12 14:51 [PATCH 0/2] Make fio.h a bit more C++ safe Daniel Gollub
@ 2014-02-12 14:51 ` Daniel Gollub
2014-02-12 14:51 ` [PATCH 2/2] Make parse.h C++ safe by avoiding "or" keyword Daniel Gollub
2014-02-12 15:26 ` [PATCH 0/2] Make fio.h a bit more C++ safe Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Daniel Gollub @ 2014-02-12 14:51 UTC (permalink / raw)
To: fio; +Cc: Daniel Gollub
Fixes for g++ (4.7.2) following compiler errors when fio.h
gets included (e.g. in an external C++ ioengine):
--8<---
[...]
os/../file.h: In function ‘void fio_file_set_open(fio_file*)’:
os/../file.h:142:1: error: invalid conversion from ‘int’ to ‘fio_file_flags’ [-fpermissive]
os/../file.h: In function ‘void fio_file_clear_open(fio_file*)’:
os/../file.h:142:1: error: invalid conversion from ‘int’ to ‘fio_file_flags’ [-fpermissive]
os/../file.h: In function ‘void fio_file_set_closing(fio_file*)’:
[...]
--->8---
Signed-off-by: Daniel Gollub <d.gollub@telekom.de>
---
file.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/file.h b/file.h
index d7e05f4..12d2d11 100644
--- a/file.h
+++ b/file.h
@@ -128,11 +128,11 @@ struct fio_file {
#define FILE_FLAG_FNS(name) \
static inline void fio_file_set_##name(struct fio_file *f) \
{ \
- (f)->flags |= FIO_FILE_##name; \
+ (f)->flags = (enum fio_file_flags) ((f)->flags | FIO_FILE_##name); \
} \
static inline void fio_file_clear_##name(struct fio_file *f) \
{ \
- (f)->flags &= ~FIO_FILE_##name; \
+ (f)->flags = (enum fio_file_flags) ((f)->flags & ~FIO_FILE_##name); \
} \
static inline int fio_file_##name(struct fio_file *f) \
{ \
--
1.7.10.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] Make parse.h C++ safe by avoiding "or" keyword
2014-02-12 14:51 [PATCH 0/2] Make fio.h a bit more C++ safe Daniel Gollub
2014-02-12 14:51 ` [PATCH 1/2] Make file.h C++ safe by casting fio_file_flags Daniel Gollub
@ 2014-02-12 14:51 ` Daniel Gollub
2014-02-12 15:26 ` [PATCH 0/2] Make fio.h a bit more C++ safe Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Daniel Gollub @ 2014-02-12 14:51 UTC (permalink / raw)
To: fio; +Cc: Daniel Gollub
Fixes for g++ (4.7.2) following compiler errors when fio.h
gets included (e.g. in an external C++ ioengine):
--8<---
[...]
parse.h:31:6: error: expected unqualified-id before ‘or’ token
[...]
--->8---
Signed-off-by: Daniel Gollub <d.gollub@telekom.de>
---
options.c | 6 +++---
parse.c | 4 ++--
parse.h | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/options.c b/options.c
index 57e9af5..a646546 100644
--- a/options.c
+++ b/options.c
@@ -1901,18 +1901,18 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
{ .ival = "wait_before",
.oval = SYNC_FILE_RANGE_WAIT_BEFORE,
.help = "SYNC_FILE_RANGE_WAIT_BEFORE",
- .or = 1,
+ .orval = 1,
},
{ .ival = "write",
.oval = SYNC_FILE_RANGE_WRITE,
.help = "SYNC_FILE_RANGE_WRITE",
- .or = 1,
+ .orval = 1,
},
{
.ival = "wait_after",
.oval = SYNC_FILE_RANGE_WAIT_AFTER,
.help = "SYNC_FILE_RANGE_WAIT_AFTER",
- .or = 1,
+ .orval = 1,
},
},
.type = FIO_OPT_STR_MULTI,
diff --git a/parse.c b/parse.c
index 6141c91..f74f0a9 100644
--- a/parse.c
+++ b/parse.c
@@ -415,14 +415,14 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data,
if (!strncmp(vp->ival, ptr, str_match_len(vp, ptr))) {
ret = 0;
if (o->roff1) {
- if (vp->or)
+ if (vp->orval)
*(unsigned int *) o->roff1 |= vp->oval;
else
*(unsigned int *) o->roff1 = vp->oval;
} else {
if (!o->off1)
continue;
- val_store(ilp, vp->oval, o->off1, vp->or, data);
+ val_store(ilp, vp->oval, o->off1, vp->orval, data);
}
continue;
}
diff --git a/parse.h b/parse.h
index 34d99d4..b98b514 100644
--- a/parse.h
+++ b/parse.h
@@ -28,7 +28,7 @@ struct value_pair {
const char *ival; /* string option */
unsigned int oval; /* output value */
const char *help; /* help text for sub option */
- int or; /* OR value */
+ int orval; /* OR value */
void *cb; /* sub-option callback */
};
--
1.7.10.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] Make fio.h a bit more C++ safe
2014-02-12 14:51 [PATCH 0/2] Make fio.h a bit more C++ safe Daniel Gollub
2014-02-12 14:51 ` [PATCH 1/2] Make file.h C++ safe by casting fio_file_flags Daniel Gollub
2014-02-12 14:51 ` [PATCH 2/2] Make parse.h C++ safe by avoiding "or" keyword Daniel Gollub
@ 2014-02-12 15:26 ` Jens Axboe
2 siblings, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2014-02-12 15:26 UTC (permalink / raw)
To: Daniel Gollub, fio; +Cc: Daniel Gollub
On 02/12/2014 07:51 AM, Daniel Gollub wrote:
> Following patches allow to include fio.h for a C++ based
> (external) ioengine to be compiled with g++.
>
> (Preparing two fio engines: one internal for CEPH RBD
> another external for CEPH FileStore)
>
> Daniel Gollub (2):
> Make file.h C++ safe by casting fio_file_flags
> Make parse.h C++ safe by avoiding "or" keyword
Thanks, applied both of them. You missed goptions.c for the ->or change,
caught that and fixed it.
--
Jens Axboe
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-02-12 15:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-12 14:51 [PATCH 0/2] Make fio.h a bit more C++ safe Daniel Gollub
2014-02-12 14:51 ` [PATCH 1/2] Make file.h C++ safe by casting fio_file_flags Daniel Gollub
2014-02-12 14:51 ` [PATCH 2/2] Make parse.h C++ safe by avoiding "or" keyword Daniel Gollub
2014-02-12 15:26 ` [PATCH 0/2] Make fio.h a bit more C++ safe Jens Axboe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox