diff --git a/src/libsysprof-capture/mapped-ring-buffer.h b/src/libsysprof-capture/mapped-ring-buffer.h index 0607aab0..5e2df525 100644 --- a/src/libsysprof-capture/mapped-ring-buffer.h +++ b/src/libsysprof-capture/mapped-ring-buffer.h @@ -24,7 +24,9 @@ #include #include -G_BEGIN_DECLS +#include "sysprof-macros.h" + +SYSPROF_BEGIN_DECLS typedef struct _MappedRingBuffer MappedRingBuffer; @@ -82,4 +84,4 @@ bool mapped_ring_buffer_drain (MappedRingBuffer G_GNUC_INTERNAL bool mapped_ring_buffer_is_empty (MappedRingBuffer *self); -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/meson.build b/src/libsysprof-capture/meson.build index 8ed7934a..77a12586 100644 --- a/src/libsysprof-capture/meson.build +++ b/src/libsysprof-capture/meson.build @@ -7,6 +7,7 @@ libsysprof_capture_headers = files([ 'sysprof-capture-types.h', 'sysprof-capture-writer.h', 'sysprof-collector.h', + 'sysprof-macros.h', 'sysprof-platform.h', 'sysprof-capture.h', 'sysprof-version-macros.h', diff --git a/src/libsysprof-capture/sysprof-address.h b/src/libsysprof-capture/sysprof-address.h index 39b70684..098bcc31 100644 --- a/src/libsysprof-capture/sysprof-address.h +++ b/src/libsysprof-capture/sysprof-address.h @@ -60,9 +60,10 @@ #include #include +#include "sysprof-macros.h" #include "sysprof-version-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS typedef uint64_t SysprofAddress; @@ -98,4 +99,4 @@ sysprof_address_compare (SysprofAddress a, return 1; } -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-capture-condition.h b/src/libsysprof-capture/sysprof-capture-condition.h index 185df91c..78ea7268 100644 --- a/src/libsysprof-capture/sysprof-capture-condition.h +++ b/src/libsysprof-capture/sysprof-capture-condition.h @@ -59,9 +59,10 @@ #include #include "sysprof-capture-types.h" +#include "sysprof-macros.h" #include "sysprof-version-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS SYSPROF_AVAILABLE_IN_ALL SysprofCaptureCondition *sysprof_capture_condition_copy (const SysprofCaptureCondition *self); @@ -93,4 +94,4 @@ SYSPROF_AVAILABLE_IN_ALL bool sysprof_capture_condition_match (const SysprofCaptureCondition *self, const SysprofCaptureFrame *frame); -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-capture-cursor.h b/src/libsysprof-capture/sysprof-capture-cursor.h index 4635006a..5d5693b5 100644 --- a/src/libsysprof-capture/sysprof-capture-cursor.h +++ b/src/libsysprof-capture/sysprof-capture-cursor.h @@ -59,9 +59,10 @@ #include #include "sysprof-capture-types.h" +#include "sysprof-macros.h" #include "sysprof-version-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS typedef struct _SysprofCaptureCursor SysprofCaptureCursor; @@ -99,4 +100,4 @@ SYSPROF_AVAILABLE_IN_ALL void sysprof_capture_cursor_add_condition (SysprofCaptureCursor *self, SysprofCaptureCondition *condition); -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-capture-reader.h b/src/libsysprof-capture/sysprof-capture-reader.h index d4e3e7df..c417f9b6 100644 --- a/src/libsysprof-capture/sysprof-capture-reader.h +++ b/src/libsysprof-capture/sysprof-capture-reader.h @@ -59,9 +59,10 @@ #include #include "sysprof-capture-types.h" +#include "sysprof-macros.h" #include "sysprof-version-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS typedef struct _SysprofCaptureReader SysprofCaptureReader; @@ -150,4 +151,4 @@ bool sysprof_capture_reader_read_file_fd ( int fd); -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-capture-types.h b/src/libsysprof-capture/sysprof-capture-types.h index ffe18867..109e7427 100644 --- a/src/libsysprof-capture/sysprof-capture-types.h +++ b/src/libsysprof-capture/sysprof-capture-types.h @@ -63,8 +63,9 @@ #include #include "sysprof-clock.h" +#include "sysprof-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS #define SYSPROF_CAPTURE_MAGIC (GUINT32_TO_LE(0xFDCA975E)) #define SYSPROF_CAPTURE_ALIGN (sizeof(SysprofCaptureAddress)) @@ -366,4 +367,4 @@ sysprof_capture_address_compare (SysprofCaptureAddress a, return 0; } -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-capture-writer.h b/src/libsysprof-capture/sysprof-capture-writer.h index d2f96c30..cc430909 100644 --- a/src/libsysprof-capture/sysprof-capture-writer.h +++ b/src/libsysprof-capture/sysprof-capture-writer.h @@ -63,7 +63,7 @@ #include "sysprof-capture-types.h" #include "sysprof-version-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS typedef struct _SysprofCaptureWriter SysprofCaptureWriter; @@ -253,4 +253,4 @@ bool _sysprof_capture_writer_set_time_range (Sy int64_t end_time) G_GNUC_INTERNAL; -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-capture.h b/src/libsysprof-capture/sysprof-capture.h index 59b68b91..e5b2dd5b 100644 --- a/src/libsysprof-capture/sysprof-capture.h +++ b/src/libsysprof-capture/sysprof-capture.h @@ -58,8 +58,6 @@ #include -G_BEGIN_DECLS - #define SYSPROF_CAPTURE_INSIDE # include "sysprof-address.h" @@ -74,5 +72,3 @@ G_BEGIN_DECLS # include "sysprof-version-macros.h" #undef SYSPROF_CAPTURE_INSIDE - -G_END_DECLS diff --git a/src/libsysprof-capture/sysprof-clock.h b/src/libsysprof-capture/sysprof-clock.h index fba81a4f..54695cba 100644 --- a/src/libsysprof-capture/sysprof-clock.h +++ b/src/libsysprof-capture/sysprof-clock.h @@ -60,9 +60,10 @@ #include #include +#include "sysprof-macros.h" #include "sysprof-version-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS typedef int SysprofClock; typedef int64_t SysprofTimeStamp; @@ -95,4 +96,4 @@ sysprof_clock_get_relative_time (SysprofTimeStamp epoch) SYSPROF_AVAILABLE_IN_ALL void sysprof_clock_init (void); -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-collector.h b/src/libsysprof-capture/sysprof-collector.h index c7ff9a63..f59ca921 100644 --- a/src/libsysprof-capture/sysprof-collector.h +++ b/src/libsysprof-capture/sysprof-collector.h @@ -57,8 +57,9 @@ #pragma once #include "sysprof-capture-types.h" +#include "sysprof-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS SYSPROF_AVAILABLE_IN_3_36 void sysprof_collector_init (void); @@ -86,4 +87,4 @@ void sysprof_collector_log_printf (int severity, const char *format, ...) G_GNUC_PRINTF (3, 4); -G_END_DECLS +SYSPROF_END_DECLS diff --git a/src/libsysprof-capture/sysprof-macros.h b/src/libsysprof-capture/sysprof-macros.h new file mode 100644 index 00000000..d5fd7325 --- /dev/null +++ b/src/libsysprof-capture/sysprof-macros.h @@ -0,0 +1,68 @@ +/* sysprof-macros.h + * + * Copyright 2020 Endless OS Foundation + * + * Author: + * - Philip Withnall + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * Subject to the terms and conditions of this license, each copyright holder + * and contributor hereby grants to those receiving rights under this license + * a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + * irrevocable (except for failure to satisfy the conditions of this license) + * patent license to make, have made, use, offer to sell, sell, import, and + * otherwise transfer this software, where such license applies only to those + * patent claims, already acquired or hereafter acquired, licensable by such + * copyright holder or contributor that are necessarily infringed by: + * + * (a) their Contribution(s) (the licensed copyrights of copyright holders + * and non-copyrightable additions of contributors, in source or binary + * form) alone; or + * + * (b) combination of their Contribution(s) with the work of authorship to + * which such Contribution(s) was added by such copyright holder or + * contributor, if, at the time the Contribution is added, such addition + * causes such combination to be necessarily infringed. The patent license + * shall not apply to any other combinations which include the + * Contribution. + * + * Except as expressly stated above, no rights or licenses from any copyright + * holder or contributor is granted under this license, whether expressly, by + * implication, estoppel or otherwise. + * + * DISCLAIMER + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * SPDX-License-Identifier: BSD-2-Clause-Patent + */ + +#pragma once + +#ifdef __cplusplus +#define SYSPROF_BEGIN_DECLS extern "C" { +#define SYSPROF_END_DECLS } +#else +#define SYSPROF_BEGIN_DECLS +#define SYSPROF_END_DECLS +#endif diff --git a/src/libsysprof-capture/sysprof-platform.h b/src/libsysprof-capture/sysprof-platform.h index 3f0b3768..44c3e964 100644 --- a/src/libsysprof-capture/sysprof-platform.h +++ b/src/libsysprof-capture/sysprof-platform.h @@ -60,12 +60,13 @@ #include #include "sysprof-version-macros.h" +#include "sysprof-macros.h" -G_BEGIN_DECLS +SYSPROF_BEGIN_DECLS SYSPROF_AVAILABLE_IN_ALL int sysprof_memfd_create (const char *desc); SYSPROF_AVAILABLE_IN_3_36 size_t sysprof_getpagesize (void); -G_END_DECLS +SYSPROF_END_DECLS