A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 81 lines 2.5 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * 9 * Copyright © 2010 Rafaël Carré 10 * 11 * This program is free software; you can redistribute it and/or 12 * modify it under the terms of the GNU General Public License 13 * as published by the Free Software Foundation; either version 2 14 * of the License, or (at your option) any later version. 15 * 16 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 17 * KIND, either express or implied. 18 * 19 ****************************************************************************/ 20 21#ifndef _GCC_EXTENSIONS_H_ 22#define _GCC_EXTENSIONS_H_ 23 24/* Support for some GCC extensions */ 25 26/* Compile time check of format for printf/scanf like functions */ 27#if defined(__GNUC__) && (__GNUC__ != 7) 28#define ATTRIBUTE_PRINTF(fmt, arg1) __attribute__( ( format( printf, fmt, arg1 ) ) ) 29#define ATTRIBUTE_SCANF(fmt, arg1) __attribute__( ( format( scanf, fmt, arg1 ) ) ) 30#else 31#define ATTRIBUTE_PRINTF(fmt, arg1) 32#define ATTRIBUTE_SCANF(fmt, arg1) 33#endif 34 35 36/* Use to give gcc hints on which branch is most likely taken */ 37#if defined(__GNUC__) && __GNUC__ >= 3 38#define LIKELY(x) __builtin_expect(!!(x), 1) 39#define UNLIKELY(x) __builtin_expect(!!(x), 0) 40#else 41#define LIKELY(x) (x) 42#define UNLIKELY(x) (x) 43#endif 44 45 46#if defined(__GNUC__) && (__GNUC__ >= 3 || \ 47 (__GNUC__ >= 2 && __GNUC_MINOR__ >= 5)) 48#define NORETURN_ATTR __attribute__((noreturn)) 49#else 50#define NORETURN_ATTR 51#endif 52 53 54#if defined(__GNUC__) 55#define FORCE_INLINE inline __attribute__((always_inline)) 56#else 57#define FORCE_INLINE inline 58#endif 59 60#if defined(__GNUC__) 61#define NO_INLINE __attribute__((noinline)) 62#else 63#define NO_INLINE 64#endif 65 66/* Version information from http://ohse.de/uwe/articles/gcc-attributes.html */ 67#if defined(__GNUC__) && (__GNUC__ >= 4 || \ 68 (__GNUC__ >= 3 && __GNUC_MINOR__ >= 1)) 69#define USED_ATTR __attribute__((used)) 70#else 71#define USED_ATTR 72#endif 73 74#if defined(__GNUC__) && (__GNUC__ >= 3) 75#define UNUSED_ATTR __attribute__((unused)) 76#else 77#define UNUSED_ATTR 78#endif 79 80 81#endif /* _GCC_EXTENSIONS_H_ */