Allow use headers in C++.
PATCH 1/1 Allow use headers in C++.
Remove C++ private keyword from header.
Add extern C definition for libdevmapper and lvm2app.
--- libdm/libdevmapper.h | 13 ++++++++++--- libdm/libdm-report.c | 4 ++-- liblvm/lvm2app.h | 6 ++++++ 3 files changed, 18 insertions(+), 5 deletions(-)
libdm/libdevmapper.h +10 -3
@@ -1,6 +1,6 @@/* * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. -* Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. +* Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. * * This file is part of the device-mapper userspace tools. *
@@ -29,6 +29,10 @@#include <stdlib.h> #include <stdio.h> +#ifdef __cplusplus +extern "C" { +#endif +/***************************************************************** * The first section of this file provides direct access to the * individual device-mapper ioctls. Since it is quite laborious to
@@ -1022,7 +1026,7 @@ struct dm_report_field_type {const char heading[32 ];/* string printed in header */ int (*report_fn)(struct dm_report *rh,struct dm_pool *mem,struct dm_report_field *field,const void *data, -void *private); +void *private_data);const char *desc;/* description of the field */ };
@@ -1044,7 +1048,7 @@ struct dm_report *dm_report_init(uint32_t *report_types,const char *output_separator, uint32_t output_flags, const char *sort_keys, - void *private); + void *private_data);int dm_report_object (struct dm_report *rh,void *object);int dm_report_output (struct dm_report *rh);void dm_report_free (struct dm_report *rh);
@@ -1163,4 +1167,7 @@ int dm_udev_wait(uint32_t cookie);#define DM_DEV_DIR_UMASK 0022 +#ifdef __cplusplus +} +#endif #endif /* LIB_DEVICE_MAPPER_H */
libdm/libdm-report.c +2 -2
@@ -566,7 +566,7 @@ struct dm_report *dm_report_init(uint32_t *report_types,const char *output_separator, uint32_t output_flags, const char *sort_keys, - void *private) + void *private_data) { struct dm_report *rh;const struct dm_report_object_type *type;
@@ -588,7 +588,7 @@ struct dm_report *dm_report_init(uint32_t *report_types, rh->separator = output_separator; rh->fields = fields; rh->types = types; - rh->private = private; + rh->private = private_data; rh->flags |= output_flags &DM_REPORT_OUTPUT_MASK ;
liblvm/lvm2app.h +6 -0
@@ -18,6 +18,9 @@#include <stdint.h> +#ifdef __cplusplus +extern "C" { +#endif /******************************** WARNING *********************************** *
@@ -1194,4 +1197,7 @@ uint64_t lvm_pv_get_free(const pv_t pv);*/ int lvm_pv_resize (const pv_t pv,uint64_t new_size); +#ifdef __cplusplus +} +#endif #endif /* _LIB_LVM2APP_H */
Signature · 1 line
1.7.1
PATCH 1/1 Allow use headers in C++.
Quoted 3 lines · Milan Broz
Remove C++ private keyword from header.
Add extern C definition for libdevmapper and lvm2app.
---
Thank you.
Quoted 1 line · Milan Broz
Remove C++ private keyword from header.
...
Quoted 14 lines
libdm/libdm-report.c +1
-1@@ -566,7 +566,7 @@ struct dm_report *dm_report_init(uint32_t *report_types,const char *output_separator, uint32_t output_flags, const char *sort_keys, - void *private) + void *private_data) { struct dm_report *rh;const struct dm_report_object_type *type;
libdm/libdm-report.c struct dm_report *dm_report_init(uint32_t *report_types, · line 593
Quoted 7 lines
libdm/libdm-report.c +1
-1@@ -588,7 +588,7 @@ struct dm_report *dm_report_init(uint32_t *report_types, rh->separator = output_separator; rh->fields = fields; rh->types = types; - rh->private = private; + rh->private = private_data; rh->flags |= output_flags &DM_REPORT_OUTPUT_MASK ;
Should struct dm_report's "private" be renamed too?
Quoted 25 lines · Mike Snitzer
Quoted 1 line · Milan Broz
Remove C++ private keyword from header.
...
Quoted 20 lines
libdm/libdm-report.c +2
-2@@ -566,7 +566,7 @@ struct dm_report *dm_report_init(uint32_t *report_types,const char *output_separator, uint32_t output_flags, const char *sort_keys, - void *private) + void *private_data) { struct dm_report *rh;const struct dm_report_object_type *type;@@ -588,7 +588,7 @@ struct dm_report *dm_report_init(uint32_t *report_types, rh->separator = output_separator; rh->fields = fields; rh->types = types; - rh->private = private; + rh->private = private_data;
Quoted 3 lines
libdm/libdm-report.c struct dm_report *dm_report_init(uint32_t *report_types, · line 593
Quoted 1 line
libdm/libdm-report.c +0
-0rh->flags |= output_flags &DM_REPORT_OUTPUT_MASK ;Should struct dm_report's "private" be renamed too?
Not needed, that's not part of external API/ABI but internal to library. (There are more such conflicting names, but these are not problem in compilation, because this is always compiled in C only.)
Milan
PATCH 1/1 Allow use headers in C++.
In reply to Milan BrozDne 14.6.2010 18:20, Milan Broz napsal(a):
libdm/libdevmapper.h
Quoted 13 lines
Remove C++ private keyword from header.
Add extern C definition for libdevmapper and lvm2app.--- libdm/libdevmapper.h | 13 ++++++++++--- libdm/libdm-report.c | 4 ++-- liblvm/lvm2app.h | 6 ++++++ 3 files changed, 18 insertions(+), 5 deletions(-)libdm/libdevmapper.h +0
-0@@ -1,6 +1,6 @@
Ack
When we do this for libdevmapper.h and lvm2app.h, then for consistency C++ externs should be applied to remaing user exported headers:
libdevmapper-event.hlvm2cmd.h
Zdenek