Skip to content

Instantly share code, notes, and snippets.

@valenting
Created January 25, 2017 11:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valenting/f738992d753eeabeb38c0fb97c6f03ef to your computer and use it in GitHub Desktop.
Save valenting/f738992d753eeabeb38c0fb97c6f03ef to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
# 1 "<built-in>"
# 1 "/home/icecold/mozilla-central/config/gcc_hidden.h" 1
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* Begin all files as hidden visibility */
#pragma GCC visibility push(hidden)
# 1 "<built-in>" 2
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h" 1
/* List of defines generated by configure. Included with preprocessor flag,
* -include, to avoid long list of -D defines on the compile command-line.
* Do not edit.
*/
#ifndef MOZILLA_CONFIG_H
#define MOZILLA_CONFIG_H
#if defined(__clang__)
#pragma clang diagnostic push
#if __has_warning("-Wreserved-id-macro")
#pragma clang diagnostic ignored "-Wreserved-id-macro"
#endif
# 14 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
#endif
# 15 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
// Expands to all the defines from configure.
#define A11Y_LOG 1
#define ACCESSIBILITY 1
#define ATK_MAJOR_VERSION 2
#define ATK_MINOR_VERSION 20
#define ATK_REV_VERSION 0
#define BUILD_CTYPES 1
#define CROSS_COMPILE
#define D_INO d_ino
#define E10S_TESTING_ONLY 1
#define EARLY_BETA_OR_EARLIER 1
#define ENABLE_INTL_API 1
#define ENABLE_SYSTEM_EXTENSION_DIRS 1
#define ENABLE_TESTS 1
#define EXPOSE_INTL_API 1
#define FIREFOX_VERSION 53.0a1
#define FORCE_PR_LOG 1
#define FUNCPROTO 15
#define GDK_VERSION_MAX_ALLOWED GDK_VERSION_3_4
#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_32
#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_26
#define GL_PROVIDER_GLX 1
#define GTEST_HAS_RTTI 0
#define HAVE_64BIT_BUILD 1
#define HAVE_ALLOCA_H 1
#define HAVE_BYTESWAP_H 1
#define HAVE_CLOCK_MONOTONIC 1
#define HAVE_CPUID_H 1
#define HAVE_DIRENT_H 1
#define HAVE_DLADDR 1
#define HAVE_DLOPEN 1
#define HAVE_FONTCONFIG_FCFREETYPE_H 1
#define HAVE_FT_BITMAP_SIZE_Y_PPEM 1
#define HAVE_FT_GLYPHSLOT_EMBOLDEN 1
#define HAVE_FT_LOAD_SFNT_TABLE 1
#define HAVE_GETOPT_H 1
#define HAVE_GMTIME_R 1
#define HAVE_I18N_LC_MESSAGES 1
#define HAVE_INTTYPES_H 1
#define HAVE_LANGINFO_CODESET 1
#define HAVE_LCHOWN 1
#define HAVE_LINUX_IF_ADDR_H 1
#define HAVE_LINUX_PERF_EVENT_H 1
#define HAVE_LINUX_QUOTA_H 1
#define HAVE_LINUX_RTNETLINK_H 1
#define HAVE_LOCALECONV 1
#define HAVE_LOCALTIME_R 1
#define HAVE_LSTAT64 1
#define HAVE_MALLINFO 1
#define HAVE_MALLOC_H 1
#define HAVE_MALLOC_USABLE_SIZE 1
#define HAVE_MEMALIGN 1
#define HAVE_MEMMEM 1
#define HAVE_NETINET_IN_H 1
#define HAVE_NL_TYPES_H 1
#define HAVE_POSIX_FADVISE 1
#define HAVE_POSIX_FALLOCATE 1
#define HAVE_POSIX_MEMALIGN 1
#define HAVE_PTHREAD_H 1
#define HAVE_RES_NINIT 1
#define HAVE_SETPRIORITY 1
#define HAVE_STAT64 1
#define HAVE_STDINT_H 1
#define HAVE_STRERROR 1
#define HAVE_STRNDUP 1
#define HAVE_SYSCALL 1
#define HAVE_SYS_QUEUE_H 1
#define HAVE_SYS_QUOTA_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_THREAD_TLS_KEYWORD 1
#define HAVE_TRUNCATE64 1
#define HAVE_UNISTD_H 1
#define HAVE_VALLOC 1
#define HAVE_VA_COPY 1
#define HAVE_VA_LIST_AS_ARRAY 1
#define HAVE_VISIBILITY_ATTRIBUTE 1
#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
#define HAVE__UNWIND_BACKTRACE 1
#define HAVE___CXA_DEMANGLE 1
#define JS_DEFAULT_JITREPORT_GRANULARITY 3
#define MALLOC_H <malloc.h>
#define MALLOC_USABLE_SIZE_CONST_PTR
#define MOZILLA_UAVERSION "53.0"
#define MOZILLA_VERSION "53.0a1"
#define MOZILLA_VERSION_U 53.0a1
#define MOZ_ACCESSIBILITY_ATK 1
#define MOZ_ADDON_SIGNING 1
#define MOZ_APP_UA_NAME ""
#define MOZ_APP_UA_VERSION "53.0a1"
#define MOZ_B2G_OS_NAME ""
#define MOZ_B2G_VERSION "1.0.0"
#define MOZ_BUILD_APP browser
#define MOZ_BUNDLED_FONTS 1
#define MOZ_CONTENT_SANDBOX 1
#define MOZ_CRASHREPORTER 1
#define MOZ_CRASHREPORTER_ENABLE_PERCENT 100
#define MOZ_DATA_REPORTING 1
#define MOZ_DEMANGLE_SYMBOLS 1
#define MOZ_DISTRIBUTION_ID "org.mozilla"
#define MOZ_DLL_SUFFIX ".so"
#define MOZ_DUMP_PAINTING 1
#define MOZ_ENABLE_DBUS 1
#define MOZ_ENABLE_GCONF 1
#define MOZ_ENABLE_GIO 1
#define MOZ_ENABLE_MASK_AS_SHORTHAND 1
#define MOZ_ENABLE_PROFILER_SPS 1
#define MOZ_ENABLE_SIGNMAR 1
#define MOZ_ENABLE_SKIA 1
#define MOZ_ENABLE_SKIA_PDF 1
#define MOZ_ENABLE_XREMOTE 1
#define MOZ_FEEDS 1
#define MOZ_FFMPEG 1
#define MOZ_FFVPX 1
#define MOZ_FMP4 1
#define MOZ_GLUE_IN_PROGRAM 1
#define MOZ_GMP_SANDBOX 1
#define MOZ_INSTRUMENT_EVENT_LOOP 1
#define MOZ_JSDOWNLOADS 1
#define MOZ_LIBAV_FFT 1
#define MOZ_LOGGING 1
#define MOZ_MACBUNDLE_ID org.mozilla.nightlydebug
#define MOZ_MEMORY 1
#define MOZ_MEMORY_DEBUG 1
#define MOZ_MEMORY_LINUX 1
#define MOZ_PEERCONNECTION 1
#define MOZ_PERMISSIONS 1
#define MOZ_PHOENIX 1
#define MOZ_PLACES 1
#define MOZ_PROFILING 1
#define MOZ_PULSEAUDIO 1
#define MOZ_RAW 1
#define MOZ_REFLOW_PERF 1
#define MOZ_REFLOW_PERF_DSP 1
#define MOZ_REPLACE_MALLOC 1
#define MOZ_RUST_MP4PARSE 1
#define MOZ_RUST_URLPARSE 1
#define MOZ_SAMPLE_TYPE_FLOAT32 1
#define MOZ_SANDBOX 1
#define MOZ_SCTP 1
#define MOZ_SECUREELEMENT 1
#define MOZ_SERVICES_HEALTHREPORT 1
#define MOZ_SRTP 1
#define MOZ_STACKWALKING 1
#define MOZ_STATIC_JS 1
#define MOZ_TREE_CAIRO 1
#define MOZ_TREE_PIXMAN 1
#define MOZ_UPDATER 1
#define MOZ_UPDATE_CHANNEL default
#define MOZ_USER_DIR ".mozilla"
#define MOZ_VORBIS 1
#define MOZ_VPX_ERROR_CONCEALMENT 1
#define MOZ_VPX_NO_MEM_REPORTING 1
#define MOZ_VTUNE 1
#define MOZ_WEBGL_CONFORMANT 1
#define MOZ_WEBM_ENCODER 1
#define MOZ_WEBRTC 1
#define MOZ_WEBRTC_ASSERT_ALWAYS 1
#define MOZ_WEBRTC_SIGNALING 1
#define MOZ_WEBSPEECH 1
#define MOZ_WEBSPEECH_TEST_BACKEND 1
#define MOZ_WIDGET_GTK 3
#define MOZ_X11 1
#define MOZ_XUL 1
#define NIGHTLY_BUILD 1
#define NO_NSPR_10_SUPPORT 1
#define NS_PRINTING 1
#define NS_PRINT_PREVIEW 1
#define STATIC_JS_API 1
#define STDC_HEADERS 1
#define TARGET_XPCOM_ABI "x86_64-gcc3"
#define USE_SKIA 1
#define USE_SKIA_GPU 1
#define U_STATIC_IMPLEMENTATION 1
#define U_USING_ICU_NAMESPACE 0
#define VA_COPY va_copy
#define VPX_X86_ASM 1
#define XP_LINUX 1
#define XP_UNIX 1
#define _REENTRANT 1
/*
* The c99 defining the limit macros (UINT32_MAX for example), says:
*
* C++ implementations should define these macros only when
* __STDC_LIMIT_MACROS is defined before <stdint.h> is included.
*
* The same also occurs with __STDC_CONSTANT_MACROS for the constant macros
* (INT8_C for example) used to specify a literal constant of the proper type,
* and with __STDC_FORMAT_MACROS for the format macros (PRId32 for example) used
* with the fprintf function family.
*/
#define __STDC_LIMIT_MACROS
#define __STDC_CONSTANT_MACROS
#if !defined(__STDC_FORMAT_MACROS)
#define __STDC_FORMAT_MACROS
#endif
# 212 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
#if defined(__clang__)
#pragma clang diagnostic pop
#endif
# 216 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
/*
* Force-include Char16.h in order to define PRUnichar as char16_t everywhere.
* Note that this should be the first #include to make sure that prtypes.h does
* not attempt to define PRUnichar. This includes the following hunspell-specific
* includes.
*/
#if !defined(__ASSEMBLER__)
#if 0 /* expanded by -frewrite-includes */
#include "mozilla/Char16.h"
#endif /* expanded by -frewrite-includes */
# 224 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h" 1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* Implements a UTF-16 character type. */
#ifndef mozilla_Char16_h
#define mozilla_Char16_h
#ifdef __cplusplus
/*
* C++11 introduces a char16_t type and support for UTF-16 string and character
* literals. C++11's char16_t is a distinct builtin type. Technically, char16_t
* is a 16-bit code unit of a Unicode code point, not a "character".
*/
#ifdef WIN32
# define MOZ_USE_CHAR16_WRAPPER
#if 0 /* expanded by -frewrite-includes */
# include <cstdint>
#endif /* expanded by -frewrite-includes */
# 22 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
# 23 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
#if 0 /* expanded by -frewrite-includes */
# include "mozilla/Attributes.h"
#endif /* expanded by -frewrite-includes */
# 23 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
# 24 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
/**
* Win32 API extensively uses wchar_t, which is represented by a separated
* builtin type than char16_t per spec. It's not the case for MSVC prior to
* MSVC 2015, but other compilers follow the spec. We want to mix wchar_t and
* char16_t on Windows builds. This class is supposed to make it easier. It
* stores char16_t const pointer, but provides implicit casts for wchar_t as
* well. On other platforms, we simply use
* |typedef const char16_t* char16ptr_t|. Here, we want to make the class as
* similar to this typedef, including providing some casts that are allowed
* by the typedef.
*/
class char16ptr_t
{
private:
const char16_t* mPtr;
static_assert(sizeof(char16_t) == sizeof(wchar_t),
"char16_t and wchar_t sizes differ");
public:
MOZ_IMPLICIT char16ptr_t(const char16_t* aPtr) : mPtr(aPtr) {}
MOZ_IMPLICIT char16ptr_t(const wchar_t* aPtr) :
mPtr(reinterpret_cast<const char16_t*>(aPtr))
{}
/* Without this, nullptr assignment would be ambiguous. */
constexpr MOZ_IMPLICIT char16ptr_t(decltype(nullptr)) : mPtr(nullptr) {}
operator const char16_t*() const
{
return mPtr;
}
operator const wchar_t*() const
{
return reinterpret_cast<const wchar_t*>(mPtr);
}
operator const void*() const
{
return mPtr;
}
MOZ_IMPLICIT operator bool() const
{
return mPtr != nullptr;
}
/* Explicit cast operators to allow things like (char16_t*)str. */
explicit operator char16_t*() const
{
return const_cast<char16_t*>(mPtr);
}
explicit operator wchar_t*() const
{
return const_cast<wchar_t*>(static_cast<const wchar_t*>(*this));
}
explicit operator int() const
{
return reinterpret_cast<intptr_t>(mPtr);
}
explicit operator unsigned int() const
{
return reinterpret_cast<uintptr_t>(mPtr);
}
explicit operator long() const
{
return reinterpret_cast<intptr_t>(mPtr);
}
explicit operator unsigned long() const
{
return reinterpret_cast<uintptr_t>(mPtr);
}
explicit operator long long() const
{
return reinterpret_cast<intptr_t>(mPtr);
}
explicit operator unsigned long long() const
{
return reinterpret_cast<uintptr_t>(mPtr);
}
/**
* Some Windows API calls accept BYTE* but require that data actually be
* WCHAR*. Supporting this requires explicit operators to support the
* requisite explicit casts.
*/
explicit operator const char*() const
{
return reinterpret_cast<const char*>(mPtr);
}
explicit operator const unsigned char*() const
{
return reinterpret_cast<const unsigned char*>(mPtr);
}
explicit operator unsigned char*() const
{
return
const_cast<unsigned char*>(reinterpret_cast<const unsigned char*>(mPtr));
}
explicit operator void*() const
{
return const_cast<char16_t*>(mPtr);
}
/* Some operators used on pointers. */
char16_t operator[](size_t aIndex) const
{
return mPtr[aIndex];
}
bool operator==(const char16ptr_t& aOther) const
{
return mPtr == aOther.mPtr;
}
bool operator==(decltype(nullptr)) const
{
return mPtr == nullptr;
}
bool operator!=(const char16ptr_t& aOther) const
{
return mPtr != aOther.mPtr;
}
bool operator!=(decltype(nullptr)) const
{
return mPtr != nullptr;
}
char16ptr_t operator+(int aValue) const
{
return char16ptr_t(mPtr + aValue);
}
char16ptr_t operator+(unsigned int aValue) const
{
return char16ptr_t(mPtr + aValue);
}
char16ptr_t operator+(long aValue) const
{
return char16ptr_t(mPtr + aValue);
}
char16ptr_t operator+(unsigned long aValue) const
{
return char16ptr_t(mPtr + aValue);
}
char16ptr_t operator+(long long aValue) const
{
return char16ptr_t(mPtr + aValue);
}
char16ptr_t operator+(unsigned long long aValue) const
{
return char16ptr_t(mPtr + aValue);
}
ptrdiff_t operator-(const char16ptr_t& aOther) const
{
return mPtr - aOther.mPtr;
}
};
inline decltype((char*)0-(char*)0)
operator-(const char16_t* aX, const char16ptr_t aY)
{
return aX - static_cast<const char16_t*>(aY);
}
#else
# 183 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
typedef const char16_t* char16ptr_t;
#endif
# 187 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
static_assert(sizeof(char16_t) == 2, "Is char16_t type 16 bits?");
static_assert(char16_t(-1) > char16_t(0), "Is char16_t type unsigned?");
static_assert(sizeof(u'A') == 2, "Is unicode char literal 16 bits?");
static_assert(sizeof(u""[0]) == 2, "Is unicode string char 16 bits?");
#endif
# 194 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
#endif /* mozilla_Char16_h */
# 196 "/home/icecold/mozilla-central/obj-ff-dbg/dist/include/mozilla/Char16.h"
# 225 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h" 2
#endif
# 226 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
/*
* Force-include hunspell_alloc_hooks.h and hunspell_fopen_hooks.h for hunspell,
* so that we don't need to modify them directly.
*
* HUNSPELL_STATIC is defined in extensions/spellcheck/hunspell/src/Makefile.in,
* unless --enable-system-hunspell is defined.
*/
#if defined(HUNSPELL_STATIC)
#if 0 /* expanded by -frewrite-includes */
#include "hunspell_alloc_hooks.h"
#endif /* expanded by -frewrite-includes */
# 235 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
# 236 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
#if 0 /* expanded by -frewrite-includes */
#include "hunspell_fopen_hooks.h"
#endif /* expanded by -frewrite-includes */
# 236 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
# 237 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
#endif
# 238 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
/*
* Force-include sdkdecls.h for building the chromium sandbox code.
*
* CHROMIUM_SANDBOX_BUILD is defined in security/sandbox/moz.build.
* Note that this include path relies on the LOCAL_INCLUDES in that file.
*/
#if defined(CHROMIUM_SANDBOX_BUILD) && defined(XP_WIN)
#if 0 /* expanded by -frewrite-includes */
#include "base/win/sdkdecls.h"
#endif /* expanded by -frewrite-includes */
# 246 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
# 247 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
#endif
# 248 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
#endif /* MOZILLA_CONFIG_H */
# 250 "/home/icecold/mozilla-central/obj-ff-dbg/mozilla-config.h"
# 1 "<built-in>" 2
# 1 "/home/icecold/mozilla-central/dom/ipc/ContentChild.cpp"
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifdef MOZ_WIDGET_GTK
#if 0 /* expanded by -frewrite-includes */
#include <gtk/gtk.h>
#endif /* expanded by -frewrite-includes */
# 8 "/home/icecold/mozilla-central/dom/ipc/ContentChild.cpp"
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/gtk/gtk.h" 1
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/gtk/gtk.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <gtk/gtk.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/gtk/gtk.h" 3
# 1 "/usr/include/gtk-3.0/gtk/gtk.h" 1 3
/* GTK - The GIMP Toolkit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __GTK_H__
#define __GTK_H__
#define __GTK_H_INSIDE__
#if 0 /* expanded by -frewrite-includes */
#include <gdk/gdk.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/gtk-3.0/gtk/gtk.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/gdk/gdk.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/gdk/gdk.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <gdk/gdk.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/gdk/gdk.h" 3
# 1 "/usr/include/gtk-3.0/gdk/gdk.h" 1 3
/* GDK - The GIMP Drawing Kit
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GTK+ Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __GDK_H__
#define __GDK_H__
#define __GDK_H_INSIDE__
#if 0 /* expanded by -frewrite-includes */
#include <gdk/gdkconfig.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/gtk-3.0/gdk/gdk.h" 3
# 1 "/usr/include/gtk-3.0/gdk/gdkconfig.h" 1 3
/* gdkconfig.h
*
* This is a generated file. Please modify `configure.ac'
*/
#ifndef __GDKCONFIG_H__
#define __GDKCONFIG_H__
#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdk.h> can be included directly."
#endif
# 12 "/usr/include/gtk-3.0/gdk/gdkconfig.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib.h>
#endif /* expanded by -frewrite-includes */
# 13 "/usr/include/gtk-3.0/gdk/gdkconfig.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glib.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glib.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <glib.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glib.h" 3
# 1 "/usr/include/glib-2.0/glib.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_LIB_H__
#define __G_LIB_H__
#define __GLIB_H_INSIDE__
#if 0 /* expanded by -frewrite-includes */
#include <glib/galloca.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/galloca.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_ALLOCA_H__
#define __G_ALLOCA_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/galloca.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/galloca.h" 3
# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_TYPES_H__
#define __G_TYPES_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gtypes.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glibconfig.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gtypes.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <glibconfig.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 3
# 1 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 1 3
/* glibconfig.h
*
* This is a generated file. Please modify 'configure.ac'
*/
#ifndef __GLIBCONFIG_H__
#define __GLIBCONFIG_H__
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmacros.h>
#endif /* expanded by -frewrite-includes */
# 9 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
# 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
/* This file must not include any other glib header file and must thus
* not refer to variables from glibconfig.h
*/
#ifndef __G_MACROS_H__
#define __G_MACROS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 35 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* We include stddef.h to get the system's definition of NULL
*/
#if 0 /* expanded by -frewrite-includes */
#include <stddef.h>
#endif /* expanded by -frewrite-includes */
# 38 "/usr/include/glib-2.0/glib/gmacros.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stddef.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 1 3
/*===---- stddef.h - Basic type definitions --------------------------------===
*
* Copyright (c) 2008 Eli Friedman
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \
defined(__need_size_t) || defined(__need_wchar_t) || \
defined(__need_NULL) || defined(__need_wint_t)
#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
!defined(__need_wchar_t) && !defined(__need_NULL) && \
!defined(__need_wint_t)
/* Always define miscellaneous pieces when modules are available. */
#if !__has_feature(modules)
#define __STDDEF_H
#endif
# 37 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define __need_ptrdiff_t
#define __need_size_t
#define __need_wchar_t
#define __need_NULL
#define __need_STDDEF_H_misc
/* __need_wint_t is intentionally not defined here. */
#endif
# 44 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_ptrdiff_t)
#if !defined(_PTRDIFF_T) || __has_feature(modules)
/* Always define ptrdiff_t when modules are available. */
#if !__has_feature(modules)
#define _PTRDIFF_T
#endif
# 51 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __PTRDIFF_TYPE__ ptrdiff_t;
#endif
# 53 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_ptrdiff_t
#endif /* defined(__need_ptrdiff_t) */
# 55 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_size_t)
#if !defined(_SIZE_T) || __has_feature(modules)
/* Always define size_t when modules are available. */
#if !__has_feature(modules)
#define _SIZE_T
#endif
# 62 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ size_t;
#endif
# 64 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_size_t
#endif /*defined(__need_size_t) */
# 66 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
* enabled. */
#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \
!defined(_RSIZE_T)) || __has_feature(modules)
/* Always define rsize_t when modules are available. */
#if !__has_feature(modules)
#define _RSIZE_T
#endif
# 76 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ rsize_t;
#endif
# 78 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif /* defined(__need_STDDEF_H_misc) */
# 79 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_wchar_t)
#ifndef __cplusplus
/* Always define wchar_t when modules are available. */
#if !defined(_WCHAR_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WCHAR_T
#if defined(_MSC_EXTENSIONS)
#define _WCHAR_T_DEFINED
#endif
# 89 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 90 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WCHAR_TYPE__ wchar_t;
#endif
# 92 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 93 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wchar_t
#endif /* defined(__need_wchar_t) */
# 95 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_NULL)
#undef NULL
#ifdef __cplusplus
# if !defined(__MINGW32__) && !defined(_MSC_VER)
# define NULL __null
# else
# 102 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL 0
# endif
# 104 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#else
# 105 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL ((void*)0)
#endif
# 107 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#ifdef __cplusplus
#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
namespace std { typedef decltype(nullptr) nullptr_t; }
using ::std::nullptr_t;
#endif
# 112 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 113 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_NULL
#endif /* defined(__need_NULL) */
# 115 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
#if 0 /* expanded by -frewrite-includes */
#include "__stddef_max_align_t.h"
#endif /* expanded by -frewrite-includes */
# 118 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__stddef_max_align_t.h" 1 3
/*===---- __stddef_max_align_t.h - Definition of max_align_t for modules ---===
*
* Copyright (c) 2014 Chandler Carruth
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#ifndef __CLANG_MAX_ALIGN_T_DEFINED
#define __CLANG_MAX_ALIGN_T_DEFINED
#if defined(_MSC_VER)
typedef double max_align_t;
#elif defined(__APPLE__)
# 32 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__stddef_max_align_t.h" 3
typedef long double max_align_t;
#else
# 34 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__stddef_max_align_t.h" 3
// Define 'max_align_t' to match the GCC definition.
typedef struct {
long long __clang_max_align_nonce1
__attribute__((__aligned__(__alignof__(long long))));
long double __clang_max_align_nonce2
__attribute__((__aligned__(__alignof__(long double))));
} max_align_t;
#endif
# 42 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__stddef_max_align_t.h" 3
#endif
# 44 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/__stddef_max_align_t.h" 3
# 119 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 2 3
#endif
# 120 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define offsetof(t, d) __builtin_offsetof(t, d)
#undef __need_STDDEF_H_misc
#endif /* defined(__need_STDDEF_H_misc) */
# 123 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
#if defined(__need_wint_t)
/* Always define wint_t when modules are available. */
#if !defined(_WINT_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WINT_T
#endif
# 132 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WINT_TYPE__ wint_t;
#endif
# 134 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wint_t
#endif /* __need_wint_t */
# 136 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 138 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 2 3
#pragma GCC visibility pop
# 39 "/usr/include/glib-2.0/glib/gmacros.h" 2 3
#define G_GNUC_CHECK_VERSION(major, minor) \
(defined(__GNUC__) && \
((__GNUC__ > (major)) || \
((__GNUC__ == (major)) && \
(__GNUC_MINOR__ >= (minor)))))
/* Here we provide G_GNUC_EXTENSION as an alias for __extension__,
* where this is valid. This allows for warningless compilation of
* "long long" types even in the presence of '-ansi -pedantic'.
*/
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
#define G_GNUC_EXTENSION __extension__
#else
# 53 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_EXTENSION
#endif
# 55 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Every compiler that we target supports inlining, but some of them may
* complain about it if we don't say "__inline". If we have C99, or if
* we are using C++, then we can use "inline" directly. Unfortunately
* Visual Studio does not support __STDC_VERSION__, so we need to check
* whether we are on Visual Studio 2013 or earlier to see that we need to
* say "__inline" in C mode.
* Otherwise, we say "__inline" to avoid the warning.
*/
#define G_CAN_INLINE
#ifndef __cplusplus
# ifdef _MSC_VER
# if (_MSC_VER < 1900)
# define G_INLINE_DEFINE_NEEDED
# endif
# 70 "/usr/include/glib-2.0/glib/gmacros.h" 3
# elif !defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199900)
# 71 "/usr/include/glib-2.0/glib/gmacros.h" 3
# define G_INLINE_DEFINE_NEEDED
# endif
# 73 "/usr/include/glib-2.0/glib/gmacros.h" 3
#endif
# 74 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifdef G_INLINE_DEFINE_NEEDED
# undef inline
# define inline __inline
#endif
# 79 "/usr/include/glib-2.0/glib/gmacros.h" 3
#undef G_INLINE_DEFINE_NEEDED
/* For historical reasons we need to continue to support those who
* define G_IMPLEMENT_INLINES to mean "don't implement this here".
*/
#ifdef G_IMPLEMENT_INLINES
# define G_INLINE_FUNC extern
# undef G_CAN_INLINE
#else
# 89 "/usr/include/glib-2.0/glib/gmacros.h" 3
# define G_INLINE_FUNC static inline
#endif /* G_IMPLEMENT_INLINES */
# 91 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Provide macros to feature the GCC function attribute.
*/
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
#define G_GNUC_PURE __attribute__((__pure__))
#define G_GNUC_MALLOC __attribute__((__malloc__))
#else
# 98 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_PURE
#define G_GNUC_MALLOC
#endif
# 101 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ >= 4
#define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__))
#else
# 105 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_NULL_TERMINATED
#endif
# 107 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Clang feature detection: http://clang.llvm.org/docs/LanguageExtensions.html */
#ifndef __has_attribute
#define __has_attribute(x) 0
#endif
# 112 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifndef __has_feature
#define __has_feature(x) 0
#endif
# 116 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifndef __has_builtin
#define __has_builtin(x) 0
#endif
# 120 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if (!defined(__clang__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) || \
(defined(__clang__) && __has_attribute(__alloc_size__))
#define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x)))
#define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y)))
#else
# 126 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_ALLOC_SIZE(x)
#define G_GNUC_ALLOC_SIZE2(x,y)
#endif
# 129 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
__attribute__((__format__ (__printf__, format_idx, arg_idx)))
#define G_GNUC_SCANF( format_idx, arg_idx ) \
__attribute__((__format__ (__scanf__, format_idx, arg_idx)))
#define G_GNUC_FORMAT( arg_idx ) \
__attribute__((__format_arg__ (arg_idx)))
#define G_GNUC_NORETURN \
__attribute__((__noreturn__))
#define G_GNUC_CONST \
__attribute__((__const__))
#define G_GNUC_UNUSED \
__attribute__((__unused__))
#define G_GNUC_NO_INSTRUMENT \
__attribute__((__no_instrument_function__))
#else /* !__GNUC__ */
# 146 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_PRINTF( format_idx, arg_idx )
#define G_GNUC_SCANF( format_idx, arg_idx )
#define G_GNUC_FORMAT( arg_idx )
#define G_GNUC_NORETURN
#define G_GNUC_CONST
#define G_GNUC_UNUSED
#define G_GNUC_NO_INSTRUMENT
#endif /* !__GNUC__ */
# 154 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
#define G_GNUC_DEPRECATED __attribute__((__deprecated__))
#else
# 158 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_DEPRECATED
#endif /* __GNUC__ */
# 160 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
#define G_GNUC_DEPRECATED_FOR(f) \
__attribute__((deprecated("Use " #f " instead")))
#else
# 165 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_DEPRECATED_FOR(f) G_GNUC_DEPRECATED
#endif /* __GNUC__ */
# 167 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
#define G_GNUC_END_IGNORE_DEPRECATIONS \
_Pragma ("GCC diagnostic pop")
#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
# 175 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
__pragma (warning (push)) \
__pragma (warning (disable : 4996))
#define G_GNUC_END_IGNORE_DEPRECATIONS \
__pragma (warning (pop))
#elif defined (__clang__)
# 181 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
#define G_GNUC_END_IGNORE_DEPRECATIONS \
_Pragma("clang diagnostic pop")
#else
# 187 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#define G_GNUC_END_IGNORE_DEPRECATIONS
#endif
# 190 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
#define G_GNUC_MAY_ALIAS __attribute__((may_alias))
#else
# 194 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_MAY_ALIAS
#endif
# 196 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#define G_GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
# 200 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_WARN_UNUSED_RESULT
#endif /* __GNUC__ */
# 202 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifndef G_DISABLE_DEPRECATED
/* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
* macros, so we can refer to them as strings unconditionally.
* usage not-recommended since gcc-3.0
*/
#if defined (__GNUC__) && (__GNUC__ < 3)
#define G_GNUC_FUNCTION __FUNCTION__
#define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
#else /* !__GNUC__ */
# 212 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_GNUC_FUNCTION ""
#define G_GNUC_PRETTY_FUNCTION ""
#endif /* !__GNUC__ */
# 215 "/usr/include/glib-2.0/glib/gmacros.h" 3
#endif /* !G_DISABLE_DEPRECATED */
# 216 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __has_feature(attribute_analyzer_noreturn) && defined(__clang_analyzer__)
#define G_ANALYZER_ANALYZING 1
#define G_ANALYZER_NORETURN __attribute__((analyzer_noreturn))
#else
# 221 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_ANALYZER_ANALYZING 0
#define G_ANALYZER_NORETURN
#endif
# 224 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string)
#define G_STRINGIFY_ARG(contents) #contents
#ifndef __GI_SCANNER__ /* The static assert macro really confuses the introspection parser */
#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2
#define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2)
#ifdef __COUNTER__
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED
#else
# 234 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __LINE__)[(expr) ? 1 : -1] G_GNUC_UNUSED
#endif
# 236 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STATIC_ASSERT_EXPR(expr) ((void) sizeof (char[(expr) ? 1 : -1]))
#endif
# 238 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Provide a string identifying the current code position */
#if defined(__GNUC__) && (__GNUC__ < 3) && !defined(__cplusplus)
#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()"
#else
# 243 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__)
#endif
# 245 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Provide a string identifying the current function, non-concatenatable */
#if defined (__GNUC__) && defined (__cplusplus)
#define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__))
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
# 250 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRFUNC ((const char*) (__func__))
#elif defined (__GNUC__) || (defined(_MSC_VER) && (_MSC_VER > 1300))
# 252 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRFUNC ((const char*) (__FUNCTION__))
#else
# 254 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRFUNC ((const char*) ("???"))
#endif
# 256 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Guard C code in headers, while including them from C++ */
#ifdef __cplusplus
#define G_BEGIN_DECLS extern "C" {
#define G_END_DECLS }
#else
# 262 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_BEGIN_DECLS
#define G_END_DECLS
#endif
# 265 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Provide definitions for some commonly used macros.
* Some of them are only provided if they haven't already
* been defined. It is assumed that if they are already
* defined then the current definition is correct.
*/
#ifndef NULL
# ifdef __cplusplus
# define NULL (0L)
# else /* !__cplusplus */
# 275 "/usr/include/glib-2.0/glib/gmacros.h" 3
# define NULL ((void*) 0)
# endif /* !__cplusplus */
# 277 "/usr/include/glib-2.0/glib/gmacros.h" 3
#endif
# 278 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifndef FALSE
#define FALSE (0)
#endif
# 282 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifndef TRUE
#define TRUE (!FALSE)
#endif
# 286 "/usr/include/glib-2.0/glib/gmacros.h" 3
#undef MAX
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
#undef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#undef ABS
#define ABS(a) (((a) < 0) ? -(a) : (a))
#undef CLAMP
#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
/* Count the number of elements in an array. The array must be defined
* as such; using this with a dynamically allocated array will give
* incorrect results.
*/
#define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0]))
/* Macros by analogy to GINT_TO_POINTER, GPOINTER_TO_INT
*/
#define GPOINTER_TO_SIZE(p) ((gsize) (p))
#define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s))
/* Provide convenience macros for handling structure
* fields through their offsets.
*/
#if (defined(__GNUC__) && __GNUC__ >= 4) || defined (_MSC_VER)
#define G_STRUCT_OFFSET(struct_type, member) \
((glong) offsetof (struct_type, member))
#else
# 318 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRUCT_OFFSET(struct_type, member) \
((glong) ((guint8*) &((struct_type*) 0)->member))
#endif
# 321 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \
((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset)))
#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \
(*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset)))
/* Provide simple macro statement wrappers:
* G_STMT_START { statements; } G_STMT_END;
* This can be used as a single statement, like:
* if (x) G_STMT_START { ... } G_STMT_END; else ...
* This intentionally does not use compiler extensions like GCC's '({...})' to
* avoid portability issue or side effects when compiled with different compilers.
* MSVC complains about "while(0)": C4127: "Conditional expression is constant",
* so we use __pragma to avoid the warning since the use here is intentional.
*/
#if !(defined (G_STMT_START) && defined (G_STMT_END))
#define G_STMT_START do
#if defined (_MSC_VER) && (_MSC_VER >= 1500)
#define G_STMT_END \
__pragma(warning(push)) \
__pragma(warning(disable:4127)) \
while(0) \
__pragma(warning(pop))
#else
# 345 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_STMT_END while (0)
#endif
# 347 "/usr/include/glib-2.0/glib/gmacros.h" 3
#endif
# 348 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* Deprecated -- do not use. */
#ifndef G_DISABLE_DEPRECATED
#ifdef G_DISABLE_CONST_RETURNS
#define G_CONST_RETURN
#else
# 354 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_CONST_RETURN const
#endif
# 356 "/usr/include/glib-2.0/glib/gmacros.h" 3
#endif
# 357 "/usr/include/glib-2.0/glib/gmacros.h" 3
/*
* The G_LIKELY and G_UNLIKELY macros let the programmer give hints to
* the compiler about the expected result of an expression. Some compilers
* can use this information for optimizations.
*
* The _G_BOOLEAN_EXPR macro is intended to trigger a gcc warning when
* putting assignments in g_return_if_fail ().
*/
#if defined(__GNUC__) && (__GNUC__ > 2) && defined(__OPTIMIZE__)
#define _G_BOOLEAN_EXPR(expr) \
G_GNUC_EXTENSION ({ \
int _g_boolean_var_; \
if (expr) \
_g_boolean_var_ = 1; \
else \
_g_boolean_var_ = 0; \
_g_boolean_var_; \
})
#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR((expr)), 1))
#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR((expr)), 0))
#else
# 379 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_LIKELY(expr) (expr)
#define G_UNLIKELY(expr) (expr)
#endif
# 382 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
#define G_DEPRECATED __attribute__((__deprecated__))
#elif defined(_MSC_VER) && (_MSC_VER >= 1300)
# 386 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_DEPRECATED __declspec(deprecated)
#else
# 388 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_DEPRECATED
#endif
# 390 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
#define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
# 394 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead"))
#else
# 396 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_DEPRECATED_FOR(f) G_DEPRECATED
#endif
# 398 "/usr/include/glib-2.0/glib/gmacros.h" 3
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
#define G_UNAVAILABLE(maj,min) __attribute__((deprecated("Not available before " #maj "." #min)))
#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320)
# 402 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_UNAVAILABLE(maj,min) __declspec(deprecated("is not available before " #maj "." #min))
#else
# 404 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define G_UNAVAILABLE(maj,min) G_DEPRECATED
#endif
# 406 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifndef _GLIB_EXTERN
#define _GLIB_EXTERN extern
#endif
# 410 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* These macros are used to mark deprecated functions in GLib headers,
* and thus have to be exposed in installed headers. But please
* do *not* use them in other projects. Instead, use G_DEPRECATED
* or define your own wrappers around it.
*/
#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS
#define GLIB_DEPRECATED _GLIB_EXTERN
#define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN
#define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN
#else
# 422 "/usr/include/glib-2.0/glib/gmacros.h" 3
#define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN
#define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN
#define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN
#endif
# 426 "/usr/include/glib-2.0/glib/gmacros.h" 3
#ifdef __GNUC__
/* these macros are private */
#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName
#define _GLIB_AUTOPTR_TYPENAME(TypeName) TypeName##_autoptr
#define _GLIB_AUTO_FUNC_NAME(TypeName) glib_auto_cleanup_##TypeName
#define _GLIB_CLEANUP(func) __attribute__((cleanup(func)))
#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) \
typedef ModuleObjName *_GLIB_AUTOPTR_TYPENAME(ModuleObjName); \
static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) { \
_GLIB_AUTOPTR_FUNC_NAME(ParentName) ((ParentName **) _ptr); } \
/* these macros are API */
#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) \
typedef TypeName *_GLIB_AUTOPTR_TYPENAME(TypeName); \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
static inline void _GLIB_AUTOPTR_FUNC_NAME(TypeName) (TypeName **_ptr) { if (*_ptr) (func) (*_ptr); } \
G_GNUC_END_IGNORE_DEPRECATIONS
#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
static inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { (func) (_ptr); } \
G_GNUC_END_IGNORE_DEPRECATIONS
#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none) \
G_GNUC_BEGIN_IGNORE_DEPRECATIONS \
static inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { if (*_ptr != none) (func) (*_ptr); } \
G_GNUC_END_IGNORE_DEPRECATIONS
#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName)
#define g_auto(TypeName) _GLIB_CLEANUP(_GLIB_AUTO_FUNC_NAME(TypeName)) TypeName
#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree)
#else /* not GNU C */
# 459 "/usr/include/glib-2.0/glib/gmacros.h" 3
/* this (dummy) macro is private */
#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName)
/* these (dummy) macros are API */
#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func)
#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func)
#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none)
/* no declaration of g_auto() or g_autoptr() here */
#endif
# 469 "/usr/include/glib-2.0/glib/gmacros.h" 3
#endif /* __G_MACROS_H__ */
# 471 "/usr/include/glib-2.0/glib/gmacros.h" 3
# 10 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <limits.h>
#endif /* expanded by -frewrite-includes */
# 11 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/limits.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/limits.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <limits.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/limits.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 1 3
/*===---- limits.h - Standard header for integer sizes --------------------===*\
*
* Copyright (c) 2009 Chris Lattner
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
\*===----------------------------------------------------------------------===*/
#ifndef __CLANG_LIMITS_H
#define __CLANG_LIMITS_H
/* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
Avert this #include_next madness. */
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
#define _GCC_LIMITS_H_
#endif
# 33 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
/* System headers include a number of constants from POSIX in <limits.h>.
Include it if we're hosted. */
#if __STDC_HOSTED__ && (1)/*__has_include_next(<limits.h>)*/
#if 0 /* expanded by -frewrite-includes */
#include_next <limits.h>
#endif /* expanded by -frewrite-includes */
# 37 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
# 1 "/usr/include/limits.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
*/
#ifndef _LIBC_LIMITS_H_
#define _LIBC_LIMITS_H_ 1
#if 0 /* expanded by -frewrite-includes */
#include <features.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/limits.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <features.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
# 1 "/usr/include/features.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _FEATURES_H
#define _FEATURES_H 1
/* These are defined by the user (or the compiler)
to specify the desired environment:
__STRICT_ANSI__ ISO Standard C.
_ISOC99_SOURCE Extensions to ISO C89 from ISO C99.
_ISOC11_SOURCE Extensions to ISO C99 from ISO C11.
_POSIX_SOURCE IEEE Std 1003.1.
_POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
if >=199309L, add IEEE Std 1003.1b-1993;
if >=199506L, add IEEE Std 1003.1c-1995;
if >=200112L, all of IEEE 1003.1-2004
if >=200809L, all of IEEE 1003.1-2008
_XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if
Single Unix conformance is wanted, to 600 for the
sixth revision, to 700 for the seventh revision.
_XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
_LARGEFILE_SOURCE Some more functions for correct standard I/O.
_LARGEFILE64_SOURCE Additional functionality from LFS for large files.
_FILE_OFFSET_BITS=N Select default filesystem interface.
_ATFILE_SOURCE Additional *at interfaces.
_GNU_SOURCE All of the above, plus GNU extensions.
_DEFAULT_SOURCE The default set of features (taking precedence over
__STRICT_ANSI__).
_REENTRANT Select additionally reentrant object.
_THREAD_SAFE Same as _REENTRANT, often used by other systems.
_FORTIFY_SOURCE If set to numeric value > 0 additional security
measures are defined, according to level.
The `-ansi' switch to the GNU C compiler, and standards conformance
options such as `-std=c99', define __STRICT_ANSI__. If none of
these are defined, or if _DEFAULT_SOURCE is defined, the default is
to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
200809L, as well as enabling miscellaneous functions from BSD and
SVID. If more than one of these are defined, they accumulate. For
example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
give you ISO C, 1003.1, and 1003.2, but nothing else.
These are defined by this file and are used by the
header files to decide what to declare or define:
__USE_ISOC11 Define ISO C11 things.
__USE_ISOC99 Define ISO C99 things.
__USE_ISOC95 Define ISO C90 AMD1 (C95) things.
__USE_POSIX Define IEEE Std 1003.1 things.
__USE_POSIX2 Define IEEE Std 1003.2 things.
__USE_POSIX199309 Define IEEE Std 1003.1, and .1b things.
__USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things.
__USE_XOPEN Define XPG things.
__USE_XOPEN_EXTENDED Define X/Open Unix things.
__USE_UNIX98 Define Single Unix V2 things.
__USE_XOPEN2K Define XPG6 things.
__USE_XOPEN2KXSI Define XPG6 XSI things.
__USE_XOPEN2K8 Define XPG7 things.
__USE_XOPEN2K8XSI Define XPG7 XSI things.
__USE_LARGEFILE Define correct standard I/O things.
__USE_LARGEFILE64 Define LFS things with separate names.
__USE_FILE_OFFSET64 Define 64bit interface as default.
__USE_MISC Define things from 4.3BSD or System V Unix.
__USE_ATFILE Define *at interfaces and AT_* constants for them.
__USE_GNU Define GNU extensions.
__USE_REENTRANT Define reentrant/thread-safe *_r functions.
__USE_FORTIFY_LEVEL Additional security measures used, according to level.
The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
defined by this file unconditionally. `__GNU_LIBRARY__' is provided
only for compatibility. All new code should use the other symbols
to test for features.
All macros listed above as possibly being defined by this file are
explicitly undefined if they are not explicitly defined.
Feature-test macros that are not defined by the user or compiler
but are implied by the other feature-test macros defined (or by the
lack of any definitions) are defined by the file. */
/* Undefine everything, so we get a clean slate. */
#undef __USE_ISOC11
#undef __USE_ISOC99
#undef __USE_ISOC95
#undef __USE_ISOCXX11
#undef __USE_POSIX
#undef __USE_POSIX2
#undef __USE_POSIX199309
#undef __USE_POSIX199506
#undef __USE_XOPEN
#undef __USE_XOPEN_EXTENDED
#undef __USE_UNIX98
#undef __USE_XOPEN2K
#undef __USE_XOPEN2KXSI
#undef __USE_XOPEN2K8
#undef __USE_XOPEN2K8XSI
#undef __USE_LARGEFILE
#undef __USE_LARGEFILE64
#undef __USE_FILE_OFFSET64
#undef __USE_MISC
#undef __USE_ATFILE
#undef __USE_GNU
#undef __USE_REENTRANT
#undef __USE_FORTIFY_LEVEL
#undef __KERNEL_STRICT_NAMES
/* Suppress kernel-name space pollution unless user expressedly asks
for it. */
#ifndef _LOOSE_KERNEL_NAMES
# define __KERNEL_STRICT_NAMES
#endif
# 127 "/usr/include/features.h" 3 4
/* Convenience macros to test the versions of glibc and gcc.
Use them like this:
#if __GNUC_PREREQ (2,8)
... code requiring gcc 2.8 or later ...
#endif
Note - they won't work for gcc1 or glibc1, since the _MINOR macros
were not defined then. */
#if defined __GNUC__ && defined __GNUC_MINOR__
# define __GNUC_PREREQ(maj, min) \
((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
#else
# 139 "/usr/include/features.h" 3 4
# define __GNUC_PREREQ(maj, min) 0
#endif
# 141 "/usr/include/features.h" 3 4
/* _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
_DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not
issue a warning; the expectation is that the source is being
transitioned to use the new macro. */
#if (defined _BSD_SOURCE || defined _SVID_SOURCE) \
&& !defined _DEFAULT_SOURCE
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
# undef _DEFAULT_SOURCE
# define _DEFAULT_SOURCE 1
#endif
# 152 "/usr/include/features.h" 3 4
/* If _GNU_SOURCE was defined by the user, turn on all the other features. */
#ifdef _GNU_SOURCE
# undef _ISOC95_SOURCE
# define _ISOC95_SOURCE 1
# undef _ISOC99_SOURCE
# define _ISOC99_SOURCE 1
# undef _ISOC11_SOURCE
# define _ISOC11_SOURCE 1
# undef _POSIX_SOURCE
# define _POSIX_SOURCE 1
# undef _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 200809L
# undef _XOPEN_SOURCE
# define _XOPEN_SOURCE 700
# undef _XOPEN_SOURCE_EXTENDED
# define _XOPEN_SOURCE_EXTENDED 1
# undef _LARGEFILE64_SOURCE
# define _LARGEFILE64_SOURCE 1
# undef _DEFAULT_SOURCE
# define _DEFAULT_SOURCE 1
# undef _ATFILE_SOURCE
# define _ATFILE_SOURCE 1
#endif
# 176 "/usr/include/features.h" 3 4
/* If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
define _DEFAULT_SOURCE. */
#if (defined _DEFAULT_SOURCE \
|| (!defined __STRICT_ANSI__ \
&& !defined _ISOC99_SOURCE \
&& !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \
&& !defined _XOPEN_SOURCE))
# undef _DEFAULT_SOURCE
# define _DEFAULT_SOURCE 1
#endif
# 187 "/usr/include/features.h" 3 4
/* This is to enable the ISO C11 extension. */
#if (defined _ISOC11_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L))
# define __USE_ISOC11 1
#endif
# 193 "/usr/include/features.h" 3 4
/* This is to enable the ISO C99 extension. */
#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
# define __USE_ISOC99 1
#endif
# 199 "/usr/include/features.h" 3 4
/* This is to enable the ISO C90 Amendment 1:1995 extension. */
#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \
|| (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L))
# define __USE_ISOC95 1
#endif
# 205 "/usr/include/features.h" 3 4
/* This is to enable compatibility for ISO C++11.
So far g++ does not provide a macro. Check the temporary macro for
now, too. */
#if ((defined __cplusplus && __cplusplus >= 201103L) \
|| defined __GXX_EXPERIMENTAL_CXX0X__)
# define __USE_ISOCXX11 1
#endif
# 214 "/usr/include/features.h" 3 4
/* If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
is defined, use POSIX.1-2008 (or another version depending on
_XOPEN_SOURCE). */
#ifdef _DEFAULT_SOURCE
# if !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE
# define __USE_POSIX_IMPLICITLY 1
# endif
# 222 "/usr/include/features.h" 3 4
# undef _POSIX_SOURCE
# define _POSIX_SOURCE 1
# undef _POSIX_C_SOURCE
# define _POSIX_C_SOURCE 200809L
#endif
# 227 "/usr/include/features.h" 3 4
#if ((!defined __STRICT_ANSI__ \
|| (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)) \
&& !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
# define _POSIX_SOURCE 1
# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
# define _POSIX_C_SOURCE 2
# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600
# 234 "/usr/include/features.h" 3 4
# define _POSIX_C_SOURCE 199506L
# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700
# 236 "/usr/include/features.h" 3 4
# define _POSIX_C_SOURCE 200112L
# else
# 238 "/usr/include/features.h" 3 4
# define _POSIX_C_SOURCE 200809L
# endif
# 240 "/usr/include/features.h" 3 4
# define __USE_POSIX_IMPLICITLY 1
#endif
# 242 "/usr/include/features.h" 3 4
#if (defined _POSIX_SOURCE \
|| (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 1) \
|| defined _XOPEN_SOURCE)
# define __USE_POSIX 1
#endif
# 248 "/usr/include/features.h" 3 4
#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
# define __USE_POSIX2 1
#endif
# 252 "/usr/include/features.h" 3 4
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199309L
# define __USE_POSIX199309 1
#endif
# 256 "/usr/include/features.h" 3 4
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 199506L
# define __USE_POSIX199506 1
#endif
# 260 "/usr/include/features.h" 3 4
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200112L
# define __USE_XOPEN2K 1
# undef __USE_ISOC95
# define __USE_ISOC95 1
# undef __USE_ISOC99
# define __USE_ISOC99 1
#endif
# 268 "/usr/include/features.h" 3 4
#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L
# define __USE_XOPEN2K8 1
# undef _ATFILE_SOURCE
# define _ATFILE_SOURCE 1
#endif
# 274 "/usr/include/features.h" 3 4
#ifdef _XOPEN_SOURCE
# define __USE_XOPEN 1
# if (_XOPEN_SOURCE - 0) >= 500
# define __USE_XOPEN_EXTENDED 1
# define __USE_UNIX98 1
# undef _LARGEFILE_SOURCE
# define _LARGEFILE_SOURCE 1
# if (_XOPEN_SOURCE - 0) >= 600
# if (_XOPEN_SOURCE - 0) >= 700
# define __USE_XOPEN2K8 1
# define __USE_XOPEN2K8XSI 1
# endif
# 287 "/usr/include/features.h" 3 4
# define __USE_XOPEN2K 1
# define __USE_XOPEN2KXSI 1
# undef __USE_ISOC95
# define __USE_ISOC95 1
# undef __USE_ISOC99
# define __USE_ISOC99 1
# endif
# 294 "/usr/include/features.h" 3 4
# else
# 295 "/usr/include/features.h" 3 4
# ifdef _XOPEN_SOURCE_EXTENDED
# define __USE_XOPEN_EXTENDED 1
# endif
# 298 "/usr/include/features.h" 3 4
# endif
# 299 "/usr/include/features.h" 3 4
#endif
# 300 "/usr/include/features.h" 3 4
#ifdef _LARGEFILE_SOURCE
# define __USE_LARGEFILE 1
#endif
# 304 "/usr/include/features.h" 3 4
#ifdef _LARGEFILE64_SOURCE
# define __USE_LARGEFILE64 1
#endif
# 308 "/usr/include/features.h" 3 4
#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
# define __USE_FILE_OFFSET64 1
#endif
# 312 "/usr/include/features.h" 3 4
#if defined _DEFAULT_SOURCE
# define __USE_MISC 1
#endif
# 316 "/usr/include/features.h" 3 4
#ifdef _ATFILE_SOURCE
# define __USE_ATFILE 1
#endif
# 320 "/usr/include/features.h" 3 4
#ifdef _GNU_SOURCE
# define __USE_GNU 1
#endif
# 324 "/usr/include/features.h" 3 4
#if defined _REENTRANT || defined _THREAD_SAFE
# define __USE_REENTRANT 1
#endif
# 328 "/usr/include/features.h" 3 4
#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
&& __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# if _FORTIFY_SOURCE > 1
# define __USE_FORTIFY_LEVEL 2
# else
# 334 "/usr/include/features.h" 3 4
# define __USE_FORTIFY_LEVEL 1
# endif
# 336 "/usr/include/features.h" 3 4
#else
# 337 "/usr/include/features.h" 3 4
# define __USE_FORTIFY_LEVEL 0
#endif
# 339 "/usr/include/features.h" 3 4
/* Get definitions of __STDC_* predefined macros, if the compiler has
not preincluded this header automatically. */
#if 0 /* expanded by -frewrite-includes */
#include <stdc-predef.h>
#endif /* expanded by -frewrite-includes */
# 342 "/usr/include/features.h" 3 4
# 1 "/usr/include/stdc-predef.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _STDC_PREDEF_H
#define _STDC_PREDEF_H 1
/* This header is separate from features.h so that the compiler can
include it implicitly at the start of every compilation. It must
not itself include <features.h> or any other header that includes
<features.h> because the implicit include comes before any feature
test macros that may be defined in a source file before it first
explicitly includes a system header. GCC knows the name of this
header in order to preinclude it. */
/* glibc's intent is to support the IEC 559 math functionality, real
and complex. If the GCC (4.9 and later) predefined macros
specifying compiler intent are available, use them to determine
whether the overall intent is to support these features; otherwise,
presume an older compiler has intent to support these features and
define these macros by default. */
#ifdef __GCC_IEC_559
# if __GCC_IEC_559 > 0
# define __STDC_IEC_559__ 1
# endif
# 40 "/usr/include/stdc-predef.h" 3 4
#else
# 41 "/usr/include/stdc-predef.h" 3 4
# define __STDC_IEC_559__ 1
#endif
# 43 "/usr/include/stdc-predef.h" 3 4
#ifdef __GCC_IEC_559_COMPLEX
# if __GCC_IEC_559_COMPLEX > 0
# define __STDC_IEC_559_COMPLEX__ 1
# endif
# 48 "/usr/include/stdc-predef.h" 3 4
#else
# 49 "/usr/include/stdc-predef.h" 3 4
# define __STDC_IEC_559_COMPLEX__ 1
#endif
# 51 "/usr/include/stdc-predef.h" 3 4
/* wchar_t uses Unicode 8.0.0. Version 8.0 of the Unicode Standard is
synchronized with ISO/IEC 10646:2014, plus Amendment 1 (published
2015-05-15). */
#define __STDC_ISO_10646__ 201505L
/* We do not support C11 <threads.h>. */
#define __STDC_NO_THREADS__ 1
#endif
# 61 "/usr/include/stdc-predef.h" 3 4
# 343 "/usr/include/features.h" 2 3 4
/* This macro indicates that the installed library is the GNU C Library.
For historic reasons the value now is 6 and this will stay from now
on. The use of this variable is deprecated. Use __GLIBC__ and
__GLIBC_MINOR__ now (see below) when you want to test for a specific
GNU C library version and use the values in <gnu/lib-names.h> to get
the sonames of the shared libraries. */
#undef __GNU_LIBRARY__
#define __GNU_LIBRARY__ 6
/* Major and minor version number of the GNU C library package. Use
these macros to test for features in specific releases. */
#define __GLIBC__ 2
#define __GLIBC_MINOR__ 24
#define __GLIBC_PREREQ(maj, min) \
((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
/* This is here only because every header file already includes this one. */
#ifndef __ASSEMBLER__
# ifndef _SYS_CDEFS_H
#if 0 /* expanded by -frewrite-includes */
# include <sys/cdefs.h>
#endif /* expanded by -frewrite-includes */
# 364 "/usr/include/features.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/cdefs.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/cdefs.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <sys/cdefs.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/cdefs.h" 3
# 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4
/* Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SYS_CDEFS_H
#define _SYS_CDEFS_H 1
/* We are almost always included from features.h. */
#ifndef _FEATURES_H
#if 0 /* expanded by -frewrite-includes */
# include <features.h>
#endif /* expanded by -frewrite-includes */
# 23 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# 24 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 25 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* The GNU libc does not support any K&R compilers or the traditional mode
of ISO C compilers anymore. Check for some of the combinations not
anymore supported. */
#if defined __GNUC__ && !defined __STDC__
# error "You need a ISO C conforming compiler to use the glibc headers"
#endif
# 32 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Some user header file might have defined this before. */
#undef __P
#undef __PMT
#ifdef __GNUC__
/* All functions, except those with callbacks or those that
synchronize memory, are leaf functions. */
# if __GNUC_PREREQ (4, 6) && !defined _LIBC
# define __LEAF , __leaf__
# define __LEAF_ATTR __attribute__ ((__leaf__))
# else
# 45 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __LEAF
# define __LEAF_ATTR
# endif
# 48 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* GCC can always grok prototypes. For C++ programs we add throw()
to help it optimize the function calls. But this works only with
gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
as non-throwing using a function attribute since programs can use
the -fexceptions options for C code as well. */
# if !defined __cplusplus && __GNUC_PREREQ (3, 3)
# define __THROW __attribute__ ((__nothrow__ __LEAF))
# define __THROWNL __attribute__ ((__nothrow__))
# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
# else
# 59 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# if defined __cplusplus && __GNUC_PREREQ (2,8)
# define __THROW throw ()
# define __THROWNL throw ()
# define __NTH(fct) __LEAF_ATTR fct throw ()
# else
# 64 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __THROW
# define __THROWNL
# define __NTH(fct) fct
# endif
# 68 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# endif
# 69 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#else /* Not GCC. */
# 71 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __inline /* No inline functions. */
# define __THROW
# define __THROWNL
# define __NTH(fct) fct
#endif /* GCC. */
# 79 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* These two macros are not used in glibc anymore. They are kept here
only because some other projects expect the macros to be defined. */
#define __P(args) args
#define __PMT(args) args
/* For these things, GCC behaves the ANSI way normally,
and the non-ANSI way under -traditional. */
#define __CONCAT(x,y) x ## y
#define __STRING(x) #x
/* This is not a typedef so `const __ptr_t' does the right thing. */
#define __ptr_t void *
#define __long_double_t long double
/* C++ needs to know that types and declarations are C, not C++. */
#ifdef __cplusplus
# define __BEGIN_DECLS extern "C" {
# define __END_DECLS }
#else
# 101 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __BEGIN_DECLS
# define __END_DECLS
#endif
# 104 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* The standard library needs the functions from the ISO C90 standard
in the std namespace. At the same time we want to be safe for
future changes and we include the ISO C99 code in the non-standard
namespace __c99. The C++ wrapper header take case of adding the
definitions to the global namespace. */
#if defined __cplusplus && defined _GLIBCPP_USE_NAMESPACES
# define __BEGIN_NAMESPACE_STD namespace std {
# define __END_NAMESPACE_STD }
# define __USING_NAMESPACE_STD(name) using std::name;
# define __BEGIN_NAMESPACE_C99 namespace __c99 {
# define __END_NAMESPACE_C99 }
# define __USING_NAMESPACE_C99(name) using __c99::name;
#else
# 119 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* For compatibility we do not add the declarations into any
namespace. They will end up in the global namespace which is what
old code expects. */
# define __BEGIN_NAMESPACE_STD
# define __END_NAMESPACE_STD
# define __USING_NAMESPACE_STD(name)
# define __BEGIN_NAMESPACE_C99
# define __END_NAMESPACE_C99
# define __USING_NAMESPACE_C99(name)
#endif
# 129 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Fortify support. */
#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
#define __bos0(ptr) __builtin_object_size (ptr, 0)
#if __GNUC_PREREQ (4,3)
# define __warndecl(name, msg) \
extern void name (void) __attribute__((__warning__ (msg)))
# define __warnattr(msg) __attribute__((__warning__ (msg)))
# define __errordecl(name, msg) \
extern void name (void) __attribute__((__error__ (msg)))
#else
# 142 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __warndecl(name, msg) extern void name (void)
# define __warnattr(msg)
# define __errordecl(name, msg) extern void name (void)
#endif
# 146 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Support for flexible arrays. */
#if __GNUC_PREREQ (2,97)
/* GCC 2.97 supports C99 flexible array members. */
# define __flexarr []
#else
# 152 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# ifdef __GNUC__
# define __flexarr [0]
# else
# 155 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __flexarr []
# else
# 158 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Some other non-C99 compiler. Approximate with [1]. */
# define __flexarr [1]
# endif
# 161 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# endif
# 162 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 163 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* __asm__ ("xyz") is used throughout the headers to rename functions
at the assembly language level. This is wrapped by the __REDIRECT
macro, in order to support compilers that can do this some other
way. When compilers don't support asm-names at all, we have to do
preprocessor tricks instead (which don't have exactly the right
semantics, but it's the best we can do).
Example:
int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */
#if defined __GNUC__ && __GNUC__ >= 2
# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias))
# ifdef __cplusplus
# define __REDIRECT_NTH(name, proto, alias) \
name proto __THROW __asm__ (__ASMNAME (#alias))
# define __REDIRECT_NTHNL(name, proto, alias) \
name proto __THROWNL __asm__ (__ASMNAME (#alias))
# else
# 184 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __REDIRECT_NTH(name, proto, alias) \
name proto __asm__ (__ASMNAME (#alias)) __THROW
# define __REDIRECT_NTHNL(name, proto, alias) \
name proto __asm__ (__ASMNAME (#alias)) __THROWNL
# endif
# 189 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)
# define __ASMNAME2(prefix, cname) __STRING (prefix) cname
/*
#elif __SOME_OTHER_COMPILER__
# define __REDIRECT(name, proto, alias) name proto; \
_Pragma("let " #name " = " #alias)
*/
#endif
# 199 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* GCC has various useful declarations that can be made with the
`__attribute__' syntax. All of the ways we use this do fine if
they are omitted for compilers that don't understand it. */
#if !defined __GNUC__ || __GNUC__ < 2
# define __attribute__(xyz) /* Ignore */
#endif
# 206 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* At some point during the gcc 2.96 development the `malloc' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (2,96)
# define __attribute_malloc__ __attribute__ ((__malloc__))
#else
# 213 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_malloc__ /* Ignore */
#endif
# 215 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Tell the compiler which arguments to an allocation function
indicate the size of the allocation. */
#if __GNUC_PREREQ (4, 3)
# define __attribute_alloc_size__(params) \
__attribute__ ((__alloc_size__ params))
#else
# 222 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_alloc_size__(params) /* Ignore. */
#endif
# 224 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* At some point during the gcc 2.96 development the `pure' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (2,96)
# define __attribute_pure__ __attribute__ ((__pure__))
#else
# 231 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_pure__ /* Ignore */
#endif
# 233 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* This declaration tells the compiler that the value is constant. */
#if __GNUC_PREREQ (2,5)
# define __attribute_const__ __attribute__ ((__const__))
#else
# 238 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_const__ /* Ignore */
#endif
# 240 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* At some point during the gcc 3.1 development the `used' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings. */
#if __GNUC_PREREQ (3,1)
# define __attribute_used__ __attribute__ ((__used__))
# define __attribute_noinline__ __attribute__ ((__noinline__))
#else
# 248 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_used__ __attribute__ ((__unused__))
# define __attribute_noinline__ /* Ignore */
#endif
# 251 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* gcc allows marking deprecated functions. */
#if __GNUC_PREREQ (3,2)
# define __attribute_deprecated__ __attribute__ ((__deprecated__))
#else
# 256 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_deprecated__ /* Ignore */
#endif
# 258 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* At some point during the gcc 2.8 development the `format_arg' attribute
for functions was introduced. We don't want to use it unconditionally
(although this would be possible) since it generates warnings.
If several `format_arg' attributes are given for the same function, in
gcc-3.0 and older, all but the last one are ignored. In newer gccs,
all designated arguments are considered. */
#if __GNUC_PREREQ (2,8)
# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))
#else
# 268 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_format_arg__(x) /* Ignore */
#endif
# 270 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* At some point during the gcc 2.97 development the `strfmon' format
attribute for functions was introduced. We don't want to use it
unconditionally (although this would be possible) since it
generates warnings. */
#if __GNUC_PREREQ (2,97)
# define __attribute_format_strfmon__(a,b) \
__attribute__ ((__format__ (__strfmon__, a, b)))
#else
# 279 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_format_strfmon__(a,b) /* Ignore */
#endif
# 281 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* The nonull function attribute allows to mark pointer parameters which
must not be NULL. */
#if __GNUC_PREREQ (3,3)
# define __nonnull(params) __attribute__ ((__nonnull__ params))
#else
# 287 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __nonnull(params)
#endif
# 289 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* If fortification mode, we warn about unused results of certain
function calls which can lead to problems. */
#if __GNUC_PREREQ (3,4)
# define __attribute_warn_unused_result__ \
__attribute__ ((__warn_unused_result__))
# if __USE_FORTIFY_LEVEL > 0
# define __wur __attribute_warn_unused_result__
# endif
# 298 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#else
# 299 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_warn_unused_result__ /* empty */
#endif
# 301 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#ifndef __wur
# define __wur /* Ignore */
#endif
# 304 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Forces a function to be always inlined. */
#if __GNUC_PREREQ (3,2)
/* The Linux kernel defines __always_inline in stddef.h (283d7573), and
it conflicts with this definition. Therefore undefine it first to
allow either header to be included first. */
# undef __always_inline
# define __always_inline __inline __attribute__ ((__always_inline__))
#else
# 313 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# undef __always_inline
# define __always_inline __inline
#endif
# 316 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Associate error messages with the source location of the call site rather
than with the source location inside the function. */
#if __GNUC_PREREQ (4,3)
# define __attribute_artificial__ __attribute__ ((__artificial__))
#else
# 322 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __attribute_artificial__ /* Ignore */
#endif
# 324 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__
or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
older than 4.3 may define these macros and still not guarantee GNU inlining
semantics.
clang++ identifies itself as gcc-4.2, but has support for GNU inlining
semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and
__GNUC_GNU_INLINE__ macro definitions. */
#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \
|| (defined __clang__ && (defined __GNUC_STDC_INLINE__ \
|| defined __GNUC_GNU_INLINE__)))
# if defined __GNUC_STDC_INLINE__ || defined __cplusplus
# define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
# define __extern_always_inline \
extern __always_inline __attribute__ ((__gnu_inline__))
# else
# 342 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __extern_inline extern __inline
# define __extern_always_inline extern __always_inline
# endif
# 345 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 346 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#ifdef __extern_always_inline
# define __fortify_function __extern_always_inline __attribute_artificial__
#endif
# 350 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* GCC 4.3 and above allow passing all anonymous arguments of an
__extern_always_inline function to some other vararg function. */
#if __GNUC_PREREQ (4,3)
# define __va_arg_pack() __builtin_va_arg_pack ()
# define __va_arg_pack_len() __builtin_va_arg_pack_len ()
#endif
# 357 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* It is possible to compile containing GCC extensions even if GCC is
run in pedantic mode if the uses are carefully marked using the
`__extension__' keyword. But this is not generally available before
version 2.8. */
#if !__GNUC_PREREQ (2,8)
# define __extension__ /* Ignore */
#endif
# 365 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* __restrict is known in EGCS 1.2 and above. */
#if !__GNUC_PREREQ (2,92)
# define __restrict /* Ignore */
#endif
# 370 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
array_name[restrict]
GCC 3.1 supports this. */
#if __GNUC_PREREQ (3,1) && !defined __GNUG__
# define __restrict_arr __restrict
#else
# 377 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# ifdef __GNUC__
# define __restrict_arr /* Not supported in old GCC. */
# else
# 380 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
# define __restrict_arr restrict
# else
# 383 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
/* Some other non-C99 compiler. */
# define __restrict_arr /* Not supported. */
# endif
# 386 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# endif
# 387 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 388 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#if __GNUC__ >= 3
# define __glibc_unlikely(cond) __builtin_expect ((cond), 0)
# define __glibc_likely(cond) __builtin_expect ((cond), 1)
#else
# 393 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define __glibc_unlikely(cond) (cond)
# define __glibc_likely(cond) (cond)
#endif
# 396 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#if (!defined _Noreturn \
&& (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
&& !__GNUC_PREREQ (4,7))
# if __GNUC_PREREQ (2,8)
# define _Noreturn __attribute__ ((__noreturn__))
# else
# 403 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# define _Noreturn
# endif
# 405 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 406 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#if (!defined _Static_assert && !defined __cplusplus \
&& (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \
&& (!__GNUC_PREREQ (4, 6) || defined __STRICT_ANSI__))
# define _Static_assert(expr, diagnostic) \
extern int (*__Static_assert_function (void)) \
[!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })]
#endif
# 414 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <bits/wordsize.h>
#endif /* expanded by -frewrite-includes */
# 415 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
/* Determine the wordsize from the preprocessor defines. */
#if defined __x86_64__ && !defined __ILP32__
# define __WORDSIZE 64
#else
# 6 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# define __WORDSIZE 32
#endif
# 8 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
#ifdef __x86_64__
# define __WORDSIZE_TIME64_COMPAT32 1
/* Both x86-64 and x32 use the 64-bit system call interface. */
# define __SYSCALL_WORDSIZE 64
#endif
# 14 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# 416 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4
#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH
# define __LDBL_COMPAT 1
# ifdef __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias)
# define __LDBL_REDIR(name, proto) \
__LDBL_REDIR1 (name, proto, __nldbl_##name)
# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias)
# define __LDBL_REDIR_NTH(name, proto) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##name)
# define __LDBL_REDIR1_DECL(name, alias) \
extern __typeof (name) name __asm (__ASMNAME (#alias));
# define __LDBL_REDIR_DECL(name) \
extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name));
# define __REDIRECT_LDBL(name, proto, alias) \
__LDBL_REDIR1 (name, proto, __nldbl_##alias)
# define __REDIRECT_NTH_LDBL(name, proto, alias) \
__LDBL_REDIR1_NTH (name, proto, __nldbl_##alias)
# endif
# 435 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 436 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#if !defined __LDBL_COMPAT || !defined __REDIRECT
# define __LDBL_REDIR1(name, proto, alias) name proto
# define __LDBL_REDIR(name, proto) name proto
# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW
# define __LDBL_REDIR_NTH(name, proto) name proto __THROW
# define __LDBL_REDIR_DECL(name)
# ifdef __REDIRECT
# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias)
# define __REDIRECT_NTH_LDBL(name, proto, alias) \
__REDIRECT_NTH (name, proto, alias)
# endif
# 447 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif
# 448 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
#endif /* sys/cdefs.h */
# 450 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/cdefs.h" 2 3
#pragma GCC visibility pop
# 365 "/usr/include/features.h" 2 3 4
# endif
# 366 "/usr/include/features.h" 3 4
/* If we don't have __REDIRECT, prototypes will be missing if
__USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
# define __USE_LARGEFILE 1
# define __USE_LARGEFILE64 1
# endif
# 373 "/usr/include/features.h" 3 4
#endif /* !ASSEMBLER */
# 375 "/usr/include/features.h" 3 4
/* Decide whether we can define 'extern inline' functions in headers. */
#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
&& !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__ \
&& defined __extern_inline
# define __USE_EXTERN_INLINES 1
#endif
# 382 "/usr/include/features.h" 3 4
/* This is here only because every header file already includes this one.
Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
<gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
that will always return failure (and set errno to ENOSYS). */
#if 0 /* expanded by -frewrite-includes */
#include <gnu/stubs.h>
#endif /* expanded by -frewrite-includes */
# 388 "/usr/include/features.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4
/* This file is automatically generated.
This file selects the right generated file of `__stub_FUNCTION' macros
based on the architecture being compiled for. */
#if !defined __x86_64__
#if 0 /* expanded by -frewrite-includes */
# include <gnu/stubs-32.h>
#endif /* expanded by -frewrite-includes */
# 7 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
# 8 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
#endif
# 9 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
#if defined __x86_64__ && defined __LP64__
#if 0 /* expanded by -frewrite-includes */
# include <gnu/stubs-64.h>
#endif /* expanded by -frewrite-includes */
# 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4
/* This file is automatically generated.
It defines a symbol `__stub_FUNCTION' for each function
in the C library which is a stub, meaning it will fail
every time called, usually setting errno to ENOSYS. */
#ifdef _LIBC
# error Applications may not define the macro _LIBC
#endif
# 9 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 3 4
#define __stub___compat_bdflush
#define __stub_chflags
#define __stub_fattach
#define __stub_fchflags
#define __stub_fdetach
#define __stub_getmsg
#define __stub_gtty
#define __stub_lchmod
#define __stub_putmsg
#define __stub_revoke
#define __stub_setlogin
#define __stub_sigreturn
#define __stub_sstk
#define __stub_stty
# 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4
#endif
# 12 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
#if defined __x86_64__ && defined __ILP32__
#if 0 /* expanded by -frewrite-includes */
# include <gnu/stubs-x32.h>
#endif /* expanded by -frewrite-includes */
# 13 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
# 14 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
#endif
# 15 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4
# 389 "/usr/include/features.h" 2 3 4
#endif /* features.h */
# 392 "/usr/include/features.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 2 3
#pragma GCC visibility pop
# 26 "/usr/include/limits.h" 2 3 4
/* Maximum length of any multibyte character in any locale.
We define this value here since the gcc header does not define
the correct value. */
#define MB_LEN_MAX 16
/* If we are not using GNU CC we have to define all the symbols ourself.
Otherwise use gcc's definitions (see below). */
#if !defined __GNUC__ || __GNUC__ < 2
/* We only protect from multiple inclusion here, because all the other
#include's protect themselves, and in GCC 2 we may #include_next through
multiple copies of this file before we get to GCC's. */
# ifndef _LIMITS_H
# define _LIMITS_H 1
#if 0 /* expanded by -frewrite-includes */
#include <bits/wordsize.h>
#endif /* expanded by -frewrite-includes */
# 44 "/usr/include/limits.h" 3 4
# 45 "/usr/include/limits.h" 3 4
/* We don't have #include_next.
Define ANSI <limits.h> for standard 32-bit words. */
/* These assume 8-bit `char's, 16-bit `short int's,
and 32-bit `int's and `long int's. */
/* Number of bits in a `char'. */
# define CHAR_BIT 8
/* Minimum and maximum values a `signed char' can hold. */
# define SCHAR_MIN (-128)
# define SCHAR_MAX 127
/* Maximum value an `unsigned char' can hold. (Minimum is 0.) */
# define UCHAR_MAX 255
/* Minimum and maximum values a `char' can hold. */
# ifdef __CHAR_UNSIGNED__
# define CHAR_MIN 0
# define CHAR_MAX UCHAR_MAX
# else
# 67 "/usr/include/limits.h" 3 4
# define CHAR_MIN SCHAR_MIN
# define CHAR_MAX SCHAR_MAX
# endif
# 70 "/usr/include/limits.h" 3 4
/* Minimum and maximum values a `signed short int' can hold. */
# define SHRT_MIN (-32768)
# define SHRT_MAX 32767
/* Maximum value an `unsigned short int' can hold. (Minimum is 0.) */
# define USHRT_MAX 65535
/* Minimum and maximum values a `signed int' can hold. */
# define INT_MIN (-INT_MAX - 1)
# define INT_MAX 2147483647
/* Maximum value an `unsigned int' can hold. (Minimum is 0.) */
# define UINT_MAX 4294967295U
/* Minimum and maximum values a `signed long int' can hold. */
# if __WORDSIZE == 64
# define LONG_MAX 9223372036854775807L
# else
# 89 "/usr/include/limits.h" 3 4
# define LONG_MAX 2147483647L
# endif
# 91 "/usr/include/limits.h" 3 4
# define LONG_MIN (-LONG_MAX - 1L)
/* Maximum value an `unsigned long int' can hold. (Minimum is 0.) */
# if __WORDSIZE == 64
# define ULONG_MAX 18446744073709551615UL
# else
# 97 "/usr/include/limits.h" 3 4
# define ULONG_MAX 4294967295UL
# endif
# 99 "/usr/include/limits.h" 3 4
# ifdef __USE_ISOC99
/* Minimum and maximum values a `signed long long int' can hold. */
# define LLONG_MAX 9223372036854775807LL
# define LLONG_MIN (-LLONG_MAX - 1LL)
/* Maximum value an `unsigned long long int' can hold. (Minimum is 0.) */
# define ULLONG_MAX 18446744073709551615ULL
# endif /* ISO C99 */
# 110 "/usr/include/limits.h" 3 4
# endif /* limits.h */
# 112 "/usr/include/limits.h" 3 4
#endif /* GCC 2. */
# 113 "/usr/include/limits.h" 3 4
#endif /* !_LIBC_LIMITS_H_ */
# 115 "/usr/include/limits.h" 3 4
/* Get the compiler's limits.h, which defines almost all the ISO constants.
We put this #include_next outside the double inclusion check because
it should be possible to include this file more than once and still get
the definitions from gcc's header. */
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines. */
#if 0 /* expanded by -frewrite-includes */
# include_next <limits.h>
#endif /* expanded by -frewrite-includes */
# 123 "/usr/include/limits.h" 3 4
# 124 "/usr/include/limits.h" 3 4
#endif
# 125 "/usr/include/limits.h" 3 4
/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for
ages are available. */
#if defined __USE_ISOC99 && defined __GNUC__
# ifndef LLONG_MIN
# define LLONG_MIN (-LLONG_MAX-1)
# endif
# 133 "/usr/include/limits.h" 3 4
# ifndef LLONG_MAX
# define LLONG_MAX __LONG_LONG_MAX__
# endif
# 136 "/usr/include/limits.h" 3 4
# ifndef ULLONG_MAX
# define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
# endif
# 139 "/usr/include/limits.h" 3 4
#endif
# 140 "/usr/include/limits.h" 3 4
#ifdef __USE_POSIX
/* POSIX adds things to <limits.h>. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/posix1_lim.h>
#endif /* expanded by -frewrite-includes */
# 143 "/usr/include/limits.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
*
* Never include this file directly; use <limits.h> instead.
*/
#ifndef _BITS_POSIX1_LIM_H
#define _BITS_POSIX1_LIM_H 1
/* These are the standard-mandated minimum values. */
/* Minimum number of operations in one list I/O call. */
#define _POSIX_AIO_LISTIO_MAX 2
/* Minimal number of outstanding asynchronous I/O operations. */
#define _POSIX_AIO_MAX 1
/* Maximum length of arguments to `execve', including environment. */
#define _POSIX_ARG_MAX 4096
/* Maximum simultaneous processes per real user ID. */
#ifdef __USE_XOPEN2K
# define _POSIX_CHILD_MAX 25
#else
# 43 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
# define _POSIX_CHILD_MAX 6
#endif
# 45 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
/* Minimal number of timer expiration overruns. */
#define _POSIX_DELAYTIMER_MAX 32
/* Maximum length of a host name (not including the terminating null)
as returned from the GETHOSTNAME function. */
#define _POSIX_HOST_NAME_MAX 255
/* Maximum link count of a file. */
#define _POSIX_LINK_MAX 8
/* Maximum length of login name. */
#define _POSIX_LOGIN_NAME_MAX 9
/* Number of bytes in a terminal canonical input queue. */
#define _POSIX_MAX_CANON 255
/* Number of bytes for which space will be
available in a terminal input queue. */
#define _POSIX_MAX_INPUT 255
/* Maximum number of message queues open for a process. */
#define _POSIX_MQ_OPEN_MAX 8
/* Maximum number of supported message priorities. */
#define _POSIX_MQ_PRIO_MAX 32
/* Number of bytes in a filename. */
#define _POSIX_NAME_MAX 14
/* Number of simultaneous supplementary group IDs per process. */
#ifdef __USE_XOPEN2K
# define _POSIX_NGROUPS_MAX 8
#else
# 79 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
# define _POSIX_NGROUPS_MAX 0
#endif
# 81 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
/* Number of files one process can have open at once. */
#ifdef __USE_XOPEN2K
# define _POSIX_OPEN_MAX 20
#else
# 86 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
# define _POSIX_OPEN_MAX 16
#endif
# 88 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
#if !defined __USE_XOPEN2K || defined __USE_GNU
/* Number of descriptors that a process may examine with `pselect' or
`select'. */
# define _POSIX_FD_SETSIZE _POSIX_OPEN_MAX
#endif
# 94 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
/* Number of bytes in a pathname. */
#define _POSIX_PATH_MAX 256
/* Number of bytes than can be written atomically to a pipe. */
#define _POSIX_PIPE_BUF 512
/* The number of repeated occurrences of a BRE permitted by the
REGEXEC and REGCOMP functions when using the interval notation. */
#define _POSIX_RE_DUP_MAX 255
/* Minimal number of realtime signals reserved for the application. */
#define _POSIX_RTSIG_MAX 8
/* Number of semaphores a process can have. */
#define _POSIX_SEM_NSEMS_MAX 256
/* Maximal value of a semaphore. */
#define _POSIX_SEM_VALUE_MAX 32767
/* Number of pending realtime signals. */
#define _POSIX_SIGQUEUE_MAX 32
/* Largest value of a `ssize_t'. */
#define _POSIX_SSIZE_MAX 32767
/* Number of streams a process can have open at once. */
#define _POSIX_STREAM_MAX 8
/* The number of bytes in a symbolic link. */
#define _POSIX_SYMLINK_MAX 255
/* The number of symbolic links that can be traversed in the
resolution of a pathname in the absence of a loop. */
#define _POSIX_SYMLOOP_MAX 8
/* Number of timer for a process. */
#define _POSIX_TIMER_MAX 32
/* Maximum number of characters in a tty name. */
#define _POSIX_TTY_NAME_MAX 9
/* Maximum length of a timezone name (element of `tzname'). */
#ifdef __USE_XOPEN2K
# define _POSIX_TZNAME_MAX 6
#else
# 140 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
# define _POSIX_TZNAME_MAX 3
#endif
# 142 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
#if !defined __USE_XOPEN2K || defined __USE_GNU
/* Maximum number of connections that can be queued on a socket. */
# define _POSIX_QLIMIT 1
/* Maximum number of bytes that can be buffered on a socket for send
or receive. */
# define _POSIX_HIWAT _POSIX_PIPE_BUF
/* Maximum number of elements in an `iovec' array. */
# define _POSIX_UIO_MAXIOV 16
#endif
# 154 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
/* Maximum clock resolution in nanoseconds. */
#define _POSIX_CLOCKRES_MIN 20000000
/* Get the implementation-specific values for the above. */
#if 0 /* expanded by -frewrite-includes */
#include <bits/local_lim.h>
#endif /* expanded by -frewrite-includes */
# 160 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 1 3 4
/* Minimum guaranteed maximum values for system limits. Linux version.
Copyright (C) 1993-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, see <http://www.gnu.org/licenses/>. */
/* The kernel header pollutes the namespace with the NR_OPEN symbol
and defines LINK_MAX although filesystems have different maxima. A
similar thing is true for OPEN_MAX: the limit can be changed at
runtime and therefore the macro must not be defined. Remove this
after including the header if necessary. */
#ifndef NR_OPEN
# define __undef_NR_OPEN
#endif
# 27 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
#ifndef LINK_MAX
# define __undef_LINK_MAX
#endif
# 30 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
#ifndef OPEN_MAX
# define __undef_OPEN_MAX
#endif
# 33 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
#ifndef ARG_MAX
# define __undef_ARG_MAX
#endif
# 36 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
/* The kernel sources contain a file with all the needed information. */
#if 0 /* expanded by -frewrite-includes */
#include <linux/limits.h>
#endif /* expanded by -frewrite-includes */
# 38 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/linux/limits.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/linux/limits.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <linux/limits.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/linux/limits.h" 3
# 1 "/usr/include/linux/limits.h" 1 3 4
#ifndef _LINUX_LIMITS_H
#define _LINUX_LIMITS_H
#define NR_OPEN 1024
#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
#define LINK_MAX 127 /* # links a file may have */
#define MAX_CANON 255 /* size of the canonical input queue */
#define MAX_INPUT 255 /* size of the type-ahead buffer */
#define NAME_MAX 255 /* # chars in a file name */
#define PATH_MAX 4096 /* # chars in a path name including nul */
#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
#define RTSIG_MAX 32
#endif
# 21 "/usr/include/linux/limits.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/linux/limits.h" 2 3
#pragma GCC visibility pop
# 39 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 2 3 4
/* Have to remove NR_OPEN? */
#ifdef __undef_NR_OPEN
# undef NR_OPEN
# undef __undef_NR_OPEN
#endif
# 45 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
/* Have to remove LINK_MAX? */
#ifdef __undef_LINK_MAX
# undef LINK_MAX
# undef __undef_LINK_MAX
#endif
# 50 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
/* Have to remove OPEN_MAX? */
#ifdef __undef_OPEN_MAX
# undef OPEN_MAX
# undef __undef_OPEN_MAX
#endif
# 55 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
/* Have to remove ARG_MAX? */
#ifdef __undef_ARG_MAX
# undef ARG_MAX
# undef __undef_ARG_MAX
#endif
# 60 "/usr/include/x86_64-linux-gnu/bits/local_lim.h" 3 4
/* The number of data keys per process. */
#define _POSIX_THREAD_KEYS_MAX 128
/* This is the value this implementation supports. */
#define PTHREAD_KEYS_MAX 1024
/* Controlling the iterations of destructors for thread-specific data. */
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
/* Number of iterations this implementation does. */
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
/* The number of threads per process. */
#define _POSIX_THREAD_THREADS_MAX 64
/* We have no predefined limit on the number of threads. */
#undef PTHREAD_THREADS_MAX
/* Maximum amount by which a process can descrease its asynchronous I/O
priority level. */
#define AIO_PRIO_DELTA_MAX 20
/* Minimum size for a thread. We are free to choose a reasonable value. */
#define PTHREAD_STACK_MIN 16384
/* Maximum number of timer expiration overruns. */
#define DELAYTIMER_MAX 2147483647
/* Maximum tty name length. */
#define TTY_NAME_MAX 32
/* Maximum login name length. This is arbitrary. */
#define LOGIN_NAME_MAX 256
/* Maximum host name length. */
#define HOST_NAME_MAX 64
/* Maximum message queue priority level. */
#define MQ_PRIO_MAX 32768
/* Maximum value the semaphore can have. */
#define SEM_VALUE_MAX (2147483647)
# 161 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 2 3 4
#ifndef SSIZE_MAX
# define SSIZE_MAX LONG_MAX
#endif
# 166 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
/* This value is a guaranteed minimum maximum.
The current maximum can be got from `sysconf'. */
#ifndef NGROUPS_MAX
# define NGROUPS_MAX 8
#endif
# 174 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
#endif /* bits/posix1_lim.h */
# 176 "/usr/include/x86_64-linux-gnu/bits/posix1_lim.h" 3 4
# 144 "/usr/include/limits.h" 2 3 4
#endif
# 145 "/usr/include/limits.h" 3 4
#ifdef __USE_POSIX2
#if 0 /* expanded by -frewrite-includes */
# include <bits/posix2_lim.h>
#endif /* expanded by -frewrite-includes */
# 147 "/usr/include/limits.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* Never include this file directly; include <limits.h> instead.
*/
#ifndef _BITS_POSIX2_LIM_H
#define _BITS_POSIX2_LIM_H 1
/* The maximum `ibase' and `obase' values allowed by the `bc' utility. */
#define _POSIX2_BC_BASE_MAX 99
/* The maximum number of elements allowed in an array by the `bc' utility. */
#define _POSIX2_BC_DIM_MAX 2048
/* The maximum `scale' value allowed by the `bc' utility. */
#define _POSIX2_BC_SCALE_MAX 99
/* The maximum length of a string constant accepted by the `bc' utility. */
#define _POSIX2_BC_STRING_MAX 1000
/* The maximum number of weights that can be assigned to an entry of
the LC_COLLATE `order' keyword in the locale definition file. */
#define _POSIX2_COLL_WEIGHTS_MAX 2
/* The maximum number of expressions that can be nested
within parentheses by the `expr' utility. */
#define _POSIX2_EXPR_NEST_MAX 32
/* The maximum length, in bytes, of an input line. */
#define _POSIX2_LINE_MAX 2048
/* The maximum number of repeated occurrences of a regular expression
permitted when using the interval notation `\{M,N\}'. */
#define _POSIX2_RE_DUP_MAX 255
/* The maximum number of bytes in a character class name. We have no
fixed limit, 2048 is a high number. */
#define _POSIX2_CHARCLASS_NAME_MAX 14
/* These values are implementation-specific,
and may vary within the implementation.
Their precise values can be obtained from sysconf. */
#ifndef BC_BASE_MAX
#define BC_BASE_MAX _POSIX2_BC_BASE_MAX
#endif
# 65 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef BC_DIM_MAX
#define BC_DIM_MAX _POSIX2_BC_DIM_MAX
#endif
# 68 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef BC_SCALE_MAX
#define BC_SCALE_MAX _POSIX2_BC_SCALE_MAX
#endif
# 71 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef BC_STRING_MAX
#define BC_STRING_MAX _POSIX2_BC_STRING_MAX
#endif
# 74 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef COLL_WEIGHTS_MAX
#define COLL_WEIGHTS_MAX 255
#endif
# 77 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef EXPR_NEST_MAX
#define EXPR_NEST_MAX _POSIX2_EXPR_NEST_MAX
#endif
# 80 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef LINE_MAX
#define LINE_MAX _POSIX2_LINE_MAX
#endif
# 83 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
#ifndef CHARCLASS_NAME_MAX
#define CHARCLASS_NAME_MAX 2048
#endif
# 86 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
/* This value is defined like this in regex.h. */
#define RE_DUP_MAX (0x7fff)
#endif /* bits/posix2_lim.h */
# 91 "/usr/include/x86_64-linux-gnu/bits/posix2_lim.h" 3 4
# 148 "/usr/include/limits.h" 2 3 4
#endif
# 149 "/usr/include/limits.h" 3 4
#ifdef __USE_XOPEN
#if 0 /* expanded by -frewrite-includes */
# include <bits/xopen_lim.h>
#endif /* expanded by -frewrite-includes */
# 151 "/usr/include/limits.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 1 3 4
/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <limits.h> instead.
*/
/* Additional definitions from X/Open Portability Guide, Issue 4, Version 2
System Interfaces and Headers, 4.16 <limits.h>
Please note only the values which are not greater than the minimum
stated in the standard document are listed. The `sysconf' functions
should be used to obtain the actual value. */
#ifndef _XOPEN_LIM_H
#define _XOPEN_LIM_H 1
#define __need_IOV_MAX
#if 0 /* expanded by -frewrite-includes */
#include <bits/stdio_lim.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 1 3 4
/* Copyright (C) 1994-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
# error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
#endif
# 21 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 3 4
#ifdef _STDIO_H
# define L_tmpnam 20
# define TMP_MAX 238328
# define FILENAME_MAX 4096
# ifdef __USE_POSIX
# define L_ctermid 9
# if !defined __USE_XOPEN2K || defined __USE_GNU
# define L_cuserid 9
# endif
# 32 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 3 4
# endif
# 33 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 3 4
#endif
# 34 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 3 4
#if defined __need_FOPEN_MAX || defined _STDIO_H
# undef FOPEN_MAX
# define FOPEN_MAX 16
#endif
# 39 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 3 4
#if defined __need_IOV_MAX && !defined IOV_MAX
# define IOV_MAX 1024
#endif
# 43 "/usr/include/x86_64-linux-gnu/bits/stdio_lim.h" 3 4
# 34 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 2 3 4
/* We do not provide fixed values for
ARG_MAX Maximum length of argument to the `exec' function
including environment data.
ATEXIT_MAX Maximum number of functions that may be registered
with `atexit'.
CHILD_MAX Maximum number of simultaneous processes per real
user ID.
OPEN_MAX Maximum number of files that one process can have open
at anyone time.
PAGESIZE
PAGE_SIZE Size of bytes of a page.
PASS_MAX Maximum number of significant bytes in a password.
We only provide a fixed limit for
IOV_MAX Maximum number of `iovec' structures that one process has
available for use with `readv' or writev'.
if this is indeed fixed by the underlying system.
*/
/* Maximum number of `iovec' structures that one process has available
for use with `readv' or writev'. */
#define _XOPEN_IOV_MAX _POSIX_UIO_MAXIOV
/* Maximum value of `digit' in calls to the `printf' and `scanf'
functions. We have no limit, so return a reasonable value. */
#define NL_ARGMAX _POSIX_ARG_MAX
/* Maximum number of bytes in a `LANG' name. We have no limit. */
#define NL_LANGMAX _POSIX2_LINE_MAX
/* Maximum message number. We have no limit. */
#define NL_MSGMAX INT_MAX
/* Maximum number of bytes in N-to-1 collation mapping. We have no
limit. */
#if defined __USE_GNU || !defined __USE_XOPEN2K8
# define NL_NMAX INT_MAX
#endif
# 83 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
/* Maximum set number. We have no limit. */
#define NL_SETMAX INT_MAX
/* Maximum number of bytes in a message. We have no limit. */
#define NL_TEXTMAX INT_MAX
/* Default process priority. */
#define NZERO 20
/* Number of bits in a word of type `int'. */
#ifdef INT_MAX
# if INT_MAX == 32767
# define WORD_BIT 16
# else
# 99 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# if INT_MAX == 2147483647
# define WORD_BIT 32
# else
# 102 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
/* Safe assumption. */
# define WORD_BIT 64
# endif
# 105 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# endif
# 106 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#elif defined __INT_MAX__
# 107 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# if __INT_MAX__ == 32767
# define WORD_BIT 16
# else
# 110 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# if __INT_MAX__ == 2147483647
# define WORD_BIT 32
# else
# 113 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
/* Safe assumption. */
# define WORD_BIT 64
# endif
# 116 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# endif
# 117 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#else
# 118 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# define WORD_BIT 32
#endif
# 120 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
/* Number of bits in a word of type `long int'. */
#ifdef LONG_MAX
# if LONG_MAX == 2147483647
# define LONG_BIT 32
# else
# 126 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
/* Safe assumption. */
# define LONG_BIT 64
# endif
# 129 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#elif defined __LONG_MAX__
# 130 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# if __LONG_MAX__ == 2147483647
# define LONG_BIT 32
# else
# 133 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
/* Safe assumption. */
# define LONG_BIT 64
# endif
# 136 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#else
# 137 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#if 0 /* expanded by -frewrite-includes */
# include <bits/wordsize.h>
#endif /* expanded by -frewrite-includes */
# 137 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# 138 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# if __WORDSIZE == 64
# define LONG_BIT 64
# else
# 141 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# define LONG_BIT 32
# endif
# 143 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#endif
# 144 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
#endif /* bits/xopen_lim.h */
# 146 "/usr/include/x86_64-linux-gnu/bits/xopen_lim.h" 3 4
# 152 "/usr/include/limits.h" 2 3 4
#endif
# 153 "/usr/include/limits.h" 3 4
# 38 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 2 3
#endif
# 39 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
/* Many system headers try to "help us out" by defining these. No really, we
know how big each datatype is. */
#undef SCHAR_MIN
#undef SCHAR_MAX
#undef UCHAR_MAX
#undef SHRT_MIN
#undef SHRT_MAX
#undef USHRT_MAX
#undef INT_MIN
#undef INT_MAX
#undef UINT_MAX
#undef LONG_MIN
#undef LONG_MAX
#undef ULONG_MAX
#undef CHAR_BIT
#undef CHAR_MIN
#undef CHAR_MAX
/* C90/99 5.2.4.2.1 */
#define SCHAR_MAX __SCHAR_MAX__
#define SHRT_MAX __SHRT_MAX__
#define INT_MAX __INT_MAX__
#define LONG_MAX __LONG_MAX__
#define SCHAR_MIN (-__SCHAR_MAX__-1)
#define SHRT_MIN (-__SHRT_MAX__ -1)
#define INT_MIN (-__INT_MAX__ -1)
#define LONG_MIN (-__LONG_MAX__ -1L)
#define UCHAR_MAX (__SCHAR_MAX__*2 +1)
#define USHRT_MAX (__SHRT_MAX__ *2 +1)
#define UINT_MAX (__INT_MAX__ *2U +1U)
#define ULONG_MAX (__LONG_MAX__ *2UL+1UL)
#ifndef MB_LEN_MAX
#define MB_LEN_MAX 1
#endif
# 78 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
#define CHAR_BIT __CHAR_BIT__
#ifdef __CHAR_UNSIGNED__ /* -funsigned-char */
#define CHAR_MIN 0
#define CHAR_MAX UCHAR_MAX
#else
# 85 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
#define CHAR_MIN SCHAR_MIN
#define CHAR_MAX __SCHAR_MAX__
#endif
# 88 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
/* C99 5.2.4.2.1: Added long long.
C++11 18.3.3.2: same contents as the Standard C Library header <limits.h>.
*/
#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
#undef LLONG_MIN
#undef LLONG_MAX
#undef ULLONG_MAX
#define LLONG_MAX __LONG_LONG_MAX__
#define LLONG_MIN (-__LONG_LONG_MAX__-1LL)
#define ULLONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
#endif
# 102 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
/* LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX are a GNU extension. It's too bad
that we don't have something like #pragma poison that could be used to
deprecate a macro - the code should just use LLONG_MAX and friends.
*/
#if defined(__GNU_LIBRARY__) ? defined(__USE_GNU) : !defined(__STRICT_ANSI__)
#undef LONG_LONG_MIN
#undef LONG_LONG_MAX
#undef ULONG_LONG_MAX
#define LONG_LONG_MAX __LONG_LONG_MAX__
#define LONG_LONG_MIN (-__LONG_LONG_MAX__-1LL)
#define ULONG_LONG_MAX (__LONG_LONG_MAX__*2ULL+1ULL)
#endif
# 117 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
#endif /* __CLANG_LIMITS_H */
# 119 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/limits.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/limits.h" 2 3
#pragma GCC visibility pop
# 12 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <float.h>
#endif /* expanded by -frewrite-includes */
# 12 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/float.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/float.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <float.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/float.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 1 3
/*===---- float.h - Characteristics of floating point types ----------------===
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#ifndef __FLOAT_H
#define __FLOAT_H
/* If we're on MinGW, fall back to the system's float.h, which might have
* additional definitions provided for Windows.
* For more details see http://msdn.microsoft.com/en-us/library/y0ybw9fy.aspx
*/
#if (defined(__MINGW32__) || defined(_MSC_VER)) && __STDC_HOSTED__ && \
(1)/*__has_include_next(<float.h>)*/
#if 0 /* expanded by -frewrite-includes */
# include_next <float.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 3
# 34 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 3
/* Undefine anything that we'll be redefining below. */
# undef FLT_EVAL_METHOD
# undef FLT_ROUNDS
# undef FLT_RADIX
# undef FLT_MANT_DIG
# undef DBL_MANT_DIG
# undef LDBL_MANT_DIG
# undef DECIMAL_DIG
# undef FLT_DIG
# undef DBL_DIG
# undef LDBL_DIG
# undef FLT_MIN_EXP
# undef DBL_MIN_EXP
# undef LDBL_MIN_EXP
# undef FLT_MIN_10_EXP
# undef DBL_MIN_10_EXP
# undef LDBL_MIN_10_EXP
# undef FLT_MAX_EXP
# undef DBL_MAX_EXP
# undef LDBL_MAX_EXP
# undef FLT_MAX_10_EXP
# undef DBL_MAX_10_EXP
# undef LDBL_MAX_10_EXP
# undef FLT_MAX
# undef DBL_MAX
# undef LDBL_MAX
# undef FLT_EPSILON
# undef DBL_EPSILON
# undef LDBL_EPSILON
# undef FLT_MIN
# undef DBL_MIN
# undef LDBL_MIN
# if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
# undef FLT_TRUE_MIN
# undef DBL_TRUE_MIN
# undef LDBL_TRUE_MIN
# endif
# 72 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 3
#endif
# 73 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 3
/* Characteristics of floating point types, C99 5.2.4.2.2 */
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
#define FLT_ROUNDS (__builtin_flt_rounds())
#define FLT_RADIX __FLT_RADIX__
#define FLT_MANT_DIG __FLT_MANT_DIG__
#define DBL_MANT_DIG __DBL_MANT_DIG__
#define LDBL_MANT_DIG __LDBL_MANT_DIG__
#define DECIMAL_DIG __DECIMAL_DIG__
#define FLT_DIG __FLT_DIG__
#define DBL_DIG __DBL_DIG__
#define LDBL_DIG __LDBL_DIG__
#define FLT_MIN_EXP __FLT_MIN_EXP__
#define DBL_MIN_EXP __DBL_MIN_EXP__
#define LDBL_MIN_EXP __LDBL_MIN_EXP__
#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
#define FLT_MAX_EXP __FLT_MAX_EXP__
#define DBL_MAX_EXP __DBL_MAX_EXP__
#define LDBL_MAX_EXP __LDBL_MAX_EXP__
#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
#define FLT_MAX __FLT_MAX__
#define DBL_MAX __DBL_MAX__
#define LDBL_MAX __LDBL_MAX__
#define FLT_EPSILON __FLT_EPSILON__
#define DBL_EPSILON __DBL_EPSILON__
#define LDBL_EPSILON __LDBL_EPSILON__
#define FLT_MIN __FLT_MIN__
#define DBL_MIN __DBL_MIN__
#define LDBL_MIN __LDBL_MIN__
#if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)
# define FLT_TRUE_MIN __FLT_DENORM_MIN__
# define DBL_TRUE_MIN __DBL_DENORM_MIN__
# define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
#endif
# 123 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 3
#endif /* __FLOAT_H */
# 125 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/float.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/float.h" 2 3
#pragma GCC visibility pop
# 13 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 2 3
#define GLIB_HAVE_ALLOCA_H
/* Specifies that GLib's g_print*() functions wrap the
* system printf functions. This is useful to know, for example,
* when using glibc's register_printf_function().
*/
#define GLIB_USING_SYSTEM_PRINTF
G_BEGIN_DECLS
#define G_MINFLOAT FLT_MIN
#define G_MAXFLOAT FLT_MAX
#define G_MINDOUBLE DBL_MIN
#define G_MAXDOUBLE DBL_MAX
#define G_MINSHORT SHRT_MIN
#define G_MAXSHORT SHRT_MAX
#define G_MAXUSHORT USHRT_MAX
#define G_MININT INT_MIN
#define G_MAXINT INT_MAX
#define G_MAXUINT UINT_MAX
#define G_MINLONG LONG_MIN
#define G_MAXLONG LONG_MAX
#define G_MAXULONG ULONG_MAX
typedef signed char gint8;
typedef unsigned char guint8;
typedef signed short gint16;
typedef unsigned short guint16;
#define G_GINT16_MODIFIER "h"
#define G_GINT16_FORMAT "hi"
#define G_GUINT16_FORMAT "hu"
typedef signed int gint32;
typedef unsigned int guint32;
#define G_GINT32_MODIFIER ""
#define G_GINT32_FORMAT "i"
#define G_GUINT32_FORMAT "u"
#define G_HAVE_GINT64 1 /* deprecated, always true */
typedef signed long gint64;
typedef unsigned long guint64;
#define G_GINT64_CONSTANT(val) (val##L)
#define G_GUINT64_CONSTANT(val) (val##UL)
#define G_GINT64_MODIFIER "l"
#define G_GINT64_FORMAT "li"
#define G_GUINT64_FORMAT "lu"
#define GLIB_SIZEOF_VOID_P 8
#define GLIB_SIZEOF_LONG 8
#define GLIB_SIZEOF_SIZE_T 8
#define GLIB_SIZEOF_SSIZE_T 8
typedef signed long gssize;
typedef unsigned long gsize;
#define G_GSIZE_MODIFIER "l"
#define G_GSSIZE_MODIFIER "l"
#define G_GSIZE_FORMAT "lu"
#define G_GSSIZE_FORMAT "li"
#define G_MAXSIZE G_MAXULONG
#define G_MINSSIZE G_MINLONG
#define G_MAXSSIZE G_MAXLONG
typedef gint64 goffset;
#define G_MINOFFSET G_MININT64
#define G_MAXOFFSET G_MAXINT64
#define G_GOFFSET_MODIFIER G_GINT64_MODIFIER
#define G_GOFFSET_FORMAT G_GINT64_FORMAT
#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
#define G_POLLFD_FORMAT "%d"
#define GPOINTER_TO_INT(p) ((gint) (glong) (p))
#define GPOINTER_TO_UINT(p) ((guint) (gulong) (p))
#define GINT_TO_POINTER(i) ((gpointer) (glong) (i))
#define GUINT_TO_POINTER(u) ((gpointer) (gulong) (u))
typedef signed long gintptr;
typedef unsigned long guintptr;
#define G_GINTPTR_MODIFIER "l"
#define G_GINTPTR_FORMAT "li"
#define G_GUINTPTR_FORMAT "lu"
#ifndef G_DISABLE_DEPRECATED
#define g_ATEXIT(proc) (atexit (proc))
#define g_memmove(dest,src,len) G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END
#endif
# 103 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#define GLIB_MAJOR_VERSION 2
#define GLIB_MINOR_VERSION 50
#define GLIB_MICRO_VERSION 0
#define G_OS_UNIX
#define G_VA_COPY va_copy
#define G_VA_COPY_AS_ARRAY 1
#ifndef __cplusplus
# define G_HAVE_ISO_VARARGS 1
#endif
# 117 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#ifdef __cplusplus
# define G_HAVE_ISO_VARARGS 1
#endif
# 120 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
* is passed ISO vararg support is turned off, and there is no work
* around to turn it on, so we unconditionally turn it off.
*/
#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
# undef G_HAVE_ISO_VARARGS
#endif
# 128 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#define G_HAVE_GNUC_VARARGS 1
#define G_HAVE_GROWING_STACK 0
#define G_HAVE_GNUC_VISIBILITY 1
#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
#define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
# 136 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#define G_GNUC_INTERNAL __hidden
#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY)
# 138 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
#else
# 140 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#define G_GNUC_INTERNAL
#endif
# 142 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
#define G_THREADS_ENABLED
#define G_THREADS_IMPL_POSIX
#define G_ATOMIC_LOCK_FREE
#define GINT16_TO_LE(val) ((gint16) (val))
#define GUINT16_TO_LE(val) ((guint16) (val))
#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val))
#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val))
#define GINT32_TO_LE(val) ((gint32) (val))
#define GUINT32_TO_LE(val) ((guint32) (val))
#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val))
#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val))
#define GINT64_TO_LE(val) ((gint64) (val))
#define GUINT64_TO_LE(val) ((guint64) (val))
#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val))
#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val))
#define GLONG_TO_LE(val) ((glong) GINT64_TO_LE (val))
#define GULONG_TO_LE(val) ((gulong) GUINT64_TO_LE (val))
#define GLONG_TO_BE(val) ((glong) GINT64_TO_BE (val))
#define GULONG_TO_BE(val) ((gulong) GUINT64_TO_BE (val))
#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val))
#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val))
#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val))
#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val))
#define GSIZE_TO_LE(val) ((gsize) GUINT64_TO_LE (val))
#define GSSIZE_TO_LE(val) ((gssize) GINT64_TO_LE (val))
#define GSIZE_TO_BE(val) ((gsize) GUINT64_TO_BE (val))
#define GSSIZE_TO_BE(val) ((gssize) GINT64_TO_BE (val))
#define G_BYTE_ORDER G_LITTLE_ENDIAN
#define GLIB_SYSDEF_POLLIN =1
#define GLIB_SYSDEF_POLLOUT =4
#define GLIB_SYSDEF_POLLPRI =2
#define GLIB_SYSDEF_POLLHUP =16
#define GLIB_SYSDEF_POLLERR =8
#define GLIB_SYSDEF_POLLNVAL =32
#define G_MODULE_SUFFIX "so"
typedef int GPid;
#define G_PID_FORMAT "i"
#define GLIB_SYSDEF_AF_UNIX 1
#define GLIB_SYSDEF_AF_INET 2
#define GLIB_SYSDEF_AF_INET6 10
#define GLIB_SYSDEF_MSG_OOB 1
#define GLIB_SYSDEF_MSG_PEEK 2
#define GLIB_SYSDEF_MSG_DONTROUTE 4
G_END_DECLS
#endif /* __GLIBCONFIG_H__ */
# 197 "/usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 2 3
#pragma GCC visibility pop
# 33 "/usr/include/glib-2.0/glib/gtypes.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmacros.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gtypes.h" 3
# 34 "/usr/include/glib-2.0/glib/gtypes.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gversionmacros.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/gtypes.h" 3
# 1 "/usr/include/glib-2.0/glib/gversionmacros.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_VERSION_MACROS_H__
#define __G_VERSION_MACROS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
/* Version boundaries checks */
#define G_ENCODE_VERSION(major,minor) ((major) << 16 | (minor) << 8)
/* XXX: Every new stable minor release bump should add a macro here */
/**
* GLIB_VERSION_2_26:
*
* A macro that evaluates to the 2.26 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.32
*/
#define GLIB_VERSION_2_26 (G_ENCODE_VERSION (2, 26))
/**
* GLIB_VERSION_2_28:
*
* A macro that evaluates to the 2.28 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.32
*/
#define GLIB_VERSION_2_28 (G_ENCODE_VERSION (2, 28))
/**
* GLIB_VERSION_2_30:
*
* A macro that evaluates to the 2.30 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.32
*/
#define GLIB_VERSION_2_30 (G_ENCODE_VERSION (2, 30))
/**
* GLIB_VERSION_2_32:
*
* A macro that evaluates to the 2.32 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.32
*/
#define GLIB_VERSION_2_32 (G_ENCODE_VERSION (2, 32))
/**
* GLIB_VERSION_2_34:
*
* A macro that evaluates to the 2.34 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.34
*/
#define GLIB_VERSION_2_34 (G_ENCODE_VERSION (2, 34))
/**
* GLIB_VERSION_2_36:
*
* A macro that evaluates to the 2.36 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.36
*/
#define GLIB_VERSION_2_36 (G_ENCODE_VERSION (2, 36))
/**
* GLIB_VERSION_2_38:
*
* A macro that evaluates to the 2.38 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.38
*/
#define GLIB_VERSION_2_38 (G_ENCODE_VERSION (2, 38))
/**
* GLIB_VERSION_2_40:
*
* A macro that evaluates to the 2.40 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.40
*/
#define GLIB_VERSION_2_40 (G_ENCODE_VERSION (2, 40))
/**
* GLIB_VERSION_2_42:
*
* A macro that evaluates to the 2.42 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.42
*/
#define GLIB_VERSION_2_42 (G_ENCODE_VERSION (2, 42))
/**
* GLIB_VERSION_2_44:
*
* A macro that evaluates to the 2.44 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.44
*/
#define GLIB_VERSION_2_44 (G_ENCODE_VERSION (2, 44))
/**
* GLIB_VERSION_2_46:
*
* A macro that evaluates to the 2.46 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.46
*/
#define GLIB_VERSION_2_46 (G_ENCODE_VERSION (2, 46))
/**
* GLIB_VERSION_2_48:
*
* A macro that evaluates to the 2.48 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.48
*/
#define GLIB_VERSION_2_48 (G_ENCODE_VERSION (2, 48))
/**
* GLIB_VERSION_2_50:
*
* A macro that evaluates to the 2.50 version of GLib, in a format
* that can be used by the C pre-processor.
*
* Since: 2.50
*/
#define GLIB_VERSION_2_50 (G_ENCODE_VERSION (2, 50))
/* evaluates to the current stable version; for development cycles,
* this means the next stable target
*/
#if (GLIB_MINOR_VERSION % 2)
#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION + 1))
#else
# 174 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION))
#endif
# 176 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
/* evaluates to the previous stable version */
#if (GLIB_MINOR_VERSION % 2)
#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 1))
#else
# 181 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 2))
#endif
# 183 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
/**
* GLIB_VERSION_MIN_REQUIRED:
*
* A macro that should be defined by the user prior to including
* the glib.h header.
* The definition should be one of the predefined GLib version
* macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,...
*
* This macro defines the earliest version of GLib that the package is
* required to be able to compile against.
*
* If the compiler is configured to warn about the use of deprecated
* functions, then using functions that were deprecated in version
* %GLIB_VERSION_MIN_REQUIRED or earlier will cause warnings (but
* using functions deprecated in later releases will not).
*
* Since: 2.32
*/
/* If the package sets GLIB_VERSION_MIN_REQUIRED to some future
* GLIB_VERSION_X_Y value that we don't know about, it will compare as
* 0 in preprocessor tests.
*/
#ifndef GLIB_VERSION_MIN_REQUIRED
# define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE)
#elif GLIB_VERSION_MIN_REQUIRED == 0
# 209 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# undef GLIB_VERSION_MIN_REQUIRED
# define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE + 2)
#endif
# 212 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
/**
* GLIB_VERSION_MAX_ALLOWED:
*
* A macro that should be defined by the user prior to including
* the glib.h header.
* The definition should be one of the predefined GLib version
* macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,...
*
* This macro defines the latest version of the GLib API that the
* package is allowed to make use of.
*
* If the compiler is configured to warn about the use of deprecated
* functions, then using functions added after version
* %GLIB_VERSION_MAX_ALLOWED will cause warnings.
*
* Unless you are using GLIB_CHECK_VERSION() or the like to compile
* different code depending on the GLib version, then this should be
* set to the same value as %GLIB_VERSION_MIN_REQUIRED.
*
* Since: 2.32
*/
#if !defined (GLIB_VERSION_MAX_ALLOWED) || (GLIB_VERSION_MAX_ALLOWED == 0)
# undef GLIB_VERSION_MAX_ALLOWED
# define GLIB_VERSION_MAX_ALLOWED (GLIB_VERSION_CUR_STABLE)
#endif
# 238 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
/* sanity checks */
#if GLIB_VERSION_MIN_REQUIRED > GLIB_VERSION_CUR_STABLE
#error "GLIB_VERSION_MIN_REQUIRED must be <= GLIB_VERSION_CUR_STABLE"
#endif
# 243 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_MIN_REQUIRED
#error "GLIB_VERSION_MAX_ALLOWED must be >= GLIB_VERSION_MIN_REQUIRED"
#endif
# 246 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_26
#error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"
#endif
# 249 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
/* These macros are used to mark deprecated functions in GLib headers,
* and thus have to be exposed in installed headers. But please
* do *not* use them in other projects. Instead, use G_DEPRECATED
* or define your own wrappers around it.
*/
#define GLIB_AVAILABLE_IN_ALL _GLIB_EXTERN
/* XXX: Every new stable minor release should add a set of macros here */
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_26
# define GLIB_DEPRECATED_IN_2_26 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_26_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 263 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_26 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_26_FOR(f) _GLIB_EXTERN
#endif
# 266 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_26
# define GLIB_AVAILABLE_IN_2_26 GLIB_UNAVAILABLE(2, 26)
#else
# 270 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_26 _GLIB_EXTERN
#endif
# 272 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_28
# define GLIB_DEPRECATED_IN_2_28 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_28_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 277 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_28 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_28_FOR(f) _GLIB_EXTERN
#endif
# 280 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_28
# define GLIB_AVAILABLE_IN_2_28 GLIB_UNAVAILABLE(2, 28)
#else
# 284 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_28 _GLIB_EXTERN
#endif
# 286 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_30
# define GLIB_DEPRECATED_IN_2_30 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_30_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 291 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_30 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_30_FOR(f) _GLIB_EXTERN
#endif
# 294 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_30
# define GLIB_AVAILABLE_IN_2_30 GLIB_UNAVAILABLE(2, 30)
#else
# 298 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_30 _GLIB_EXTERN
#endif
# 300 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32
# define GLIB_DEPRECATED_IN_2_32 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_32_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 305 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_32 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_32_FOR(f) _GLIB_EXTERN
#endif
# 308 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32
# define GLIB_AVAILABLE_IN_2_32 GLIB_UNAVAILABLE(2, 32)
#else
# 312 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_32 _GLIB_EXTERN
#endif
# 314 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34
# define GLIB_DEPRECATED_IN_2_34 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_34_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 319 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_34 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_34_FOR(f) _GLIB_EXTERN
#endif
# 322 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34
# define GLIB_AVAILABLE_IN_2_34 GLIB_UNAVAILABLE(2, 34)
#else
# 326 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_34 _GLIB_EXTERN
#endif
# 328 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36
# define GLIB_DEPRECATED_IN_2_36 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_36_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 333 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_36 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_36_FOR(f) _GLIB_EXTERN
#endif
# 336 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36
# define GLIB_AVAILABLE_IN_2_36 GLIB_UNAVAILABLE(2, 36)
#else
# 340 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_36 _GLIB_EXTERN
#endif
# 342 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38
# define GLIB_DEPRECATED_IN_2_38 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_38_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 347 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_38 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_38_FOR(f) _GLIB_EXTERN
#endif
# 350 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
# define GLIB_AVAILABLE_IN_2_38 GLIB_UNAVAILABLE(2, 38)
#else
# 354 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_38 _GLIB_EXTERN
#endif
# 356 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40
# define GLIB_DEPRECATED_IN_2_40 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_40_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 361 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_40 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_40_FOR(f) _GLIB_EXTERN
#endif
# 364 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40
# define GLIB_AVAILABLE_IN_2_40 GLIB_UNAVAILABLE(2, 40)
#else
# 368 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_40 _GLIB_EXTERN
#endif
# 370 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42
# define GLIB_DEPRECATED_IN_2_42 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_42_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 375 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_42 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_42_FOR(f) _GLIB_EXTERN
#endif
# 378 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42
# define GLIB_AVAILABLE_IN_2_42 GLIB_UNAVAILABLE(2, 42)
#else
# 382 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_42 _GLIB_EXTERN
#endif
# 384 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_44
# define GLIB_DEPRECATED_IN_2_44 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_44_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 389 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_44 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_44_FOR(f) _GLIB_EXTERN
#endif
# 392 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44
# define GLIB_AVAILABLE_IN_2_44 GLIB_UNAVAILABLE(2, 44)
#else
# 396 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_44 _GLIB_EXTERN
#endif
# 398 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46
# define GLIB_DEPRECATED_IN_2_46 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_46_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 403 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_46 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_46_FOR(f) _GLIB_EXTERN
#endif
# 406 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46
# define GLIB_AVAILABLE_IN_2_46 GLIB_UNAVAILABLE(2, 46)
#else
# 410 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_46 _GLIB_EXTERN
#endif
# 412 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_48
# define GLIB_DEPRECATED_IN_2_48 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_48_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 417 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_48 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_48_FOR(f) _GLIB_EXTERN
#endif
# 420 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_48
# define GLIB_AVAILABLE_IN_2_48 GLIB_UNAVAILABLE(2, 48)
#else
# 424 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_48 _GLIB_EXTERN
#endif
# 426 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_50
# define GLIB_DEPRECATED_IN_2_50 GLIB_DEPRECATED
# define GLIB_DEPRECATED_IN_2_50_FOR(f) GLIB_DEPRECATED_FOR(f)
#else
# 431 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_DEPRECATED_IN_2_50 _GLIB_EXTERN
# define GLIB_DEPRECATED_IN_2_50_FOR(f) _GLIB_EXTERN
#endif
# 434 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_50
# define GLIB_AVAILABLE_IN_2_50 GLIB_UNAVAILABLE(2, 50)
#else
# 438 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# define GLIB_AVAILABLE_IN_2_50 _GLIB_EXTERN
#endif
# 440 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
#endif /* __G_VERSION_MACROS_H__ */
# 442 "/usr/include/glib-2.0/glib/gversionmacros.h" 3
# 35 "/usr/include/glib-2.0/glib/gtypes.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <time.h>
#endif /* expanded by -frewrite-includes */
# 35 "/usr/include/glib-2.0/glib/gtypes.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <time.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
# 1 "/usr/include/time.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.23 Date and time <time.h>
*/
#ifndef _TIME_H
#if (! defined __need_time_t && !defined __need_clock_t && \
! defined __need_timespec)
# define _TIME_H 1
#if 0 /* expanded by -frewrite-includes */
# include <features.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/time.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <features.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility pop
# 28 "/usr/include/time.h" 2 3 4
__BEGIN_DECLS
#endif
# 32 "/usr/include/time.h" 3 4
#ifdef _TIME_H
/* Get size_t and NULL from <stddef.h>. */
# define __need_size_t
# define __need_NULL
#if 0 /* expanded by -frewrite-includes */
# include <stddef.h>
#endif /* expanded by -frewrite-includes */
# 37 "/usr/include/time.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stddef.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 1 3
/*===---- stddef.h - Basic type definitions --------------------------------===
*
* Copyright (c) 2008 Eli Friedman
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \
defined(__need_size_t) || defined(__need_wchar_t) || \
defined(__need_NULL) || defined(__need_wint_t)
#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
!defined(__need_wchar_t) && !defined(__need_NULL) && \
!defined(__need_wint_t)
/* Always define miscellaneous pieces when modules are available. */
#if !__has_feature(modules)
#define __STDDEF_H
#endif
# 37 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define __need_ptrdiff_t
#define __need_size_t
#define __need_wchar_t
#define __need_NULL
#define __need_STDDEF_H_misc
/* __need_wint_t is intentionally not defined here. */
#endif
# 44 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_ptrdiff_t)
#if !defined(_PTRDIFF_T) || __has_feature(modules)
/* Always define ptrdiff_t when modules are available. */
#if !__has_feature(modules)
#define _PTRDIFF_T
#endif
# 51 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __PTRDIFF_TYPE__ ptrdiff_t;
#endif
# 53 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_ptrdiff_t
#endif /* defined(__need_ptrdiff_t) */
# 55 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_size_t)
#if !defined(_SIZE_T) || __has_feature(modules)
/* Always define size_t when modules are available. */
#if !__has_feature(modules)
#define _SIZE_T
#endif
# 62 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ size_t;
#endif
# 64 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_size_t
#endif /*defined(__need_size_t) */
# 66 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
* enabled. */
#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \
!defined(_RSIZE_T)) || __has_feature(modules)
/* Always define rsize_t when modules are available. */
#if !__has_feature(modules)
#define _RSIZE_T
#endif
# 76 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ rsize_t;
#endif
# 78 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif /* defined(__need_STDDEF_H_misc) */
# 79 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_wchar_t)
#ifndef __cplusplus
/* Always define wchar_t when modules are available. */
#if !defined(_WCHAR_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WCHAR_T
#if defined(_MSC_EXTENSIONS)
#define _WCHAR_T_DEFINED
#endif
# 89 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 90 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WCHAR_TYPE__ wchar_t;
#endif
# 92 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 93 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wchar_t
#endif /* defined(__need_wchar_t) */
# 95 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_NULL)
#undef NULL
#ifdef __cplusplus
# if !defined(__MINGW32__) && !defined(_MSC_VER)
# define NULL __null
# else
# 102 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL 0
# endif
# 104 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#else
# 105 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL ((void*)0)
#endif
# 107 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#ifdef __cplusplus
#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
namespace std { typedef decltype(nullptr) nullptr_t; }
using ::std::nullptr_t;
#endif
# 112 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 113 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_NULL
#endif /* defined(__need_NULL) */
# 115 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
#if 0 /* expanded by -frewrite-includes */
#include "__stddef_max_align_t.h"
#endif /* expanded by -frewrite-includes */
# 118 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 119 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 120 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define offsetof(t, d) __builtin_offsetof(t, d)
#undef __need_STDDEF_H_misc
#endif /* defined(__need_STDDEF_H_misc) */
# 123 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
#if defined(__need_wint_t)
/* Always define wint_t when modules are available. */
#if !defined(_WINT_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WINT_T
#endif
# 132 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WINT_TYPE__ wint_t;
#endif
# 134 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wint_t
#endif /* __need_wint_t */
# 136 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 138 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 2 3
#pragma GCC visibility pop
# 38 "/usr/include/time.h" 2 3 4
/* This defines CLOCKS_PER_SEC, which is the number of processor clock
ticks per second. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/time.h>
#endif /* expanded by -frewrite-includes */
# 41 "/usr/include/time.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4
/* System-dependent timing definitions. Linux version.
Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <time.h> instead.
*/
#if defined __need_timeval || defined __USE_GNU
# ifndef _STRUCT_TIMEVAL
# define _STRUCT_TIMEVAL 1
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4
/* bits/types.h -- definitions of __*_t types underlying *_t types.
Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* Never include this file directly; use <sys/types.h> instead.
*/
#ifndef _BITS_TYPES_H
#define _BITS_TYPES_H 1
#if 0 /* expanded by -frewrite-includes */
#include <features.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <features.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility pop
# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
#if 0 /* expanded by -frewrite-includes */
#include <bits/wordsize.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
/* Determine the wordsize from the preprocessor defines. */
#if defined __x86_64__ && !defined __ILP32__
# define __WORDSIZE 64
#else
# 6 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# define __WORDSIZE 32
#endif
# 8 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
#ifdef __x86_64__
# define __WORDSIZE_TIME64_COMPAT32 1
/* Both x86-64 and x32 use the 64-bit system call interface. */
# define __SYSCALL_WORDSIZE 64
#endif
# 14 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
/* Convenience types. */
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
/* Fixed-size types, underlying types depend on word size and compiler. */
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
#if __WORDSIZE == 64
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
#else
# 46 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
#endif
# 49 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
/* quad_t is also 64 bits. */
#if __WORDSIZE == 64
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
#else
# 55 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
#endif
# 58 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
/* The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
macros for each of the OS types we define below. The definitions
of those macros must use the following macros for underlying types.
We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
variants of each of the following integer types on this machine.
16 -- "natural" 16-bit type (always short)
32 -- "natural" 32-bit type (always int)
64 -- "natural" 64-bit type (long or long long)
LONG32 -- 32-bit type, traditionally long
QUAD -- 64-bit type, always long long
WORD -- natural type of __WORDSIZE bits (int or long)
LONGWORD -- type of __WORDSIZE bits, traditionally long
We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
conventional uses of `long' or `long long' type modifiers match the
types we define, even when a less-adorned type would be the same size.
This matters for (somewhat) portably writing printf/scanf formats for
these types, where using the appropriate l or ll format modifiers can
make the typedefs and the formats match up across all GNU platforms. If
we used `long' when it's 64 bits where `long long' is expected, then the
compiler would warn about the formats not matching the argument types,
and the programmer changing them to shut up the compiler would break the
program's portability.
Here we assume what is presently the case in all the GCC configurations
we support: long long is always 64 bits, long is always word/address size,
and int is always 32 bits. */
#define __S16_TYPE short int
#define __U16_TYPE unsigned short int
#define __S32_TYPE int
#define __U32_TYPE unsigned int
#define __SLONGWORD_TYPE long int
#define __ULONGWORD_TYPE unsigned long int
#if __WORDSIZE == 32
# define __SQUAD_TYPE __quad_t
# define __UQUAD_TYPE __u_quad_t
# define __SWORD_TYPE int
# define __UWORD_TYPE unsigned int
# define __SLONG32_TYPE long int
# define __ULONG32_TYPE unsigned long int
# define __S64_TYPE __quad_t
# define __U64_TYPE __u_quad_t
/* We want __extension__ before typedef's that use nonstandard base types
such as `long long' in C89 mode. */
# define __STD_TYPE __extension__ typedef
#elif __WORDSIZE == 64
# 108 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
# define __SQUAD_TYPE long int
# define __UQUAD_TYPE unsigned long int
# define __SWORD_TYPE long int
# define __UWORD_TYPE unsigned long int
# define __SLONG32_TYPE int
# define __ULONG32_TYPE unsigned int
# define __S64_TYPE long int
# define __U64_TYPE unsigned long int
/* No need to mark the typedef with __extension__. */
# define __STD_TYPE typedef
#else
# 119 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
# error
#endif
# 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <bits/typesizes.h> /* Defines __*_T_TYPE macros. */
#endif /* expanded by -frewrite-includes */
# 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4
/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
Copyright (C) 2012-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _BITS_TYPES_H
# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
#endif
# 22 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
#ifndef _BITS_TYPESIZES_H
#define _BITS_TYPESIZES_H 1
/* See <bits/types.h> for the meaning of these macros. This file exists so
that <bits/types.h> need not vary across different GNU platforms. */
/* X32 kernel interface is 64-bit. */
#if defined __x86_64__ && defined __ILP32__
# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE
# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE
#else
# 34 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#endif
# 37 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
#define __DEV_T_TYPE __UQUAD_TYPE
#define __UID_T_TYPE __U32_TYPE
#define __GID_T_TYPE __U32_TYPE
#define __INO_T_TYPE __SYSCALL_ULONG_TYPE
#define __INO64_T_TYPE __UQUAD_TYPE
#define __MODE_T_TYPE __U32_TYPE
#ifdef __x86_64__
# define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE
# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE
#else
# 48 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
# define __NLINK_T_TYPE __UWORD_TYPE
# define __FSWORD_T_TYPE __SWORD_TYPE
#endif
# 51 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE
#define __OFF64_T_TYPE __SQUAD_TYPE
#define __PID_T_TYPE __S32_TYPE
#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE
#define __RLIM64_T_TYPE __UQUAD_TYPE
#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE
#define __BLKCNT64_T_TYPE __SQUAD_TYPE
#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE
#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE
#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
#define __ID_T_TYPE __U32_TYPE
#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE
#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE
#define __USECONDS_T_TYPE __U32_TYPE
#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE
#define __DADDR_T_TYPE __S32_TYPE
#define __KEY_T_TYPE __S32_TYPE
#define __CLOCKID_T_TYPE __S32_TYPE
#define __TIMER_T_TYPE void *
#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE
#ifdef __x86_64__
/* Tell the libc code that off_t and off64_t are actually the same type
for all ABI purposes, even if possibly expressed as different base types
for C type-checking purposes. */
# define __OFF_T_MATCHES_OFF64_T 1
/* Same for ino_t and ino64_t. */
# define __INO_T_MATCHES_INO64_T 1
#endif
# 85 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 1024
#endif /* bits/typesizes.h */
# 91 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 3 4
# 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4
__STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */
__STD_TYPE __UID_T_TYPE __uid_t; /* Type of user identifications. */
__STD_TYPE __GID_T_TYPE __gid_t; /* Type of group identifications. */
__STD_TYPE __INO_T_TYPE __ino_t; /* Type of file serial numbers. */
__STD_TYPE __INO64_T_TYPE __ino64_t; /* Type of file serial numbers (LFS).*/
__STD_TYPE __MODE_T_TYPE __mode_t; /* Type of file attribute bitmasks. */
__STD_TYPE __NLINK_T_TYPE __nlink_t; /* Type of file link counts. */
__STD_TYPE __OFF_T_TYPE __off_t; /* Type of file sizes and offsets. */
__STD_TYPE __OFF64_T_TYPE __off64_t; /* Type of file sizes and offsets (LFS). */
__STD_TYPE __PID_T_TYPE __pid_t; /* Type of process identifications. */
__STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */
__STD_TYPE __CLOCK_T_TYPE __clock_t; /* Type of CPU usage counts. */
__STD_TYPE __RLIM_T_TYPE __rlim_t; /* Type for resource measurement. */
__STD_TYPE __RLIM64_T_TYPE __rlim64_t; /* Type for resource measurement (LFS). */
__STD_TYPE __ID_T_TYPE __id_t; /* General type for IDs. */
__STD_TYPE __TIME_T_TYPE __time_t; /* Seconds since the Epoch. */
__STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds. */
__STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds. */
__STD_TYPE __DADDR_T_TYPE __daddr_t; /* The type of a disk address. */
__STD_TYPE __KEY_T_TYPE __key_t; /* Type of an IPC key. */
/* Clock ID used in clock and timer functions. */
__STD_TYPE __CLOCKID_T_TYPE __clockid_t;
/* Timer ID returned by `timer_create'. */
__STD_TYPE __TIMER_T_TYPE __timer_t;
/* Type to represent block size. */
__STD_TYPE __BLKSIZE_T_TYPE __blksize_t;
/* Types from the Large File Support interface. */
/* Type to count number of disk blocks. */
__STD_TYPE __BLKCNT_T_TYPE __blkcnt_t;
__STD_TYPE __BLKCNT64_T_TYPE __blkcnt64_t;
/* Type to count file system blocks. */
__STD_TYPE __FSBLKCNT_T_TYPE __fsblkcnt_t;
__STD_TYPE __FSBLKCNT64_T_TYPE __fsblkcnt64_t;
/* Type to count file system nodes. */
__STD_TYPE __FSFILCNT_T_TYPE __fsfilcnt_t;
__STD_TYPE __FSFILCNT64_T_TYPE __fsfilcnt64_t;
/* Type of miscellaneous file system fields. */
__STD_TYPE __FSWORD_T_TYPE __fsword_t;
__STD_TYPE __SSIZE_T_TYPE __ssize_t; /* Type of a byte count, or error. */
/* Signed long type used in system calls. */
__STD_TYPE __SYSCALL_SLONG_TYPE __syscall_slong_t;
/* Unsigned long type used in system calls. */
__STD_TYPE __SYSCALL_ULONG_TYPE __syscall_ulong_t;
/* These few don't really vary by system, they always correspond
to one of the other defined types. */
typedef __off64_t __loff_t; /* Type of file sizes and offsets (LFS). */
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;
/* Duplicates info from stdint.h but this is used in unistd.h. */
__STD_TYPE __SWORD_TYPE __intptr_t;
/* Duplicate info from sys/socket.h. */
__STD_TYPE __U32_TYPE __socklen_t;
#undef __STD_TYPE
#endif /* bits/types.h */
# 195 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4
# 27 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4
/* A time value that is accurate to the nearest
microsecond but also has a range of years. */
struct timeval
{
__time_t tv_sec; /* Seconds. */
__suseconds_t tv_usec; /* Microseconds. */
};
# endif /* struct timeval */
# 36 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
#endif
# 37 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
#ifndef __need_timeval
# ifndef _BITS_TIME_H
# define _BITS_TIME_H 1
/* ISO/IEC 9899:1999 7.23.1: Components of time
The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
the number per second of the value returned by the `clock' function. */
/* CAE XSH, Issue 4, Version 2: <time.h>
The value of CLOCKS_PER_SEC is required to be 1 million on all
XSI-conformant systems. */
# define CLOCKS_PER_SEC ((clock_t) 1000000)
# if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \
&& !defined __USE_XOPEN2K
/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
presents the real value for clock ticks per second for the system. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 54 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
# 55 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
extern long int __sysconf (int);
# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
# endif
# 58 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
# ifdef __USE_POSIX199309
/* Identifier for system-wide realtime clock. */
# define CLOCK_REALTIME 0
/* Monotonic system-wide clock. */
# define CLOCK_MONOTONIC 1
/* High-resolution timer from the CPU. */
# define CLOCK_PROCESS_CPUTIME_ID 2
/* Thread-specific CPU-time clock. */
# define CLOCK_THREAD_CPUTIME_ID 3
/* Monotonic system-wide clock, not adjusted for frequency scaling. */
# define CLOCK_MONOTONIC_RAW 4
/* Identifier for system-wide realtime clock, updated only on ticks. */
# define CLOCK_REALTIME_COARSE 5
/* Monotonic system-wide clock, updated only on ticks. */
# define CLOCK_MONOTONIC_COARSE 6
/* Monotonic system-wide clock that includes time spent in suspension. */
# define CLOCK_BOOTTIME 7
/* Like CLOCK_REALTIME but also wakes suspended system. */
# define CLOCK_REALTIME_ALARM 8
/* Like CLOCK_BOOTTIME but also wakes suspended system. */
# define CLOCK_BOOTTIME_ALARM 9
/* Like CLOCK_REALTIME but in International Atomic Time. */
# define CLOCK_TAI 11
/* Flag to indicate time is absolute. */
# define TIMER_ABSTIME 1
# endif
# 86 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
# ifdef __USE_GNU
#if 0 /* expanded by -frewrite-includes */
# include <bits/timex.h>
#endif /* expanded by -frewrite-includes */
# 88 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/timex.h" 1 3 4
/* Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _BITS_TIMEX_H
#define _BITS_TIMEX_H 1
#if 0 /* expanded by -frewrite-includes */
#include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 21 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4
# 22 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4
/* These definitions from linux/timex.h as of 3.18. */
struct timex
{
unsigned int modes; /* mode selector */
__syscall_slong_t offset; /* time offset (usec) */
__syscall_slong_t freq; /* frequency offset (scaled ppm) */
__syscall_slong_t maxerror; /* maximum error (usec) */
__syscall_slong_t esterror; /* estimated error (usec) */
int status; /* clock command/status */
__syscall_slong_t constant; /* pll time constant */
__syscall_slong_t precision; /* clock precision (usec) (ro) */
__syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */
struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
__syscall_slong_t tick; /* (modified) usecs between clock ticks */
__syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */
__syscall_slong_t jitter; /* pps jitter (us) (ro) */
int shift; /* interval duration (s) (shift) (ro) */
__syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */
__syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */
__syscall_slong_t calcnt; /* calibration intervals (ro) */
__syscall_slong_t errcnt; /* calibration errors (ro) */
__syscall_slong_t stbcnt; /* stability limit exceeded (ro) */
int tai; /* TAI offset (ro) */
/* ??? */
int :32; int :32; int :32; int :32;
int :32; int :32; int :32; int :32;
int :32; int :32; int :32;
};
/* Mode codes (timex.mode) */
#define ADJ_OFFSET 0x0001 /* time offset */
#define ADJ_FREQUENCY 0x0002 /* frequency offset */
#define ADJ_MAXERROR 0x0004 /* maximum time error */
#define ADJ_ESTERROR 0x0008 /* estimated time error */
#define ADJ_STATUS 0x0010 /* clock status */
#define ADJ_TIMECONST 0x0020 /* pll time constant */
#define ADJ_TAI 0x0080 /* set TAI offset */
#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */
#define ADJ_MICRO 0x1000 /* select microsecond resolution */
#define ADJ_NANO 0x2000 /* select nanosecond resolution */
#define ADJ_TICK 0x4000 /* tick value */
#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */
/* xntp 3.4 compatibility names */
#define MOD_OFFSET ADJ_OFFSET
#define MOD_FREQUENCY ADJ_FREQUENCY
#define MOD_MAXERROR ADJ_MAXERROR
#define MOD_ESTERROR ADJ_ESTERROR
#define MOD_STATUS ADJ_STATUS
#define MOD_TIMECONST ADJ_TIMECONST
#define MOD_CLKB ADJ_TICK
#define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
#define MOD_TAI ADJ_TAI
#define MOD_MICRO ADJ_MICRO
#define MOD_NANO ADJ_NANO
/* Status codes (timex.status) */
#define STA_PLL 0x0001 /* enable PLL updates (rw) */
#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */
#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */
#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */
#define STA_INS 0x0010 /* insert leap (rw) */
#define STA_DEL 0x0020 /* delete leap (rw) */
#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */
#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */
#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */
#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */
#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */
#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */
#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */
#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */
#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */
#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */
/* Read-only bits */
#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
#endif /* bits/timex.h */
# 110 "/usr/include/x86_64-linux-gnu/bits/timex.h" 3 4
# 89 "/usr/include/x86_64-linux-gnu/bits/time.h" 2 3 4
__BEGIN_DECLS
/* Tune a POSIX clock. */
extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
__END_DECLS
# endif /* use GNU */
# 97 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
# endif /* bits/time.h */
# 99 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
#endif
# 100 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4
#undef __need_timeval
# 42 "/usr/include/time.h" 2 3 4
/* This is the obsolete POSIX.1-1988 name for the same constant. */
# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
# ifndef CLK_TCK
# define CLK_TCK CLOCKS_PER_SEC
# endif
# 48 "/usr/include/time.h" 3 4
# endif
# 49 "/usr/include/time.h" 3 4
#endif /* <time.h> included. */
# 51 "/usr/include/time.h" 3 4
#if !defined __clock_t_defined && (defined _TIME_H || defined __need_clock_t)
# define __clock_t_defined 1
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 55 "/usr/include/time.h" 3 4
# 56 "/usr/include/time.h" 3 4
__BEGIN_NAMESPACE_STD
/* Returned by `clock'. */
typedef __clock_t clock_t;
__END_NAMESPACE_STD
#if defined __USE_XOPEN || defined __USE_POSIX
__USING_NAMESPACE_STD(clock_t)
#endif
# 64 "/usr/include/time.h" 3 4
#endif /* clock_t not defined and <time.h> or need clock_t. */
# 66 "/usr/include/time.h" 3 4
#undef __need_clock_t
#if !defined __time_t_defined && (defined _TIME_H || defined __need_time_t)
# define __time_t_defined 1
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 71 "/usr/include/time.h" 3 4
# 72 "/usr/include/time.h" 3 4
__BEGIN_NAMESPACE_STD
/* Returned by `time'. */
typedef __time_t time_t;
__END_NAMESPACE_STD
#ifdef __USE_POSIX
__USING_NAMESPACE_STD(time_t)
#endif
# 80 "/usr/include/time.h" 3 4
#endif /* time_t not defined and <time.h> or need time_t. */
# 82 "/usr/include/time.h" 3 4
#undef __need_time_t
#if !defined __clockid_t_defined && \
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_clockid_t)
# define __clockid_t_defined 1
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 88 "/usr/include/time.h" 3 4
# 89 "/usr/include/time.h" 3 4
/* Clock ID used in clock and timer functions. */
typedef __clockid_t clockid_t;
#endif /* clockid_t not defined and <time.h> or need clockid_t. */
# 94 "/usr/include/time.h" 3 4
#undef __clockid_time_t
#if !defined __timer_t_defined && \
((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timer_t)
# define __timer_t_defined 1
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 100 "/usr/include/time.h" 3 4
# 101 "/usr/include/time.h" 3 4
/* Timer ID returned by `timer_create'. */
typedef __timer_t timer_t;
#endif /* timer_t not defined and <time.h> or need timer_t. */
# 106 "/usr/include/time.h" 3 4
#undef __need_timer_t
#if (!defined __timespec_defined \
&& ((defined _TIME_H \
&& (defined __USE_POSIX199309 \
|| defined __USE_ISOC11)) \
|| defined __need_timespec))
# define __timespec_defined 1
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h> /* This defines __time_t for us. */
#endif /* expanded by -frewrite-includes */
# 116 "/usr/include/time.h" 3 4
# 117 "/usr/include/time.h" 3 4
/* POSIX.1b structure for a time value. This is like a `struct timeval' but
has nanoseconds instead of microseconds. */
struct timespec
{
__time_t tv_sec; /* Seconds. */
__syscall_slong_t tv_nsec; /* Nanoseconds. */
};
#endif /* timespec not defined and <time.h> or need timespec. */
# 127 "/usr/include/time.h" 3 4
#undef __need_timespec
#ifdef _TIME_H
__BEGIN_NAMESPACE_STD
/* Used by other time functions. */
struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
# ifdef __USE_MISC
long int tm_gmtoff; /* Seconds east of UTC. */
const char *tm_zone; /* Timezone abbreviation. */
# else
# 149 "/usr/include/time.h" 3 4
long int __tm_gmtoff; /* Seconds east of UTC. */
const char *__tm_zone; /* Timezone abbreviation. */
# endif
# 152 "/usr/include/time.h" 3 4
};
__END_NAMESPACE_STD
#if defined __USE_XOPEN || defined __USE_POSIX
__USING_NAMESPACE_STD(tm)
#endif
# 157 "/usr/include/time.h" 3 4
# ifdef __USE_POSIX199309
/* POSIX.1b structure for timer start values and intervals. */
struct itimerspec
{
struct timespec it_interval;
struct timespec it_value;
};
/* We can use a simple forward declaration. */
struct sigevent;
# endif /* POSIX.1b */
# 171 "/usr/include/time.h" 3 4
# ifdef __USE_XOPEN2K
# ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
# endif
# 177 "/usr/include/time.h" 3 4
# endif
# 178 "/usr/include/time.h" 3 4
# ifdef __USE_ISOC11
/* Time base values for timespec_get. */
# define TIME_UTC 1
# endif
# 184 "/usr/include/time.h" 3 4
__BEGIN_NAMESPACE_STD
/* Time used by the program so far (user time + system time).
The result / CLOCKS_PER_SECOND is program time in seconds. */
extern clock_t clock (void) __THROW;
/* Return the current time and put it in *TIMER if TIMER is not NULL. */
extern time_t time (time_t *__timer) __THROW;
/* Return the difference between TIME1 and TIME0. */
extern double difftime (time_t __time1, time_t __time0)
__THROW __attribute__ ((__const__));
/* Return the `time_t' representation of TP and normalize TP. */
extern time_t mktime (struct tm *__tp) __THROW;
/* Format TP into S according to FORMAT.
Write no more than MAXSIZE characters and return the number
of characters written, or 0 if it would exceed MAXSIZE. */
extern size_t strftime (char *__restrict __s, size_t __maxsize,
const char *__restrict __format,
const struct tm *__restrict __tp) __THROW;
__END_NAMESPACE_STD
# ifdef __USE_XOPEN
/* Parse S according to FORMAT and store binary time information in TP.
The return value is a pointer to the first unparsed character in S. */
extern char *strptime (const char *__restrict __s,
const char *__restrict __fmt, struct tm *__tp)
__THROW;
# endif
# 217 "/usr/include/time.h" 3 4
# ifdef __USE_XOPEN2K8
/* Similar to the two functions above but take the information from
the provided locale and not the global locale. */
#if 0 /* expanded by -frewrite-includes */
# include <xlocale.h>
#endif /* expanded by -frewrite-includes */
# 221 "/usr/include/time.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/xlocale.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/xlocale.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <xlocale.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/xlocale.h" 3
# 1 "/usr/include/xlocale.h" 1 3 4
/* Definition of locale datatype.
Copyright (C) 1997-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _XLOCALE_H
#define _XLOCALE_H 1
/* Structure for reentrant locale using functions. This is an
(almost) opaque type for the user level programs. The file and
this data structure is not standardized. Don't rely on it. It can
go away without warning. */
typedef struct __locale_struct
{
/* Note: LC_ALL is not a valid index into this array. */
struct __locale_data *__locales[13]; /* 13 = __LC_LAST. */
/* To increase the speed of this solution we add some special members. */
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
/* Note: LC_ALL is not a valid index into this array. */
const char *__names[13];
} *__locale_t;
/* POSIX 2008 makes locale_t official. */
typedef __locale_t locale_t;
#endif /* xlocale.h */
# 45 "/usr/include/xlocale.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/xlocale.h" 2 3
#pragma GCC visibility pop
# 222 "/usr/include/time.h" 2 3 4
extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
const char *__restrict __format,
const struct tm *__restrict __tp,
__locale_t __loc) __THROW;
# endif
# 228 "/usr/include/time.h" 3 4
# ifdef __USE_GNU
extern char *strptime_l (const char *__restrict __s,
const char *__restrict __fmt, struct tm *__tp,
__locale_t __loc) __THROW;
# endif
# 234 "/usr/include/time.h" 3 4
__BEGIN_NAMESPACE_STD
/* Return the `struct tm' representation of *TIMER
in Universal Coordinated Time (aka Greenwich Mean Time). */
extern struct tm *gmtime (const time_t *__timer) __THROW;
/* Return the `struct tm' representation
of *TIMER in the local timezone. */
extern struct tm *localtime (const time_t *__timer) __THROW;
__END_NAMESPACE_STD
# ifdef __USE_POSIX
/* Return the `struct tm' representation of *TIMER in UTC,
using *TP to store the result. */
extern struct tm *gmtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp) __THROW;
/* Return the `struct tm' representation of *TIMER in local time,
using *TP to store the result. */
extern struct tm *localtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp) __THROW;
# endif /* POSIX */
# 257 "/usr/include/time.h" 3 4
__BEGIN_NAMESPACE_STD
/* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
that is the representation of TP in this format. */
extern char *asctime (const struct tm *__tp) __THROW;
/* Equivalent to `asctime (localtime (timer))'. */
extern char *ctime (const time_t *__timer) __THROW;
__END_NAMESPACE_STD
# ifdef __USE_POSIX
/* Reentrant versions of the above functions. */
/* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
that is the representation of TP in this format. */
extern char *asctime_r (const struct tm *__restrict __tp,
char *__restrict __buf) __THROW;
/* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
extern char *ctime_r (const time_t *__restrict __timer,
char *__restrict __buf) __THROW;
# endif /* POSIX */
# 279 "/usr/include/time.h" 3 4
/* Defined in localtime.c. */
extern char *__tzname[2]; /* Current timezone names. */
extern int __daylight; /* If daylight-saving time is ever in use. */
extern long int __timezone; /* Seconds west of UTC. */
# ifdef __USE_POSIX
/* Same as above. */
extern char *tzname[2];
/* Set time conversion information from the TZ environment variable.
If TZ is not defined, a locale-dependent default is used. */
extern void tzset (void) __THROW;
# endif
# 295 "/usr/include/time.h" 3 4
# if defined __USE_MISC || defined __USE_XOPEN
extern int daylight;
extern long int timezone;
# endif
# 300 "/usr/include/time.h" 3 4
# ifdef __USE_MISC
/* Set the system time to *WHEN.
This call is restricted to the superuser. */
extern int stime (const time_t *__when) __THROW;
# endif
# 306 "/usr/include/time.h" 3 4
/* Nonzero if YEAR is a leap year (every 4 years,
except every 100th isn't, and every 400th is). */
# define __isleap(year) \
((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
# ifdef __USE_MISC
/* Miscellaneous functions many Unices inherited from the public domain
localtime package. These are included only for compatibility. */
/* Like `mktime', but for TP represents Universal Time, not local time. */
extern time_t timegm (struct tm *__tp) __THROW;
/* Another name for `mktime'. */
extern time_t timelocal (struct tm *__tp) __THROW;
/* Return the number of days in YEAR. */
extern int dysize (int __year) __THROW __attribute__ ((__const__));
# endif
# 327 "/usr/include/time.h" 3 4
# ifdef __USE_POSIX199309
/* Pause execution for a number of nanoseconds.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int nanosleep (const struct timespec *__requested_time,
struct timespec *__remaining);
/* Get resolution of clock CLOCK_ID. */
extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __THROW;
/* Get current value of clock CLOCK_ID and store it in TP. */
extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
/* Set clock CLOCK_ID to value TP. */
extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
__THROW;
# ifdef __USE_XOPEN2K
/* High-resolution sleep with the specified clock.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int clock_nanosleep (clockid_t __clock_id, int __flags,
const struct timespec *__req,
struct timespec *__rem);
/* Return clock ID for CPU-time clock. */
extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
# endif
# 360 "/usr/include/time.h" 3 4
/* Create new per-process timer using CLOCK_ID. */
extern int timer_create (clockid_t __clock_id,
struct sigevent *__restrict __evp,
timer_t *__restrict __timerid) __THROW;
/* Delete timer TIMERID. */
extern int timer_delete (timer_t __timerid) __THROW;
/* Set timer TIMERID to VALUE, returning old value in OVALUE. */
extern int timer_settime (timer_t __timerid, int __flags,
const struct itimerspec *__restrict __value,
struct itimerspec *__restrict __ovalue) __THROW;
/* Get current value of timer TIMERID and store it in VALUE. */
extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
__THROW;
/* Get expiration overrun for timer TIMERID. */
extern int timer_getoverrun (timer_t __timerid) __THROW;
# endif
# 382 "/usr/include/time.h" 3 4
# ifdef __USE_ISOC11
/* Set TS to calendar time based in time base BASE. */
extern int timespec_get (struct timespec *__ts, int __base)
__THROW __nonnull ((1));
# endif
# 389 "/usr/include/time.h" 3 4
# ifdef __USE_XOPEN_EXTENDED
/* Set to one of the following values to indicate an error.
1 the DATEMSK environment variable is null or undefined,
2 the template file cannot be opened for reading,
3 failed to get file status information,
4 the template file is not a regular file,
5 an error is encountered while reading the template file,
6 memory allication failed (not enough memory available),
7 there is no line in the template that matches the input,
8 invalid input specification Example: February 31 or a time is
specified that can not be represented in a time_t (representing
the time in seconds since 00:00:00 UTC, January 1, 1970) */
extern int getdate_err;
/* Parse the given string as a date specification and return a value
representing the value. The templates from the file identified by
the environment variable DATEMSK are used. In case of an error
`getdate_err' is set.
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern struct tm *getdate (const char *__string);
# endif
# 414 "/usr/include/time.h" 3 4
# ifdef __USE_GNU
/* Since `getdate' is not reentrant because of the use of `getdate_err'
and the static buffer to return the result in, we provide a thread-safe
variant. The functionality is the same. The result is returned in
the buffer pointed to by RESBUFP and in case of an error the return
value is != 0 with the same values as given above for `getdate_err'.
This function is not part of POSIX and therefore no official
cancellation point. But due to similarity with an POSIX interface
or due to the implementation it is a cancellation point and
therefore not marked with __THROW. */
extern int getdate_r (const char *__restrict __string,
struct tm *__restrict __resbufp);
# endif
# 429 "/usr/include/time.h" 3 4
__END_DECLS
#endif /* <time.h> included. */
# 433 "/usr/include/time.h" 3 4
#endif /* <time.h> not already included. */
# 435 "/usr/include/time.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 2 3
#pragma GCC visibility pop
# 36 "/usr/include/glib-2.0/glib/gtypes.h" 2 3
G_BEGIN_DECLS
/* Provide type definitions for commonly used types.
* These are useful because a "gint8" can be adjusted
* to be 1 byte (8 bits) on all platforms. Similarly and
* more importantly, "gint32" can be adjusted to be
* 4 bytes (32 bits) on all platforms.
*/
typedef char gchar;
typedef short gshort;
typedef long glong;
typedef int gint;
typedef gint gboolean;
typedef unsigned char guchar;
typedef unsigned short gushort;
typedef unsigned long gulong;
typedef unsigned int guint;
typedef float gfloat;
typedef double gdouble;
/* Define min and max constants for the fixed size numerical types */
#define G_MININT8 ((gint8) -0x80)
#define G_MAXINT8 ((gint8) 0x7f)
#define G_MAXUINT8 ((guint8) 0xff)
#define G_MININT16 ((gint16) -0x8000)
#define G_MAXINT16 ((gint16) 0x7fff)
#define G_MAXUINT16 ((guint16) 0xffff)
#define G_MININT32 ((gint32) -0x80000000)
#define G_MAXINT32 ((gint32) 0x7fffffff)
#define G_MAXUINT32 ((guint32) 0xffffffff)
#define G_MININT64 ((gint64) G_GINT64_CONSTANT(-0x8000000000000000))
#define G_MAXINT64 G_GINT64_CONSTANT(0x7fffffffffffffff)
#define G_MAXUINT64 G_GUINT64_CONSTANT(0xffffffffffffffff)
typedef void* gpointer;
typedef const void *gconstpointer;
typedef gint (*GCompareFunc) (gconstpointer a,
gconstpointer b);
typedef gint (*GCompareDataFunc) (gconstpointer a,
gconstpointer b,
gpointer user_data);
typedef gboolean (*GEqualFunc) (gconstpointer a,
gconstpointer b);
typedef void (*GDestroyNotify) (gpointer data);
typedef void (*GFunc) (gpointer data,
gpointer user_data);
typedef guint (*GHashFunc) (gconstpointer key);
typedef void (*GHFunc) (gpointer key,
gpointer value,
gpointer user_data);
/**
* GFreeFunc:
* @data: a data pointer
*
* Declares a type of function which takes an arbitrary
* data pointer argument and has no return value. It is
* not currently used in GLib or GTK+.
*/
typedef void (*GFreeFunc) (gpointer data);
/**
* GTranslateFunc:
* @str: the untranslated string
* @data: user data specified when installing the function, e.g.
* in g_option_group_set_translate_func()
*
* The type of functions which are used to translate user-visible
* strings, for <option>--help</option> output.
*
* Returns: a translation of the string for the current locale.
* The returned string is owned by GLib and must not be freed.
*/
typedef const gchar * (*GTranslateFunc) (const gchar *str,
gpointer data);
/* Define some mathematical constants that aren't available
* symbolically in some strict ISO C implementations.
*
* Note that the large number of digits used in these definitions
* doesn't imply that GLib or current computers in general would be
* able to handle floating point numbers with an accuracy like this.
* It's mostly an exercise in futility and future proofing. For
* extended precision floating point support, look somewhere else
* than GLib.
*/
#define G_E 2.7182818284590452353602874713526624977572470937000
#define G_LN2 0.69314718055994530941723212145817656807550013436026
#define G_LN10 2.3025850929940456840179914546843642076011014886288
#define G_PI 3.1415926535897932384626433832795028841971693993751
#define G_PI_2 1.5707963267948966192313216916397514420985846996876
#define G_PI_4 0.78539816339744830961566084581987572104929234984378
#define G_SQRT2 1.4142135623730950488016887242096980785696718753769
/* Portable endian checks and conversions
*
* glibconfig.h defines G_BYTE_ORDER which expands to one of
* the below macros.
*/
#define G_LITTLE_ENDIAN 1234
#define G_BIG_ENDIAN 4321
#define G_PDP_ENDIAN 3412 /* unused, need specific PDP check */
/* Basic bit swapping functions
*/
#define GUINT16_SWAP_LE_BE_CONSTANT(val) ((guint16) ( \
(guint16) ((guint16) (val) >> 8) | \
(guint16) ((guint16) (val) << 8)))
#define GUINT32_SWAP_LE_BE_CONSTANT(val) ((guint32) ( \
(((guint32) (val) & (guint32) 0x000000ffU) << 24) | \
(((guint32) (val) & (guint32) 0x0000ff00U) << 8) | \
(((guint32) (val) & (guint32) 0x00ff0000U) >> 8) | \
(((guint32) (val) & (guint32) 0xff000000U) >> 24)))
#define GUINT64_SWAP_LE_BE_CONSTANT(val) ((guint64) ( \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x00000000000000ffU)) << 56) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x000000000000ff00U)) << 40) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x0000000000ff0000U)) << 24) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x00000000ff000000U)) << 8) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x000000ff00000000U)) >> 8) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x0000ff0000000000U)) >> 24) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0x00ff000000000000U)) >> 40) | \
(((guint64) (val) & \
(guint64) G_GINT64_CONSTANT (0xff00000000000000U)) >> 56)))
/* Arch specific stuff for speed
*/
#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__)
# if __GNUC__ >= 4 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 3
# define GUINT32_SWAP_LE_BE(val) ((guint32) __builtin_bswap32 ((gint32) (val)))
# define GUINT64_SWAP_LE_BE(val) ((guint64) __builtin_bswap64 ((gint64) (val)))
# endif
# 187 "/usr/include/glib-2.0/glib/gtypes.h" 3
# if defined (__i386__)
# define GUINT16_SWAP_LE_BE_IA32(val) \
(G_GNUC_EXTENSION \
({ guint16 __v, __x = ((guint16) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT16_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ ("rorw $8, %w0" \
: "=r" (__v) \
: "0" (__x) \
: "cc"); \
__v; }))
# if !defined (__i486__) && !defined (__i586__) \
&& !defined (__pentium__) && !defined (__i686__) \
&& !defined (__pentiumpro__) && !defined (__pentium4__)
# define GUINT32_SWAP_LE_BE_IA32(val) \
(G_GNUC_EXTENSION \
({ guint32 __v, __x = ((guint32) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ ("rorw $8, %w0\n\t" \
"rorl $16, %0\n\t" \
"rorw $8, %w0" \
: "=r" (__v) \
: "0" (__x) \
: "cc"); \
__v; }))
# else /* 486 and higher has bswap */
# 217 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GUINT32_SWAP_LE_BE_IA32(val) \
(G_GNUC_EXTENSION \
({ guint32 __v, __x = ((guint32) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ ("bswap %0" \
: "=r" (__v) \
: "0" (__x)); \
__v; }))
# endif /* processor specific 32-bit stuff */
# 228 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GUINT64_SWAP_LE_BE_IA32(val) \
(G_GNUC_EXTENSION \
({ union { guint64 __ll; \
guint32 __l[2]; } __w, __r; \
__w.__ll = ((guint64) (val)); \
if (__builtin_constant_p (__w.__ll)) \
__r.__ll = GUINT64_SWAP_LE_BE_CONSTANT (__w.__ll); \
else \
{ \
__r.__l[0] = GUINT32_SWAP_LE_BE (__w.__l[1]); \
__r.__l[1] = GUINT32_SWAP_LE_BE (__w.__l[0]); \
} \
__r.__ll; }))
/* Possibly just use the constant version and let gcc figure it out? */
# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_IA32 (val))
# ifndef GUINT32_SWAP_LE_BE
# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_IA32 (val))
# endif
# 246 "/usr/include/glib-2.0/glib/gtypes.h" 3
# ifndef GUINT64_SWAP_LE_BE
# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_IA32 (val))
# endif
# 249 "/usr/include/glib-2.0/glib/gtypes.h" 3
# elif defined (__ia64__)
# 250 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GUINT16_SWAP_LE_BE_IA64(val) \
(G_GNUC_EXTENSION \
({ guint16 __v, __x = ((guint16) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT16_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ __volatile__ ("shl %0 = %1, 48 ;;" \
"mux1 %0 = %0, @rev ;;" \
: "=r" (__v) \
: "r" (__x)); \
__v; }))
# define GUINT32_SWAP_LE_BE_IA64(val) \
(G_GNUC_EXTENSION \
({ guint32 __v, __x = ((guint32) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ __volatile__ ("shl %0 = %1, 32 ;;" \
"mux1 %0 = %0, @rev ;;" \
: "=r" (__v) \
: "r" (__x)); \
__v; }))
# define GUINT64_SWAP_LE_BE_IA64(val) \
(G_GNUC_EXTENSION \
({ guint64 __v, __x = ((guint64) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT64_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ __volatile__ ("mux1 %0 = %1, @rev ;;" \
: "=r" (__v) \
: "r" (__x)); \
__v; }))
# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_IA64 (val))
# ifndef GUINT32_SWAP_LE_BE
# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_IA64 (val))
# endif
# 286 "/usr/include/glib-2.0/glib/gtypes.h" 3
# ifndef GUINT64_SWAP_LE_BE
# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_IA64 (val))
# endif
# 289 "/usr/include/glib-2.0/glib/gtypes.h" 3
# elif defined (__x86_64__)
# 290 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GUINT32_SWAP_LE_BE_X86_64(val) \
(G_GNUC_EXTENSION \
({ guint32 __v, __x = ((guint32) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ ("bswapl %0" \
: "=r" (__v) \
: "0" (__x)); \
__v; }))
# define GUINT64_SWAP_LE_BE_X86_64(val) \
(G_GNUC_EXTENSION \
({ guint64 __v, __x = ((guint64) (val)); \
if (__builtin_constant_p (__x)) \
__v = GUINT64_SWAP_LE_BE_CONSTANT (__x); \
else \
__asm__ ("bswapq %0" \
: "=r" (__v) \
: "0" (__x)); \
__v; }))
/* gcc seems to figure out optimal code for this on its own */
# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
# ifndef GUINT32_SWAP_LE_BE
# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val))
# endif
# 315 "/usr/include/glib-2.0/glib/gtypes.h" 3
# ifndef GUINT64_SWAP_LE_BE
# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86_64 (val))
# endif
# 318 "/usr/include/glib-2.0/glib/gtypes.h" 3
# else /* generic gcc */
# 319 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
# ifndef GUINT32_SWAP_LE_BE
# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val))
# endif
# 323 "/usr/include/glib-2.0/glib/gtypes.h" 3
# ifndef GUINT64_SWAP_LE_BE
# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val))
# endif
# 326 "/usr/include/glib-2.0/glib/gtypes.h" 3
# endif
# 327 "/usr/include/glib-2.0/glib/gtypes.h" 3
#else /* generic */
# 328 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val))
# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val))
# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val))
#endif /* generic */
# 332 "/usr/include/glib-2.0/glib/gtypes.h" 3
#define GUINT16_SWAP_LE_PDP(val) ((guint16) (val))
#define GUINT16_SWAP_BE_PDP(val) (GUINT16_SWAP_LE_BE (val))
#define GUINT32_SWAP_LE_PDP(val) ((guint32) ( \
(((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \
(((guint32) (val) & (guint32) 0xffff0000U) >> 16)))
#define GUINT32_SWAP_BE_PDP(val) ((guint32) ( \
(((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \
(((guint32) (val) & (guint32) 0xff00ff00U) >> 8)))
/* The G*_TO_?E() macros are defined in glibconfig.h.
* The transformation is symmetric, so the FROM just maps to the TO.
*/
#define GINT16_FROM_LE(val) (GINT16_TO_LE (val))
#define GUINT16_FROM_LE(val) (GUINT16_TO_LE (val))
#define GINT16_FROM_BE(val) (GINT16_TO_BE (val))
#define GUINT16_FROM_BE(val) (GUINT16_TO_BE (val))
#define GINT32_FROM_LE(val) (GINT32_TO_LE (val))
#define GUINT32_FROM_LE(val) (GUINT32_TO_LE (val))
#define GINT32_FROM_BE(val) (GINT32_TO_BE (val))
#define GUINT32_FROM_BE(val) (GUINT32_TO_BE (val))
#define GINT64_FROM_LE(val) (GINT64_TO_LE (val))
#define GUINT64_FROM_LE(val) (GUINT64_TO_LE (val))
#define GINT64_FROM_BE(val) (GINT64_TO_BE (val))
#define GUINT64_FROM_BE(val) (GUINT64_TO_BE (val))
#define GLONG_FROM_LE(val) (GLONG_TO_LE (val))
#define GULONG_FROM_LE(val) (GULONG_TO_LE (val))
#define GLONG_FROM_BE(val) (GLONG_TO_BE (val))
#define GULONG_FROM_BE(val) (GULONG_TO_BE (val))
#define GINT_FROM_LE(val) (GINT_TO_LE (val))
#define GUINT_FROM_LE(val) (GUINT_TO_LE (val))
#define GINT_FROM_BE(val) (GINT_TO_BE (val))
#define GUINT_FROM_BE(val) (GUINT_TO_BE (val))
#define GSIZE_FROM_LE(val) (GSIZE_TO_LE (val))
#define GSSIZE_FROM_LE(val) (GSSIZE_TO_LE (val))
#define GSIZE_FROM_BE(val) (GSIZE_TO_BE (val))
#define GSSIZE_FROM_BE(val) (GSSIZE_TO_BE (val))
/* Portable versions of host-network order stuff
*/
#define g_ntohl(val) (GUINT32_FROM_BE (val))
#define g_ntohs(val) (GUINT16_FROM_BE (val))
#define g_htonl(val) (GUINT32_TO_BE (val))
#define g_htons(val) (GUINT16_TO_BE (val))
/* Overflow-checked unsigned integer arithmetic
*/
#ifndef _GLIB_TEST_OVERFLOW_FALLBACK
/* https://bugzilla.gnome.org/show_bug.cgi?id=769104 */
#if __GNUC__ >= 5 && !defined(__INTEL_COMPILER)
#define _GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS
#elif __has_builtin(__builtin_uadd_overflow)
# 388 "/usr/include/glib-2.0/glib/gtypes.h" 3
#define _GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS
#endif
# 390 "/usr/include/glib-2.0/glib/gtypes.h" 3
#endif
# 391 "/usr/include/glib-2.0/glib/gtypes.h" 3
#define g_uint_checked_add(dest, a, b) \
_GLIB_CHECKED_ADD_U32(dest, a, b)
#define g_uint_checked_mul(dest, a, b) \
_GLIB_CHECKED_MUL_U32(dest, a, b)
#define g_uint64_checked_add(dest, a, b) \
_GLIB_CHECKED_ADD_U64(dest, a, b)
#define g_uint64_checked_mul(dest, a, b) \
_GLIB_CHECKED_MUL_U64(dest, a, b)
#if GLIB_SIZEOF_SIZE_T == 8
#define g_size_checked_add(dest, a, b) \
_GLIB_CHECKED_ADD_U64(dest, a, b)
#define g_size_checked_mul(dest, a, b) \
_GLIB_CHECKED_MUL_U64(dest, a, b)
#else
# 408 "/usr/include/glib-2.0/glib/gtypes.h" 3
#define g_size_checked_add(dest, a, b) \
_GLIB_CHECKED_ADD_U32(dest, a, b)
#define g_size_checked_mul(dest, a, b) \
_GLIB_CHECKED_MUL_U32(dest, a, b)
#endif
# 413 "/usr/include/glib-2.0/glib/gtypes.h" 3
/* The names of the following inlines are private. Use the macro
* definitions above.
*/
#ifdef _GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS
static inline gboolean _GLIB_CHECKED_ADD_U32 (guint32 *dest, guint32 a, guint32 b) {
return !__builtin_uadd_overflow(a, b, dest); }
static inline gboolean _GLIB_CHECKED_MUL_U32 (guint32 *dest, guint32 a, guint32 b) {
return !__builtin_umul_overflow(a, b, dest); }
static inline gboolean _GLIB_CHECKED_ADD_U64 (guint64 *dest, guint64 a, guint64 b) {
G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64));
return !__builtin_uaddll_overflow(a, b, (unsigned long long *) dest); }
static inline gboolean _GLIB_CHECKED_MUL_U64 (guint64 *dest, guint64 a, guint64 b) {
return !__builtin_umulll_overflow(a, b, (unsigned long long *) dest); }
#else
# 428 "/usr/include/glib-2.0/glib/gtypes.h" 3
static inline gboolean _GLIB_CHECKED_ADD_U32 (guint32 *dest, guint32 a, guint32 b) {
*dest = a + b; return *dest >= a; }
static inline gboolean _GLIB_CHECKED_MUL_U32 (guint32 *dest, guint32 a, guint32 b) {
*dest = a * b; return !a || *dest / a == b; }
static inline gboolean _GLIB_CHECKED_ADD_U64 (guint64 *dest, guint64 a, guint64 b) {
*dest = a + b; return *dest >= a; }
static inline gboolean _GLIB_CHECKED_MUL_U64 (guint64 *dest, guint64 a, guint64 b) {
*dest = a * b; return !a || *dest / a == b; }
#endif
# 437 "/usr/include/glib-2.0/glib/gtypes.h" 3
/* IEEE Standard 754 Single Precision Storage Format (gfloat):
*
* 31 30 23 22 0
* +--------+---------------+---------------+
* | s 1bit | e[30:23] 8bit | f[22:0] 23bit |
* +--------+---------------+---------------+
* B0------------------->B1------->B2-->B3-->
*
* IEEE Standard 754 Double Precision Storage Format (gdouble):
*
* 63 62 52 51 32 31 0
* +--------+----------------+----------------+ +---------------+
* | s 1bit | e[62:52] 11bit | f[51:32] 20bit | | f[31:0] 32bit |
* +--------+----------------+----------------+ +---------------+
* B0--------------->B1---------->B2--->B3----> B4->B5->B6->B7->
*/
/* subtract from biased_exponent to form base2 exponent (normal numbers) */
typedef union _GDoubleIEEE754 GDoubleIEEE754;
typedef union _GFloatIEEE754 GFloatIEEE754;
#define G_IEEE754_FLOAT_BIAS (127)
#define G_IEEE754_DOUBLE_BIAS (1023)
/* multiply with base2 exponent to get base10 exponent (normal numbers) */
#define G_LOG_2_BASE_10 (0.30102999566398119521)
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
union _GFloatIEEE754
{
gfloat v_float;
struct {
guint mantissa : 23;
guint biased_exponent : 8;
guint sign : 1;
} mpn;
};
union _GDoubleIEEE754
{
gdouble v_double;
struct {
guint mantissa_low : 32;
guint mantissa_high : 20;
guint biased_exponent : 11;
guint sign : 1;
} mpn;
};
#elif G_BYTE_ORDER == G_BIG_ENDIAN
# 482 "/usr/include/glib-2.0/glib/gtypes.h" 3
union _GFloatIEEE754
{
gfloat v_float;
struct {
guint sign : 1;
guint biased_exponent : 8;
guint mantissa : 23;
} mpn;
};
union _GDoubleIEEE754
{
gdouble v_double;
struct {
guint sign : 1;
guint biased_exponent : 11;
guint mantissa_high : 20;
guint mantissa_low : 32;
} mpn;
};
#else /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */
# 502 "/usr/include/glib-2.0/glib/gtypes.h" 3
#error unknown ENDIAN type
#endif /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */
# 504 "/usr/include/glib-2.0/glib/gtypes.h" 3
typedef struct _GTimeVal GTimeVal;
struct _GTimeVal
{
glong tv_sec;
glong tv_usec;
};
G_END_DECLS
/* We prefix variable declarations so they can
* properly get exported in Windows DLLs.
*/
#ifndef GLIB_VAR
# ifdef G_PLATFORM_WIN32
# ifdef GLIB_STATIC_COMPILATION
# define GLIB_VAR extern
# else /* !GLIB_STATIC_COMPILATION */
# 523 "/usr/include/glib-2.0/glib/gtypes.h" 3
# ifdef GLIB_COMPILATION
# ifdef DLL_EXPORT
# define GLIB_VAR __declspec(dllexport)
# else /* !DLL_EXPORT */
# 527 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GLIB_VAR extern
# endif /* !DLL_EXPORT */
# 529 "/usr/include/glib-2.0/glib/gtypes.h" 3
# else /* !GLIB_COMPILATION */
# 530 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GLIB_VAR extern __declspec(dllimport)
# endif /* !GLIB_COMPILATION */
# 532 "/usr/include/glib-2.0/glib/gtypes.h" 3
# endif /* !GLIB_STATIC_COMPILATION */
# 533 "/usr/include/glib-2.0/glib/gtypes.h" 3
# else /* !G_PLATFORM_WIN32 */
# 534 "/usr/include/glib-2.0/glib/gtypes.h" 3
# define GLIB_VAR _GLIB_EXTERN
# endif /* !G_PLATFORM_WIN32 */
# 536 "/usr/include/glib-2.0/glib/gtypes.h" 3
#endif /* GLIB_VAR */
# 537 "/usr/include/glib-2.0/glib/gtypes.h" 3
#endif /* __G_TYPES_H__ */
# 539 "/usr/include/glib-2.0/glib/gtypes.h" 3
# 33 "/usr/include/glib-2.0/glib/galloca.h" 2 3
#if defined(__BIONIC__) && defined (GLIB_HAVE_ALLOCA_H)
#if 0 /* expanded by -frewrite-includes */
# include <alloca.h>
#endif /* expanded by -frewrite-includes */
# 35 "/usr/include/glib-2.0/glib/galloca.h" 3
# 36 "/usr/include/glib-2.0/glib/galloca.h" 3
#elif defined(__GNUC__)
# 37 "/usr/include/glib-2.0/glib/galloca.h" 3
/* GCC does the right thing */
# undef alloca
# define alloca(size) __builtin_alloca (size)
#elif defined (GLIB_HAVE_ALLOCA_H)
# 41 "/usr/include/glib-2.0/glib/galloca.h" 3
/* a native and working alloca.h is there */
#if 0 /* expanded by -frewrite-includes */
# include <alloca.h>
#endif /* expanded by -frewrite-includes */
# 42 "/usr/include/glib-2.0/glib/galloca.h" 3
# 43 "/usr/include/glib-2.0/glib/galloca.h" 3
#else /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */
# 44 "/usr/include/glib-2.0/glib/galloca.h" 3
# if defined(_MSC_VER) || defined(__DMC__)
#if 0 /* expanded by -frewrite-includes */
# include <malloc.h>
#endif /* expanded by -frewrite-includes */
# 45 "/usr/include/glib-2.0/glib/galloca.h" 3
# 46 "/usr/include/glib-2.0/glib/galloca.h" 3
# define alloca _alloca
# else /* !_MSC_VER && !__DMC__ */
# 48 "/usr/include/glib-2.0/glib/galloca.h" 3
# ifdef _AIX
# pragma alloca
# else /* !_AIX */
# 51 "/usr/include/glib-2.0/glib/galloca.h" 3
# ifndef alloca /* predefined by HP cc +Olibcalls */
G_BEGIN_DECLS
char *alloca ();
G_END_DECLS
# endif /* !alloca */
# 56 "/usr/include/glib-2.0/glib/galloca.h" 3
# endif /* !_AIX */
# 57 "/usr/include/glib-2.0/glib/galloca.h" 3
# endif /* !_MSC_VER && !__DMC__ */
# 58 "/usr/include/glib-2.0/glib/galloca.h" 3
#endif /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */
# 59 "/usr/include/glib-2.0/glib/galloca.h" 3
/**
* g_alloca:
* @size: number of bytes to allocate.
*
* Allocates @size bytes on the stack; these bytes will be freed when the current
* stack frame is cleaned up. This macro essentially just wraps the alloca()
* function present on most UNIX variants.
* Thus it provides the same advantages and pitfalls as alloca():
*
* - alloca() is very fast, as on most systems it's implemented by just adjusting
* the stack pointer register.
*
* - It doesn't cause any memory fragmentation, within its scope, separate alloca()
* blocks just build up and are released together at function end.
*
* - Allocation sizes have to fit into the current stack frame. For instance in a
* threaded environment on Linux, the per-thread stack size is limited to 2 Megabytes,
* so be sparse with alloca() uses.
*
* - Allocation failure due to insufficient stack space is not indicated with a %NULL
* return like e.g. with malloc(). Instead, most systems probably handle it the same
* way as out of stack space situations from infinite function recursion, i.e.
* with a segmentation fault.
*
* - Special care has to be taken when mixing alloca() with GNU C variable sized arrays.
* Stack space allocated with alloca() in the same scope as a variable sized array
* will be freed together with the variable sized array upon exit of that scope, and
* not upon exit of the enclosing function scope.
*
* Returns: space for @size bytes, allocated on the stack
*/
#define g_alloca(size) alloca (size)
/**
* g_newa:
* @struct_type: Type of memory chunks to be allocated
* @n_structs: Number of chunks to be allocated
*
* Wraps g_alloca() in a more typesafe manner.
*
* Returns: Pointer to stack space for @n_structs chunks of type @struct_type
*/
#define g_newa(struct_type, n_structs) ((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs)))
#endif /* __G_ALLOCA_H__ */
# 104 "/usr/include/glib-2.0/glib/galloca.h" 3
# 31 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/garray.h>
#endif /* expanded by -frewrite-includes */
# 31 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/garray.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_ARRAY_H__
#define __G_ARRAY_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/garray.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/garray.h" 3
# 33 "/usr/include/glib-2.0/glib/garray.h" 3
G_BEGIN_DECLS
typedef struct _GBytes GBytes;
typedef struct _GArray GArray;
typedef struct _GByteArray GByteArray;
typedef struct _GPtrArray GPtrArray;
struct _GArray
{
gchar *data;
guint len;
};
struct _GByteArray
{
guint8 *data;
guint len;
};
struct _GPtrArray
{
gpointer *pdata;
guint len;
};
/* Resizable arrays. remove fills any cleared spot and shortens the
* array, while preserving the order. remove_fast will distort the
* order by moving the last element to the position of the removed.
*/
#define g_array_append_val(a,v) g_array_append_vals (a, &(v), 1)
#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &(v), 1)
#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1)
#define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)])
GLIB_AVAILABLE_IN_ALL
GArray* g_array_new (gboolean zero_terminated,
gboolean clear_,
guint element_size);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_sized_new (gboolean zero_terminated,
gboolean clear_,
guint element_size,
guint reserved_size);
GLIB_AVAILABLE_IN_ALL
gchar* g_array_free (GArray *array,
gboolean free_segment);
GLIB_AVAILABLE_IN_ALL
GArray *g_array_ref (GArray *array);
GLIB_AVAILABLE_IN_ALL
void g_array_unref (GArray *array);
GLIB_AVAILABLE_IN_ALL
guint g_array_get_element_size (GArray *array);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_append_vals (GArray *array,
gconstpointer data,
guint len);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_prepend_vals (GArray *array,
gconstpointer data,
guint len);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_insert_vals (GArray *array,
guint index_,
gconstpointer data,
guint len);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_set_size (GArray *array,
guint length);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_remove_index (GArray *array,
guint index_);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_remove_index_fast (GArray *array,
guint index_);
GLIB_AVAILABLE_IN_ALL
GArray* g_array_remove_range (GArray *array,
guint index_,
guint length);
GLIB_AVAILABLE_IN_ALL
void g_array_sort (GArray *array,
GCompareFunc compare_func);
GLIB_AVAILABLE_IN_ALL
void g_array_sort_with_data (GArray *array,
GCompareDataFunc compare_func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_array_set_clear_func (GArray *array,
GDestroyNotify clear_func);
/* Resizable pointer array. This interface is much less complicated
* than the above. Add appends a pointer. Remove fills any cleared
* spot and shortens the array. remove_fast will again distort order.
*/
#define g_ptr_array_index(array,index_) ((array)->pdata)[index_]
GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_new (void);
GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func);
GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_sized_new (guint reserved_size);
GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_new_full (guint reserved_size,
GDestroyNotify element_free_func);
GLIB_AVAILABLE_IN_ALL
gpointer* g_ptr_array_free (GPtrArray *array,
gboolean free_seg);
GLIB_AVAILABLE_IN_ALL
GPtrArray* g_ptr_array_ref (GPtrArray *array);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_unref (GPtrArray *array);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_set_free_func (GPtrArray *array,
GDestroyNotify element_free_func);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_set_size (GPtrArray *array,
gint length);
GLIB_AVAILABLE_IN_ALL
gpointer g_ptr_array_remove_index (GPtrArray *array,
guint index_);
GLIB_AVAILABLE_IN_ALL
gpointer g_ptr_array_remove_index_fast (GPtrArray *array,
guint index_);
GLIB_AVAILABLE_IN_ALL
gboolean g_ptr_array_remove (GPtrArray *array,
gpointer data);
GLIB_AVAILABLE_IN_ALL
gboolean g_ptr_array_remove_fast (GPtrArray *array,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GPtrArray *g_ptr_array_remove_range (GPtrArray *array,
guint index_,
guint length);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_add (GPtrArray *array,
gpointer data);
GLIB_AVAILABLE_IN_2_40
void g_ptr_array_insert (GPtrArray *array,
gint index_,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_sort (GPtrArray *array,
GCompareFunc compare_func);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_sort_with_data (GPtrArray *array,
GCompareDataFunc compare_func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_ptr_array_foreach (GPtrArray *array,
GFunc func,
gpointer user_data);
/* Byte arrays, an array of guint8. Implemented as a GArray,
* but type-safe.
*/
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_new (void);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_new_take (guint8 *data,
gsize len);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_sized_new (guint reserved_size);
GLIB_AVAILABLE_IN_ALL
guint8* g_byte_array_free (GByteArray *array,
gboolean free_segment);
GLIB_AVAILABLE_IN_ALL
GBytes* g_byte_array_free_to_bytes (GByteArray *array);
GLIB_AVAILABLE_IN_ALL
GByteArray *g_byte_array_ref (GByteArray *array);
GLIB_AVAILABLE_IN_ALL
void g_byte_array_unref (GByteArray *array);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_append (GByteArray *array,
const guint8 *data,
guint len);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_prepend (GByteArray *array,
const guint8 *data,
guint len);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_set_size (GByteArray *array,
guint length);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_remove_index (GByteArray *array,
guint index_);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_remove_index_fast (GByteArray *array,
guint index_);
GLIB_AVAILABLE_IN_ALL
GByteArray* g_byte_array_remove_range (GByteArray *array,
guint index_,
guint length);
GLIB_AVAILABLE_IN_ALL
void g_byte_array_sort (GByteArray *array,
GCompareFunc compare_func);
GLIB_AVAILABLE_IN_ALL
void g_byte_array_sort_with_data (GByteArray *array,
GCompareDataFunc compare_func,
gpointer user_data);
G_END_DECLS
#endif /* __G_ARRAY_H__ */
# 239 "/usr/include/glib-2.0/glib/garray.h" 3
# 32 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gasyncqueue.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gasyncqueue.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_ASYNCQUEUE_H__
#define __G_ASYNCQUEUE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gasyncqueue.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gthread.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gasyncqueue.h" 3
# 1 "/usr/include/glib-2.0/glib/gthread.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_THREAD_H__
#define __G_THREAD_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gthread.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gatomic.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gthread.h" 3
# 1 "/usr/include/glib-2.0/glib/gatomic.h" 1 3
/*
* Copyright © 2011 Ryan Lortie
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_ATOMIC_H__
#define __G_ATOMIC_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gatomic.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gatomic.h" 3
# 28 "/usr/include/glib-2.0/glib/gatomic.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
gint g_atomic_int_get (const volatile gint *atomic);
GLIB_AVAILABLE_IN_ALL
void g_atomic_int_set (volatile gint *atomic,
gint newval);
GLIB_AVAILABLE_IN_ALL
void g_atomic_int_inc (volatile gint *atomic);
GLIB_AVAILABLE_IN_ALL
gboolean g_atomic_int_dec_and_test (volatile gint *atomic);
GLIB_AVAILABLE_IN_ALL
gboolean g_atomic_int_compare_and_exchange (volatile gint *atomic,
gint oldval,
gint newval);
GLIB_AVAILABLE_IN_ALL
gint g_atomic_int_add (volatile gint *atomic,
gint val);
GLIB_AVAILABLE_IN_2_30
guint g_atomic_int_and (volatile guint *atomic,
guint val);
GLIB_AVAILABLE_IN_2_30
guint g_atomic_int_or (volatile guint *atomic,
guint val);
GLIB_AVAILABLE_IN_ALL
guint g_atomic_int_xor (volatile guint *atomic,
guint val);
GLIB_AVAILABLE_IN_ALL
gpointer g_atomic_pointer_get (const volatile void *atomic);
GLIB_AVAILABLE_IN_ALL
void g_atomic_pointer_set (volatile void *atomic,
gpointer newval);
GLIB_AVAILABLE_IN_ALL
gboolean g_atomic_pointer_compare_and_exchange (volatile void *atomic,
gpointer oldval,
gpointer newval);
GLIB_AVAILABLE_IN_ALL
gssize g_atomic_pointer_add (volatile void *atomic,
gssize val);
GLIB_AVAILABLE_IN_2_30
gsize g_atomic_pointer_and (volatile void *atomic,
gsize val);
GLIB_AVAILABLE_IN_2_30
gsize g_atomic_pointer_or (volatile void *atomic,
gsize val);
GLIB_AVAILABLE_IN_ALL
gsize g_atomic_pointer_xor (volatile void *atomic,
gsize val);
GLIB_DEPRECATED_IN_2_30_FOR(g_atomic_int_add)
gint g_atomic_int_exchange_and_add (volatile gint *atomic,
gint val);
G_END_DECLS
#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
/* We prefer the new C11-style atomic extension of GCC if available */
#if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
#define g_atomic_int_get(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
(gint) __atomic_load_4 ((atomic), __ATOMIC_SEQ_CST); \
}))
#define g_atomic_int_set(atomic, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (newval) : 0); \
__atomic_store_4 ((atomic), (newval), __ATOMIC_SEQ_CST); \
}))
#if GLIB_SIZEOF_VOID_P == 8
#define g_atomic_pointer_get(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(gpointer) __atomic_load_8 ((atomic), __ATOMIC_SEQ_CST); \
}))
#define g_atomic_pointer_set(atomic, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
__atomic_store_8 ((atomic), (gsize) (newval), __ATOMIC_SEQ_CST); \
}))
#else /* GLIB_SIZEOF_VOID_P == 8 */
# 118 "/usr/include/glib-2.0/glib/gatomic.h" 3
#define g_atomic_pointer_get(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(gpointer) __atomic_load_4 ((atomic), __ATOMIC_SEQ_CST); \
}))
#define g_atomic_pointer_set(atomic, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
__atomic_store_4 ((atomic), (gsize) (newval), __ATOMIC_SEQ_CST); \
}))
#endif /* GLIB_SIZEOF_VOID_P == 8 */
# 132 "/usr/include/glib-2.0/glib/gatomic.h" 3
#else /* defined(__ATOMIC_SEQ_CST) */
# 134 "/usr/include/glib-2.0/glib/gatomic.h" 3
#define g_atomic_int_get(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
__sync_synchronize (); \
(gint) *(atomic); \
}))
#define g_atomic_int_set(atomic, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (newval) : 0); \
*(atomic) = (newval); \
__sync_synchronize (); \
}))
#define g_atomic_pointer_get(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
__sync_synchronize (); \
(gpointer) *(atomic); \
}))
#define g_atomic_pointer_set(atomic, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
*(atomic) = (__typeof__ (*(atomic))) (gsize) (newval); \
__sync_synchronize (); \
}))
#endif /* !defined(__ATOMIC_SEQ_CST) */
# 164 "/usr/include/glib-2.0/glib/gatomic.h" 3
#define g_atomic_int_inc(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
(void) __sync_fetch_and_add ((atomic), 1); \
}))
#define g_atomic_int_dec_and_test(atomic) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ *(atomic) : 0); \
__sync_fetch_and_sub ((atomic), 1) == 1; \
}))
#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 0); \
(gboolean) __sync_bool_compare_and_swap ((atomic), (oldval), (newval)); \
}))
#define g_atomic_int_add(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (val) : 0); \
(gint) __sync_fetch_and_add ((atomic), (val)); \
}))
#define g_atomic_int_and(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (val) : 0); \
(guint) __sync_fetch_and_and ((atomic), (val)); \
}))
#define g_atomic_int_or(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (val) : 0); \
(guint) __sync_fetch_and_or ((atomic), (val)); \
}))
#define g_atomic_int_xor(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \
(void) (0 ? *(atomic) ^ (val) : 0); \
(guint) __sync_fetch_and_xor ((atomic), (val)); \
}))
#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
(gboolean) __sync_bool_compare_and_swap ((atomic), (oldval), (newval)); \
}))
#define g_atomic_pointer_add(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
(void) (0 ? (val) ^ (val) : 0); \
(gssize) __sync_fetch_and_add ((atomic), (val)); \
}))
#define g_atomic_pointer_and(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
(void) (0 ? (val) ^ (val) : 0); \
(gsize) __sync_fetch_and_and ((atomic), (val)); \
}))
#define g_atomic_pointer_or(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
(void) (0 ? (val) ^ (val) : 0); \
(gsize) __sync_fetch_and_or ((atomic), (val)); \
}))
#define g_atomic_pointer_xor(atomic, val) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(atomic) : 0); \
(void) (0 ? (val) ^ (val) : 0); \
(gsize) __sync_fetch_and_xor ((atomic), (val)); \
}))
#else /* defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */
# 244 "/usr/include/glib-2.0/glib/gatomic.h" 3
#define g_atomic_int_get(atomic) \
(g_atomic_int_get ((gint *) (atomic)))
#define g_atomic_int_set(atomic, newval) \
(g_atomic_int_set ((gint *) (atomic), (gint) (newval)))
#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \
(g_atomic_int_compare_and_exchange ((gint *) (atomic), (oldval), (newval)))
#define g_atomic_int_add(atomic, val) \
(g_atomic_int_add ((gint *) (atomic), (val)))
#define g_atomic_int_and(atomic, val) \
(g_atomic_int_and ((guint *) (atomic), (val)))
#define g_atomic_int_or(atomic, val) \
(g_atomic_int_or ((guint *) (atomic), (val)))
#define g_atomic_int_xor(atomic, val) \
(g_atomic_int_xor ((guint *) (atomic), (val)))
#define g_atomic_int_inc(atomic) \
(g_atomic_int_inc ((gint *) (atomic)))
#define g_atomic_int_dec_and_test(atomic) \
(g_atomic_int_dec_and_test ((gint *) (atomic)))
#define g_atomic_pointer_get(atomic) \
(g_atomic_pointer_get (atomic))
#define g_atomic_pointer_set(atomic, newval) \
(g_atomic_pointer_set ((atomic), (gpointer) (newval)))
#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \
(g_atomic_pointer_compare_and_exchange ((atomic), (gpointer) (oldval), (gpointer) (newval)))
#define g_atomic_pointer_add(atomic, val) \
(g_atomic_pointer_add ((atomic), (gssize) (val)))
#define g_atomic_pointer_and(atomic, val) \
(g_atomic_pointer_and ((atomic), (gsize) (val)))
#define g_atomic_pointer_or(atomic, val) \
(g_atomic_pointer_or ((atomic), (gsize) (val)))
#define g_atomic_pointer_xor(atomic, val) \
(g_atomic_pointer_xor ((atomic), (gsize) (val)))
#endif /* defined(__GNUC__) && defined(G_ATOMIC_OP_USE_GCC_BUILTINS) */
# 280 "/usr/include/glib-2.0/glib/gatomic.h" 3
#endif /* __G_ATOMIC_H__ */
# 282 "/usr/include/glib-2.0/glib/gatomic.h" 3
# 33 "/usr/include/glib-2.0/glib/gthread.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gthread.h" 3
# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 3
/* gerror.h - Error reporting system
*
* Copyright 2000 Red Hat, Inc.
*
* The Gnome Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* The Gnome Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the Gnome Library; see the file COPYING.LIB. If not,
* see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_ERROR_H__
#define __G_ERROR_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gerror.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gerror.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stdarg.h" 1 3
/*===---- stdarg.h - Variable argument handling ----------------------------===
*
* Copyright (c) 2008 Eli Friedman
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#ifndef __STDARG_H
#define __STDARG_H
#ifndef _VA_LIST
typedef __builtin_va_list va_list;
#define _VA_LIST
#endif
# 33 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stdarg.h" 3
#define va_start(ap, param) __builtin_va_start(ap, param)
#define va_end(ap) __builtin_va_end(ap)
#define va_arg(ap, type) __builtin_va_arg(ap, type)
/* GCC always defines __va_copy, but does not define va_copy unless in c99 mode
* or -ansi is not specified, since it was not part of C90.
*/
#define __va_copy(d,s) __builtin_va_copy(d,s)
#if __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L || !defined(__STRICT_ANSI__)
#define va_copy(dest, src) __builtin_va_copy(dest, src)
#endif
# 45 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stdarg.h" 3
/* Hack required to make standard headers work, at least on Ubuntu */
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST 1
#endif
# 50 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
#endif /* __STDARG_H */
# 53 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stdarg.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 2 3
#pragma GCC visibility pop
# 28 "/usr/include/glib-2.0/glib/gerror.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gquark.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gerror.h" 3
# 1 "/usr/include/glib-2.0/glib/gquark.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_QUARK_H__
#define __G_QUARK_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gquark.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gquark.h" 3
# 33 "/usr/include/glib-2.0/glib/gquark.h" 3
G_BEGIN_DECLS
typedef guint32 GQuark;
/* Quarks (string<->id association)
*/
GLIB_AVAILABLE_IN_ALL
GQuark g_quark_try_string (const gchar *string);
GLIB_AVAILABLE_IN_ALL
GQuark g_quark_from_static_string (const gchar *string);
GLIB_AVAILABLE_IN_ALL
GQuark g_quark_from_string (const gchar *string);
GLIB_AVAILABLE_IN_ALL
const gchar * g_quark_to_string (GQuark quark) G_GNUC_CONST;
#define G_DEFINE_QUARK(QN, q_n) \
GQuark \
q_n##_quark (void) \
{ \
static GQuark q; \
\
if G_UNLIKELY (q == 0) \
q = g_quark_from_static_string (#QN); \
\
return q; \
}
GLIB_AVAILABLE_IN_ALL
const gchar * g_intern_string (const gchar *string);
GLIB_AVAILABLE_IN_ALL
const gchar * g_intern_static_string (const gchar *string);
G_END_DECLS
#endif /* __G_QUARK_H__ */
# 69 "/usr/include/glib-2.0/glib/gquark.h" 3
# 30 "/usr/include/glib-2.0/glib/gerror.h" 2 3
G_BEGIN_DECLS
/**
* GError:
* @domain: error domain, e.g. #G_FILE_ERROR
* @code: error code, e.g. %G_FILE_ERROR_NOENT
* @message: human-readable informative error message
*
* The `GError` structure contains information about
* an error that has occurred.
*/
typedef struct _GError GError;
struct _GError
{
GQuark domain;
gint code;
gchar *message;
};
GLIB_AVAILABLE_IN_ALL
GError* g_error_new (GQuark domain,
gint code,
const gchar *format,
...) G_GNUC_PRINTF (3, 4);
GLIB_AVAILABLE_IN_ALL
GError* g_error_new_literal (GQuark domain,
gint code,
const gchar *message);
GLIB_AVAILABLE_IN_ALL
GError* g_error_new_valist (GQuark domain,
gint code,
const gchar *format,
va_list args) G_GNUC_PRINTF(3, 0);
GLIB_AVAILABLE_IN_ALL
void g_error_free (GError *error);
GLIB_AVAILABLE_IN_ALL
GError* g_error_copy (const GError *error);
GLIB_AVAILABLE_IN_ALL
gboolean g_error_matches (const GError *error,
GQuark domain,
gint code);
/* if (err) *err = g_error_new(domain, code, format, ...), also has
* some sanity checks.
*/
GLIB_AVAILABLE_IN_ALL
void g_set_error (GError **err,
GQuark domain,
gint code,
const gchar *format,
...) G_GNUC_PRINTF (4, 5);
GLIB_AVAILABLE_IN_ALL
void g_set_error_literal (GError **err,
GQuark domain,
gint code,
const gchar *message);
/* if (dest) *dest = src; also has some sanity checks.
*/
GLIB_AVAILABLE_IN_ALL
void g_propagate_error (GError **dest,
GError *src);
/* if (err && *err) { g_error_free(*err); *err = NULL; } */
GLIB_AVAILABLE_IN_ALL
void g_clear_error (GError **err);
/* if (err) prefix the formatted string to the ->message */
GLIB_AVAILABLE_IN_ALL
void g_prefix_error (GError **err,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
/* g_propagate_error then g_error_prefix on dest */
GLIB_AVAILABLE_IN_ALL
void g_propagate_prefixed_error (GError **dest,
GError *src,
const gchar *format,
...) G_GNUC_PRINTF (3, 4);
G_END_DECLS
#endif /* __G_ERROR_H__ */
# 119 "/usr/include/glib-2.0/glib/gerror.h" 3
# 34 "/usr/include/glib-2.0/glib/gthread.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gutils.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/gthread.h" 3
# 1 "/usr/include/glib-2.0/glib/gutils.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_UTILS_H__
#define __G_UTILS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gutils.h" 3
# 33 "/usr/include/glib-2.0/glib/gutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gutils.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility pop
# 34 "/usr/include/glib-2.0/glib/gutils.h" 2 3
G_BEGIN_DECLS
/* Define G_VA_COPY() to do the right thing for copying va_list variables.
* glibconfig.h may have already defined G_VA_COPY as va_copy or __va_copy.
*/
#if !defined (G_VA_COPY)
# if defined (__GNUC__) && defined (__PPC__) && (defined (_CALL_SYSV) || defined (_WIN32))
# define G_VA_COPY(ap1, ap2) (*(ap1) = *(ap2))
# elif defined (G_VA_COPY_AS_ARRAY)
# 44 "/usr/include/glib-2.0/glib/gutils.h" 3
# define G_VA_COPY(ap1, ap2) memmove ((ap1), (ap2), sizeof (va_list))
# else /* va_list is a pointer */
# 46 "/usr/include/glib-2.0/glib/gutils.h" 3
# define G_VA_COPY(ap1, ap2) ((ap1) = (ap2))
# endif /* va_list is a pointer */
# 48 "/usr/include/glib-2.0/glib/gutils.h" 3
#endif /* !G_VA_COPY */
# 49 "/usr/include/glib-2.0/glib/gutils.h" 3
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_name (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_real_name (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_home_dir (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_tmp_dir (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_host_name (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_prgname (void);
GLIB_AVAILABLE_IN_ALL
void g_set_prgname (const gchar *prgname);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_application_name (void);
GLIB_AVAILABLE_IN_ALL
void g_set_application_name (const gchar *application_name);
GLIB_AVAILABLE_IN_ALL
void g_reload_user_special_dirs_cache (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_data_dir (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_config_dir (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_cache_dir (void);
GLIB_AVAILABLE_IN_ALL
const gchar * const * g_get_system_data_dirs (void);
#ifdef G_OS_WIN32
/* This functions is not part of the public GLib API */
GLIB_AVAILABLE_IN_ALL
const gchar * const * g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void));
#endif
# 85 "/usr/include/glib-2.0/glib/gutils.h" 3
#if defined (G_OS_WIN32) && defined (G_CAN_INLINE) && !defined (__cplusplus)
/* This function is not part of the public GLib API either. Just call
* g_get_system_data_dirs() in your code, never mind that that is
* actually a macro and you will in fact call this inline function.
*/
static inline const gchar * const *
_g_win32_get_system_data_dirs (void)
{
return g_win32_get_system_data_dirs_for_module ((void (*)(void)) &_g_win32_get_system_data_dirs);
}
#define g_get_system_data_dirs _g_win32_get_system_data_dirs
#endif
# 98 "/usr/include/glib-2.0/glib/gutils.h" 3
GLIB_AVAILABLE_IN_ALL
const gchar * const * g_get_system_config_dirs (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_runtime_dir (void);
/**
* GUserDirectory:
* @G_USER_DIRECTORY_DESKTOP: the user's Desktop directory
* @G_USER_DIRECTORY_DOCUMENTS: the user's Documents directory
* @G_USER_DIRECTORY_DOWNLOAD: the user's Downloads directory
* @G_USER_DIRECTORY_MUSIC: the user's Music directory
* @G_USER_DIRECTORY_PICTURES: the user's Pictures directory
* @G_USER_DIRECTORY_PUBLIC_SHARE: the user's shared directory
* @G_USER_DIRECTORY_TEMPLATES: the user's Templates directory
* @G_USER_DIRECTORY_VIDEOS: the user's Movies directory
* @G_USER_N_DIRECTORIES: the number of enum values
*
* These are logical ids for special directories which are defined
* depending on the platform used. You should use g_get_user_special_dir()
* to retrieve the full path associated to the logical id.
*
* The #GUserDirectory enumeration can be extended at later date. Not
* every platform has a directory for every logical id in this
* enumeration.
*
* Since: 2.14
*/
typedef enum {
G_USER_DIRECTORY_DESKTOP,
G_USER_DIRECTORY_DOCUMENTS,
G_USER_DIRECTORY_DOWNLOAD,
G_USER_DIRECTORY_MUSIC,
G_USER_DIRECTORY_PICTURES,
G_USER_DIRECTORY_PUBLIC_SHARE,
G_USER_DIRECTORY_TEMPLATES,
G_USER_DIRECTORY_VIDEOS,
G_USER_N_DIRECTORIES
} GUserDirectory;
GLIB_AVAILABLE_IN_ALL
const gchar * g_get_user_special_dir (GUserDirectory directory);
/**
* GDebugKey:
* @key: the string
* @value: the flag
*
* Associates a string with a bit flag.
* Used in g_parse_debug_string().
*/
typedef struct _GDebugKey GDebugKey;
struct _GDebugKey
{
const gchar *key;
guint value;
};
/* Miscellaneous utility functions
*/
GLIB_AVAILABLE_IN_ALL
guint g_parse_debug_string (const gchar *string,
const GDebugKey *keys,
guint nkeys);
GLIB_AVAILABLE_IN_ALL
gint g_snprintf (gchar *string,
gulong n,
gchar const *format,
...) G_GNUC_PRINTF (3, 4);
GLIB_AVAILABLE_IN_ALL
gint g_vsnprintf (gchar *string,
gulong n,
gchar const *format,
va_list args)
G_GNUC_PRINTF(3, 0);
GLIB_AVAILABLE_IN_ALL
void g_nullify_pointer (gpointer *nullify_location);
typedef enum
{
G_FORMAT_SIZE_DEFAULT = 0,
G_FORMAT_SIZE_LONG_FORMAT = 1 << 0,
G_FORMAT_SIZE_IEC_UNITS = 1 << 1
} GFormatSizeFlags;
GLIB_AVAILABLE_IN_2_30
gchar *g_format_size_full (guint64 size,
GFormatSizeFlags flags);
GLIB_AVAILABLE_IN_2_30
gchar *g_format_size (guint64 size);
GLIB_DEPRECATED_FOR(g_format_size)
gchar *g_format_size_for_display (goffset size);
#ifndef G_DISABLE_DEPRECATED
/**
* GVoidFunc:
*
* Declares a type of function which takes no arguments
* and has no return value. It is used to specify the type
* function passed to g_atexit().
*/
typedef void (*GVoidFunc) (void);
#define ATEXIT(proc) g_ATEXIT(proc)
GLIB_DEPRECATED
void g_atexit (GVoidFunc func);
#ifdef G_OS_WIN32
/* It's a bad idea to wrap atexit() on Windows. If the GLib DLL calls
* atexit(), the function will be called when the GLib DLL is detached
* from the program, which is not what the caller wants. The caller
* wants the function to be called when it *itself* exits (or is
* detached, in case the caller, too, is a DLL).
*/
#if (defined(__MINGW_H) && !defined(_STDLIB_H_)) || (defined(_MSC_VER) && !defined(_INC_STDLIB))
int atexit (void (*)(void));
#endif
# 219 "/usr/include/glib-2.0/glib/gutils.h" 3
#define g_atexit(func) atexit(func)
#endif
# 221 "/usr/include/glib-2.0/glib/gutils.h" 3
#endif
# 223 "/usr/include/glib-2.0/glib/gutils.h" 3
/* Look for an executable in PATH, following execvp() rules */
GLIB_AVAILABLE_IN_ALL
gchar* g_find_program_in_path (const gchar *program);
/* Bit tests
*
* These are defined in a convoluted way because we want the compiler to
* be able to inline the code for performance reasons, but for
* historical reasons, we must continue to provide non-inline versions
* on our ABI.
*
* We define these as functions in gutils.c which are just implemented
* as calls to the _impl() versions in order to preserve the ABI.
*/
#define g_bit_nth_lsf(mask, nth_bit) g_bit_nth_lsf_impl(mask, nth_bit)
#define g_bit_nth_msf(mask, nth_bit) g_bit_nth_msf_impl(mask, nth_bit)
#define g_bit_storage(number) g_bit_storage_impl(number)
GLIB_AVAILABLE_IN_ALL
gint (g_bit_nth_lsf) (gulong mask,
gint nth_bit);
GLIB_AVAILABLE_IN_ALL
gint (g_bit_nth_msf) (gulong mask,
gint nth_bit);
GLIB_AVAILABLE_IN_ALL
guint (g_bit_storage) (gulong number);
static inline gint
g_bit_nth_lsf_impl (gulong mask,
gint nth_bit)
{
if (G_UNLIKELY (nth_bit < -1))
nth_bit = -1;
while (nth_bit < ((GLIB_SIZEOF_LONG * 8) - 1))
{
nth_bit++;
if (mask & (1UL << nth_bit))
return nth_bit;
}
return -1;
}
static inline gint
g_bit_nth_msf_impl (gulong mask,
gint nth_bit)
{
if (nth_bit < 0 || G_UNLIKELY (nth_bit > GLIB_SIZEOF_LONG * 8))
nth_bit = GLIB_SIZEOF_LONG * 8;
while (nth_bit > 0)
{
nth_bit--;
if (mask & (1UL << nth_bit))
return nth_bit;
}
return -1;
}
static inline guint
g_bit_storage_impl (gulong number)
{
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
return G_LIKELY (number) ?
((GLIB_SIZEOF_LONG * 8U - 1) ^ (guint) __builtin_clzl(number)) + 1 : 1;
#else
# 290 "/usr/include/glib-2.0/glib/gutils.h" 3
guint n_bits = 0;
do
{
n_bits++;
number >>= 1;
}
while (number);
return n_bits;
#endif
# 300 "/usr/include/glib-2.0/glib/gutils.h" 3
}
/* Crashes the program. */
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_50
#ifndef G_OS_WIN32
# define g_abort() abort ()
#else
# 307 "/usr/include/glib-2.0/glib/gutils.h" 3
GLIB_AVAILABLE_IN_2_50
void g_abort (void) G_GNUC_NORETURN G_ANALYZER_NORETURN;
#endif
# 310 "/usr/include/glib-2.0/glib/gutils.h" 3
#endif
# 311 "/usr/include/glib-2.0/glib/gutils.h" 3
#ifndef G_DISABLE_DEPRECATED
/*
* This macro is deprecated. This DllMain() is too complex. It is
* recommended to write an explicit minimal DLlMain() that just saves
* the handle to the DLL and then use that handle instead, for
* instance passing it to
* g_win32_get_package_installation_directory_of_module().
*
* On Windows, this macro defines a DllMain function that stores the
* actual DLL name that the code being compiled will be included in.
* STATIC should be empty or 'static'. DLL_NAME is the name of the
* (pointer to the) char array where the DLL name will be stored. If
* this is used, you must also include <windows.h>. If you need a more complex
* DLL entry point function, you cannot use this.
*
* On non-Windows platforms, expands to nothing.
*/
#ifndef G_PLATFORM_WIN32
# define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name)
#else
# 334 "/usr/include/glib-2.0/glib/gutils.h" 3
# define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) \
static char *dll_name; \
\
BOOL WINAPI \
DllMain (HINSTANCE hinstDLL, \
DWORD fdwReason, \
LPVOID lpvReserved) \
{ \
wchar_t wcbfr[1000]; \
char *tem; \
switch (fdwReason) \
{ \
case DLL_PROCESS_ATTACH: \
GetModuleFileNameW ((HMODULE) hinstDLL, wcbfr, G_N_ELEMENTS (wcbfr)); \
tem = g_utf16_to_utf8 (wcbfr, -1, NULL, NULL, NULL); \
dll_name = g_path_get_basename (tem); \
g_free (tem); \
break; \
} \
\
return TRUE; \
}
#endif /* !G_DISABLE_DEPRECATED */
# 358 "/usr/include/glib-2.0/glib/gutils.h" 3
#endif /* G_PLATFORM_WIN32 */
# 360 "/usr/include/glib-2.0/glib/gutils.h" 3
G_END_DECLS
#endif /* __G_UTILS_H__ */
# 364 "/usr/include/glib-2.0/glib/gutils.h" 3
# 35 "/usr/include/glib-2.0/glib/gthread.h" 2 3
G_BEGIN_DECLS
#define G_THREAD_ERROR g_thread_error_quark ()
GLIB_AVAILABLE_IN_ALL
GQuark g_thread_error_quark (void);
typedef enum
{
G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */
} GThreadError;
typedef gpointer (*GThreadFunc) (gpointer data);
typedef struct _GThread GThread;
typedef union _GMutex GMutex;
typedef struct _GRecMutex GRecMutex;
typedef struct _GRWLock GRWLock;
typedef struct _GCond GCond;
typedef struct _GPrivate GPrivate;
typedef struct _GOnce GOnce;
union _GMutex
{
/*< private >*/
gpointer p;
guint i[2];
};
struct _GRWLock
{
/*< private >*/
gpointer p;
guint i[2];
};
struct _GCond
{
/*< private >*/
gpointer p;
guint i[2];
};
struct _GRecMutex
{
/*< private >*/
gpointer p;
guint i[2];
};
#define G_PRIVATE_INIT(notify) { NULL, (notify), { NULL, NULL } }
struct _GPrivate
{
/*< private >*/
gpointer p;
GDestroyNotify notify;
gpointer future[2];
};
typedef enum
{
G_ONCE_STATUS_NOTCALLED,
G_ONCE_STATUS_PROGRESS,
G_ONCE_STATUS_READY
} GOnceStatus;
#define G_ONCE_INIT { G_ONCE_STATUS_NOTCALLED, NULL }
struct _GOnce
{
volatile GOnceStatus status;
volatile gpointer retval;
};
#define G_LOCK_NAME(name) g__ ## name ## _lock
#define G_LOCK_DEFINE_STATIC(name) static G_LOCK_DEFINE (name)
#define G_LOCK_DEFINE(name) GMutex G_LOCK_NAME (name)
#define G_LOCK_EXTERN(name) extern GMutex G_LOCK_NAME (name)
#ifdef G_DEBUG_LOCKS
# define G_LOCK(name) G_STMT_START{ \
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
"file %s: line %d (%s): locking: %s ", \
__FILE__, __LINE__, G_STRFUNC, \
#name); \
g_mutex_lock (&G_LOCK_NAME (name)); \
}G_STMT_END
# define G_UNLOCK(name) G_STMT_START{ \
g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
"file %s: line %d (%s): unlocking: %s ", \
__FILE__, __LINE__, G_STRFUNC, \
#name); \
g_mutex_unlock (&G_LOCK_NAME (name)); \
}G_STMT_END
# define G_TRYLOCK(name) \
(g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
"file %s: line %d (%s): try locking: %s ", \
__FILE__, __LINE__, G_STRFUNC, \
#name), g_mutex_trylock (&G_LOCK_NAME (name)))
#else /* !G_DEBUG_LOCKS */
# 135 "/usr/include/glib-2.0/glib/gthread.h" 3
# define G_LOCK(name) g_mutex_lock (&G_LOCK_NAME (name))
# define G_UNLOCK(name) g_mutex_unlock (&G_LOCK_NAME (name))
# define G_TRYLOCK(name) g_mutex_trylock (&G_LOCK_NAME (name))
#endif /* !G_DEBUG_LOCKS */
# 139 "/usr/include/glib-2.0/glib/gthread.h" 3
GLIB_AVAILABLE_IN_2_32
GThread * g_thread_ref (GThread *thread);
GLIB_AVAILABLE_IN_2_32
void g_thread_unref (GThread *thread);
GLIB_AVAILABLE_IN_2_32
GThread * g_thread_new (const gchar *name,
GThreadFunc func,
gpointer data);
GLIB_AVAILABLE_IN_2_32
GThread * g_thread_try_new (const gchar *name,
GThreadFunc func,
gpointer data,
GError **error);
GLIB_AVAILABLE_IN_ALL
GThread * g_thread_self (void);
GLIB_AVAILABLE_IN_ALL
void g_thread_exit (gpointer retval);
GLIB_AVAILABLE_IN_ALL
gpointer g_thread_join (GThread *thread);
GLIB_AVAILABLE_IN_ALL
void g_thread_yield (void);
GLIB_AVAILABLE_IN_2_32
void g_mutex_init (GMutex *mutex);
GLIB_AVAILABLE_IN_2_32
void g_mutex_clear (GMutex *mutex);
GLIB_AVAILABLE_IN_ALL
void g_mutex_lock (GMutex *mutex);
GLIB_AVAILABLE_IN_ALL
gboolean g_mutex_trylock (GMutex *mutex);
GLIB_AVAILABLE_IN_ALL
void g_mutex_unlock (GMutex *mutex);
GLIB_AVAILABLE_IN_2_32
void g_rw_lock_init (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
void g_rw_lock_clear (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
void g_rw_lock_writer_lock (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
gboolean g_rw_lock_writer_trylock (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
void g_rw_lock_writer_unlock (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
void g_rw_lock_reader_lock (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
gboolean g_rw_lock_reader_trylock (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
void g_rw_lock_reader_unlock (GRWLock *rw_lock);
GLIB_AVAILABLE_IN_2_32
void g_rec_mutex_init (GRecMutex *rec_mutex);
GLIB_AVAILABLE_IN_2_32
void g_rec_mutex_clear (GRecMutex *rec_mutex);
GLIB_AVAILABLE_IN_2_32
void g_rec_mutex_lock (GRecMutex *rec_mutex);
GLIB_AVAILABLE_IN_2_32
gboolean g_rec_mutex_trylock (GRecMutex *rec_mutex);
GLIB_AVAILABLE_IN_2_32
void g_rec_mutex_unlock (GRecMutex *rec_mutex);
GLIB_AVAILABLE_IN_2_32
void g_cond_init (GCond *cond);
GLIB_AVAILABLE_IN_2_32
void g_cond_clear (GCond *cond);
GLIB_AVAILABLE_IN_ALL
void g_cond_wait (GCond *cond,
GMutex *mutex);
GLIB_AVAILABLE_IN_ALL
void g_cond_signal (GCond *cond);
GLIB_AVAILABLE_IN_ALL
void g_cond_broadcast (GCond *cond);
GLIB_AVAILABLE_IN_2_32
gboolean g_cond_wait_until (GCond *cond,
GMutex *mutex,
gint64 end_time);
GLIB_AVAILABLE_IN_ALL
gpointer g_private_get (GPrivate *key);
GLIB_AVAILABLE_IN_ALL
void g_private_set (GPrivate *key,
gpointer value);
GLIB_AVAILABLE_IN_2_32
void g_private_replace (GPrivate *key,
gpointer value);
GLIB_AVAILABLE_IN_ALL
gpointer g_once_impl (GOnce *once,
GThreadFunc func,
gpointer arg);
GLIB_AVAILABLE_IN_ALL
gboolean g_once_init_enter (volatile void *location);
GLIB_AVAILABLE_IN_ALL
void g_once_init_leave (volatile void *location,
gsize result);
#ifdef G_ATOMIC_OP_MEMORY_BARRIER_NEEDED
# define g_once(once, func, arg) g_once_impl ((once), (func), (arg))
#else /* !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED*/
# 240 "/usr/include/glib-2.0/glib/gthread.h" 3
# define g_once(once, func, arg) \
(((once)->status == G_ONCE_STATUS_READY) ? \
(once)->retval : \
g_once_impl ((once), (func), (arg)))
#endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */
# 245 "/usr/include/glib-2.0/glib/gthread.h" 3
#ifdef __GNUC__
# define g_once_init_enter(location) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
(void) (0 ? (gpointer) *(location) : 0); \
(!g_atomic_pointer_get (location) && \
g_once_init_enter (location)); \
}))
# define g_once_init_leave(location, result) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \
(void) (0 ? *(location) = (result) : 0); \
g_once_init_leave ((location), (gsize) (result)); \
}))
#else
# 261 "/usr/include/glib-2.0/glib/gthread.h" 3
# define g_once_init_enter(location) \
(g_once_init_enter((location)))
# define g_once_init_leave(location, result) \
(g_once_init_leave((location), (gsize) (result)))
#endif
# 266 "/usr/include/glib-2.0/glib/gthread.h" 3
GLIB_AVAILABLE_IN_2_36
guint g_get_num_processors (void);
/**
* GMutexLocker:
*
* Opaque type. See g_mutex_locker_new() for details.
* Since: 2.44
*/
typedef void GMutexLocker;
/**
* g_mutex_locker_new:
* @mutex: a mutex to lock
*
* Lock @mutex and return a new #GMutexLocker. Unlock with
* g_mutex_locker_free(). Using g_mutex_unlock() on @mutex
* while a #GMutexLocker exists can lead to undefined behaviour.
*
* This is intended to be used with g_autoptr(). Note that g_autoptr()
* is only available when using GCC or clang, so the following example
* will only work with those compilers:
* |[
* typedef struct
* {
* ...
* GMutex mutex;
* ...
* } MyObject;
*
* static void
* my_object_do_stuff (MyObject *self)
* {
* g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&self->mutex);
*
* // Code with mutex locked here
*
* if (cond)
* // No need to unlock
* return;
*
* // Optionally early unlock
* g_clear_pointer (&locker, g_mutex_locker_free);
*
* // Code with mutex unlocked here
* }
* ]|
*
* Returns: a #GMutexLocker
* Since: 2.44
*/
static inline GMutexLocker *
g_mutex_locker_new (GMutex *mutex)
{
g_mutex_lock (mutex);
return (GMutexLocker *) mutex;
}
/**
* g_mutex_locker_free:
* @locker: a GMutexLocker
*
* Unlock @locker's mutex. See g_mutex_locker_new() for details.
*
* Since: 2.44
*/
static inline void
g_mutex_locker_free (GMutexLocker *locker)
{
g_mutex_unlock ((GMutex *) locker);
}
G_END_DECLS
#endif /* __G_THREAD_H__ */
# 342 "/usr/include/glib-2.0/glib/gthread.h" 3
# 33 "/usr/include/glib-2.0/glib/gasyncqueue.h" 2 3
G_BEGIN_DECLS
typedef struct _GAsyncQueue GAsyncQueue;
GLIB_AVAILABLE_IN_ALL
GAsyncQueue *g_async_queue_new (void);
GLIB_AVAILABLE_IN_ALL
GAsyncQueue *g_async_queue_new_full (GDestroyNotify item_free_func);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_lock (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_unlock (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
GAsyncQueue *g_async_queue_ref (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_unref (GAsyncQueue *queue);
GLIB_DEPRECATED_FOR(g_async_queue_ref)
void g_async_queue_ref_unlocked (GAsyncQueue *queue);
GLIB_DEPRECATED_FOR(g_async_queue_unref)
void g_async_queue_unref_and_unlock (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_push (GAsyncQueue *queue,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_push_unlocked (GAsyncQueue *queue,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_push_sorted (GAsyncQueue *queue,
gpointer data,
GCompareDataFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue,
gpointer data,
GCompareDataFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
gpointer g_async_queue_pop (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_async_queue_try_pop (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_async_queue_timeout_pop (GAsyncQueue *queue,
guint64 timeout);
GLIB_AVAILABLE_IN_ALL
gpointer g_async_queue_timeout_pop_unlocked (GAsyncQueue *queue,
guint64 timeout);
GLIB_AVAILABLE_IN_ALL
gint g_async_queue_length (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
gint g_async_queue_length_unlocked (GAsyncQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_sort (GAsyncQueue *queue,
GCompareDataFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_async_queue_sort_unlocked (GAsyncQueue *queue,
GCompareDataFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_2_46
gboolean g_async_queue_remove (GAsyncQueue *queue,
gpointer item);
GLIB_AVAILABLE_IN_2_46
gboolean g_async_queue_remove_unlocked (GAsyncQueue *queue,
gpointer item);
GLIB_AVAILABLE_IN_2_46
void g_async_queue_push_front (GAsyncQueue *queue,
gpointer item);
GLIB_AVAILABLE_IN_2_46
void g_async_queue_push_front_unlocked (GAsyncQueue *queue,
gpointer item);
GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop)
gpointer g_async_queue_timed_pop (GAsyncQueue *queue,
GTimeVal *end_time);
GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop_unlocked)
gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue,
GTimeVal *end_time);
G_END_DECLS
#endif /* __G_ASYNCQUEUE_H__ */
# 123 "/usr/include/glib-2.0/glib/gasyncqueue.h" 3
# 33 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gatomic.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib.h" 3
# 34 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbacktrace.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gbacktrace.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_BACKTRACE_H__
#define __G_BACKTRACE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# 33 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <signal.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <signal.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 3
# 1 "/usr/include/signal.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.14 Signal handling <signal.h>
*/
#ifndef _SIGNAL_H
#if !defined __need_sig_atomic_t && !defined __need_sigset_t
# define _SIGNAL_H
#endif
# 27 "/usr/include/signal.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <features.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/signal.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <features.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility pop
# 29 "/usr/include/signal.h" 2 3 4
__BEGIN_DECLS
#if 0 /* expanded by -frewrite-includes */
#include <bits/sigset.h> /* __sigset_t, __sig_atomic_t. */
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4
/* __sig_atomic_t, __sigset_t, and related definitions. Linux version.
Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SIGSET_H_types
# define _SIGSET_H_types 1
typedef int __sig_atomic_t;
/* A `sigset_t' has a bit for each signal. */
# define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
typedef struct
{
unsigned long int __val[_SIGSET_NWORDS];
} __sigset_t;
#endif
# 33 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
/* We only want to define these functions if <signal.h> was actually
included; otherwise we were included just to define the types. Since we
are namespace-clean, it wouldn't hurt to define extra macros. But
trouble can be caused by functions being defined (e.g., any global
register vars declared later will cause compilation errors). */
#if !defined _SIGSET_H_fns && defined _SIGNAL_H
# define _SIGSET_H_fns 1
# ifndef _EXTERN_INLINE
# define _EXTERN_INLINE __extern_inline
# endif
# 47 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
/* Return a mask that includes the bit for SIG only. */
# define __sigmask(sig) \
(((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int))))
/* Return the word index for SIG. */
# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int)))
# if defined __GNUC__ && __GNUC__ >= 2
# define __sigemptyset(set) \
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
sigset_t *__set = (set); \
while (--__cnt >= 0) __set->__val[__cnt] = 0; \
0; }))
# define __sigfillset(set) \
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
sigset_t *__set = (set); \
while (--__cnt >= 0) __set->__val[__cnt] = ~0UL; \
0; }))
# ifdef __USE_GNU
/* The POSIX does not specify for handling the whole signal set in one
command. This is often wanted and so we define three more functions
here. */
# define __sigisemptyset(set) \
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
const sigset_t *__set = (set); \
int __ret = __set->__val[--__cnt]; \
while (!__ret && --__cnt >= 0) \
__ret = __set->__val[__cnt]; \
__ret == 0; }))
# define __sigandset(dest, left, right) \
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
sigset_t *__dest = (dest); \
const sigset_t *__left = (left); \
const sigset_t *__right = (right); \
while (--__cnt >= 0) \
__dest->__val[__cnt] = (__left->__val[__cnt] \
& __right->__val[__cnt]); \
0; }))
# define __sigorset(dest, left, right) \
(__extension__ ({ int __cnt = _SIGSET_NWORDS; \
sigset_t *__dest = (dest); \
const sigset_t *__left = (left); \
const sigset_t *__right = (right); \
while (--__cnt >= 0) \
__dest->__val[__cnt] = (__left->__val[__cnt] \
| __right->__val[__cnt]); \
0; }))
# endif
# 97 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
# endif
# 98 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
/* These functions needn't check for a bogus signal number -- error
checking is done in the non __ versions. */
extern int __sigismember (const __sigset_t *, int);
extern int __sigaddset (__sigset_t *, int);
extern int __sigdelset (__sigset_t *, int);
# ifdef __USE_EXTERN_INLINES
# define __SIGSETFN(NAME, BODY, CONST) \
_EXTERN_INLINE int \
NAME (CONST __sigset_t *__set, int __sig) \
{ \
unsigned long int __mask = __sigmask (__sig); \
unsigned long int __word = __sigword (__sig); \
return BODY; \
}
__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
__SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
__SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
# undef __SIGSETFN
# endif
# 122 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
#endif /* ! _SIGSET_H_fns. */
# 125 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4
# 33 "/usr/include/signal.h" 2 3 4
/* An integral type that can be modified atomically, without the
possibility of a signal arriving in the middle of the operation. */
#if defined __need_sig_atomic_t || defined _SIGNAL_H
# ifndef __sig_atomic_t_defined
# define __sig_atomic_t_defined
__BEGIN_NAMESPACE_STD
typedef __sig_atomic_t sig_atomic_t;
__END_NAMESPACE_STD
# endif
# 43 "/usr/include/signal.h" 3 4
# undef __need_sig_atomic_t
#endif
# 45 "/usr/include/signal.h" 3 4
#if defined __need_sigset_t || (defined _SIGNAL_H && defined __USE_POSIX)
# ifndef __sigset_t_defined
# define __sigset_t_defined
typedef __sigset_t sigset_t;
# endif
# 51 "/usr/include/signal.h" 3 4
# undef __need_sigset_t
#endif
# 53 "/usr/include/signal.h" 3 4
#ifdef _SIGNAL_H
#if 0 /* expanded by -frewrite-includes */
#include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 56 "/usr/include/signal.h" 3 4
# 57 "/usr/include/signal.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <bits/signum.h>
#endif /* expanded by -frewrite-includes */
# 57 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/signum.h" 1 3 4
/* Signal number definitions. Linux version.
Copyright (C) 1995-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifdef _SIGNAL_H
/* Fake signal functions. */
#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
#ifdef __USE_UNIX98
# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
#endif
# 29 "/usr/include/x86_64-linux-gnu/bits/signum.h" 3 4
/* Signals. */
#define SIGHUP 1 /* Hangup (POSIX). */
#define SIGINT 2 /* Interrupt (ANSI). */
#define SIGQUIT 3 /* Quit (POSIX). */
#define SIGILL 4 /* Illegal instruction (ANSI). */
#define SIGTRAP 5 /* Trace trap (POSIX). */
#define SIGABRT 6 /* Abort (ANSI). */
#define SIGIOT 6 /* IOT trap (4.2 BSD). */
#define SIGBUS 7 /* BUS error (4.2 BSD). */
#define SIGFPE 8 /* Floating-point exception (ANSI). */
#define SIGKILL 9 /* Kill, unblockable (POSIX). */
#define SIGUSR1 10 /* User-defined signal 1 (POSIX). */
#define SIGSEGV 11 /* Segmentation violation (ANSI). */
#define SIGUSR2 12 /* User-defined signal 2 (POSIX). */
#define SIGPIPE 13 /* Broken pipe (POSIX). */
#define SIGALRM 14 /* Alarm clock (POSIX). */
#define SIGTERM 15 /* Termination (ANSI). */
#define SIGSTKFLT 16 /* Stack fault. */
#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
#define SIGCHLD 17 /* Child status has changed (POSIX). */
#define SIGCONT 18 /* Continue (POSIX). */
#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
#define SIGTSTP 20 /* Keyboard stop (POSIX). */
#define SIGTTIN 21 /* Background read from tty (POSIX). */
#define SIGTTOU 22 /* Background write to tty (POSIX). */
#define SIGURG 23 /* Urgent condition on socket (4.2 BSD). */
#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */
#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */
#define SIGVTALRM 26 /* Virtual alarm clock (4.2 BSD). */
#define SIGPROF 27 /* Profiling alarm clock (4.2 BSD). */
#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */
#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
#define SIGIO 29 /* I/O now possible (4.2 BSD). */
#define SIGPWR 30 /* Power failure restart (System V). */
#define SIGSYS 31 /* Bad system call. */
#define SIGUNUSED 31
#define _NSIG 65 /* Biggest signal number + 1
(including real-time signals). */
#define SIGRTMIN (__libc_current_sigrtmin ())
#define SIGRTMAX (__libc_current_sigrtmax ())
/* These are the hard limits of the kernel. These values should not be
used directly at user level. */
#define __SIGRTMIN 32
#define __SIGRTMAX (_NSIG - 1)
#endif /* <signal.h> included. */
# 80 "/usr/include/x86_64-linux-gnu/bits/signum.h" 3 4
# 58 "/usr/include/signal.h" 2 3 4
#if defined __USE_XOPEN || defined __USE_XOPEN2K
# ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif
# 64 "/usr/include/signal.h" 3 4
#ifdef __USE_XOPEN
# endif
# 66 "/usr/include/signal.h" 3 4
# ifndef __uid_t_defined
typedef __uid_t uid_t;
# define __uid_t_defined
# endif
# 70 "/usr/include/signal.h" 3 4
#endif /* Unix98 */
# 71 "/usr/include/signal.h" 3 4
#ifdef __USE_POSIX199309
/* We need `struct timespec' later on. */
# define __need_timespec
#if 0 /* expanded by -frewrite-includes */
# include <time.h>
#endif /* expanded by -frewrite-includes */
# 75 "/usr/include/signal.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <time.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility pop
# 76 "/usr/include/signal.h" 2 3 4
#endif
# 77 "/usr/include/signal.h" 3 4
#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
/* Get the `siginfo_t' type plus the needed symbols. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/siginfo.h>
#endif /* expanded by -frewrite-includes */
# 80 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 1 3 4
/* siginfo_t, sigevent and constants. Linux x86-64 version.
Copyright (C) 2012-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#if !defined _SIGNAL_H && !defined __need_siginfo_t \
&& !defined __need_sigevent_t
# error "Never include this file directly. Use <signal.h> instead"
#endif
# 23 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <bits/wordsize.h>
#endif /* expanded by -frewrite-includes */
# 24 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
/* Determine the wordsize from the preprocessor defines. */
#if defined __x86_64__ && !defined __ILP32__
# define __WORDSIZE 64
#else
# 6 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# define __WORDSIZE 32
#endif
# 8 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
#ifdef __x86_64__
# define __WORDSIZE_TIME64_COMPAT32 1
/* Both x86-64 and x32 use the 64-bit system call interface. */
# define __SYSCALL_WORDSIZE 64
#endif
# 14 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# 25 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 2 3 4
#if (!defined __have_sigval_t \
&& (defined _SIGNAL_H || defined __need_siginfo_t \
|| defined __need_sigevent_t))
# define __have_sigval_t 1
/* Type for data associated with a signal. */
typedef union sigval
{
int sival_int;
void *sival_ptr;
} sigval_t;
#endif
# 38 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
#if (!defined __have_siginfo_t \
&& (defined _SIGNAL_H || defined __need_siginfo_t))
# define __have_siginfo_t 1
# define __SI_MAX_SIZE 128
# if __WORDSIZE == 64
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
# else
# 47 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3)
# endif
# 49 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# if defined __x86_64__ && __WORDSIZE == 32
/* si_utime and si_stime must be 4 byte aligned for x32 to match the
kernel. We align siginfo_t to 8 bytes so that si_utime and si_stime
are actually aligned to 8 bytes since their offsets are multiple of
8 bytes. */
typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t;
# define __SI_ALIGNMENT __attribute__ ((__aligned__ (8)))
# else
# 58 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
typedef __clock_t __sigchld_clock_t;
# define __SI_ALIGNMENT
# endif
# 61 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
typedef struct
{
int si_signo; /* Signal number. */
int si_errno; /* If non-zero, an errno value associated with
this signal, as defined in <errno.h>. */
int si_code; /* Signal code. */
union
{
int _pad[__SI_PAD_SIZE];
/* kill(). */
struct
{
__pid_t si_pid; /* Sending process ID. */
__uid_t si_uid; /* Real user ID of sending process. */
} _kill;
/* POSIX.1b timers. */
struct
{
int si_tid; /* Timer ID. */
int si_overrun; /* Overrun count. */
sigval_t si_sigval; /* Signal value. */
} _timer;
/* POSIX.1b signals. */
struct
{
__pid_t si_pid; /* Sending process ID. */
__uid_t si_uid; /* Real user ID of sending process. */
sigval_t si_sigval; /* Signal value. */
} _rt;
/* SIGCHLD. */
struct
{
__pid_t si_pid; /* Which child. */
__uid_t si_uid; /* Real user ID of sending process. */
int si_status; /* Exit value or signal. */
__sigchld_clock_t si_utime;
__sigchld_clock_t si_stime;
} _sigchld;
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */
struct
{
void *si_addr; /* Faulting insn/memory ref. */
short int si_addr_lsb; /* Valid LSB of the reported address. */
struct
{
void *_lower;
void *_upper;
} si_addr_bnd;
} _sigfault;
/* SIGPOLL. */
struct
{
long int si_band; /* Band event for SIGPOLL. */
int si_fd;
} _sigpoll;
/* SIGSYS. */
struct
{
void *_call_addr; /* Calling user insn. */
int _syscall; /* Triggering system call number. */
unsigned int _arch; /* AUDIT_ARCH_* of syscall. */
} _sigsys;
} _sifields;
} siginfo_t __SI_ALIGNMENT;
/* X/Open requires some more fields with fixed names. */
# define si_pid _sifields._kill.si_pid
# define si_uid _sifields._kill.si_uid
# define si_timerid _sifields._timer.si_tid
# define si_overrun _sifields._timer.si_overrun
# define si_status _sifields._sigchld.si_status
# define si_utime _sifields._sigchld.si_utime
# define si_stime _sifields._sigchld.si_stime
# define si_value _sifields._rt.si_sigval
# define si_int _sifields._rt.si_sigval.sival_int
# define si_ptr _sifields._rt.si_sigval.sival_ptr
# define si_addr _sifields._sigfault.si_addr
# define si_addr_lsb _sifields._sigfault.si_addr_lsb
# define si_lower _sifields._sigfault.si_addr_bnd._lower
# define si_upper _sifields._sigfault.si_addr_bnd._upper
# define si_band _sifields._sigpoll.si_band
# define si_fd _sifields._sigpoll.si_fd
# define si_call_addr _sifields._sigsys._call_addr
# define si_syscall _sifields._sigsys._syscall
# define si_arch _sifields._sigsys._arch
/* Values for `si_code'. Positive values are reserved for kernel-generated
signals. */
enum
{
SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */
# define SI_ASYNCNL SI_ASYNCNL
SI_TKILL = -6, /* Sent by tkill. */
# define SI_TKILL SI_TKILL
SI_SIGIO, /* Sent by queued SIGIO. */
# define SI_SIGIO SI_SIGIO
SI_ASYNCIO, /* Sent by AIO completion. */
# define SI_ASYNCIO SI_ASYNCIO
SI_MESGQ, /* Sent by real time mesq state change. */
# define SI_MESGQ SI_MESGQ
SI_TIMER, /* Sent by timer expiration. */
# define SI_TIMER SI_TIMER
SI_QUEUE, /* Sent by sigqueue. */
# define SI_QUEUE SI_QUEUE
SI_USER, /* Sent by kill, sigsend. */
# define SI_USER SI_USER
SI_KERNEL = 0x80 /* Send by kernel. */
#define SI_KERNEL SI_KERNEL
};
# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
/* `si_code' values for SIGILL signal. */
enum
{
ILL_ILLOPC = 1, /* Illegal opcode. */
# define ILL_ILLOPC ILL_ILLOPC
ILL_ILLOPN, /* Illegal operand. */
# define ILL_ILLOPN ILL_ILLOPN
ILL_ILLADR, /* Illegal addressing mode. */
# define ILL_ILLADR ILL_ILLADR
ILL_ILLTRP, /* Illegal trap. */
# define ILL_ILLTRP ILL_ILLTRP
ILL_PRVOPC, /* Privileged opcode. */
# define ILL_PRVOPC ILL_PRVOPC
ILL_PRVREG, /* Privileged register. */
# define ILL_PRVREG ILL_PRVREG
ILL_COPROC, /* Coprocessor error. */
# define ILL_COPROC ILL_COPROC
ILL_BADSTK /* Internal stack error. */
# define ILL_BADSTK ILL_BADSTK
};
/* `si_code' values for SIGFPE signal. */
enum
{
FPE_INTDIV = 1, /* Integer divide by zero. */
# define FPE_INTDIV FPE_INTDIV
FPE_INTOVF, /* Integer overflow. */
# define FPE_INTOVF FPE_INTOVF
FPE_FLTDIV, /* Floating point divide by zero. */
# define FPE_FLTDIV FPE_FLTDIV
FPE_FLTOVF, /* Floating point overflow. */
# define FPE_FLTOVF FPE_FLTOVF
FPE_FLTUND, /* Floating point underflow. */
# define FPE_FLTUND FPE_FLTUND
FPE_FLTRES, /* Floating point inexact result. */
# define FPE_FLTRES FPE_FLTRES
FPE_FLTINV, /* Floating point invalid operation. */
# define FPE_FLTINV FPE_FLTINV
FPE_FLTSUB /* Subscript out of range. */
# define FPE_FLTSUB FPE_FLTSUB
};
/* `si_code' values for SIGSEGV signal. */
enum
{
SEGV_MAPERR = 1, /* Address not mapped to object. */
# define SEGV_MAPERR SEGV_MAPERR
SEGV_ACCERR /* Invalid permissions for mapped object. */
# define SEGV_ACCERR SEGV_ACCERR
};
/* `si_code' values for SIGBUS signal. */
enum
{
BUS_ADRALN = 1, /* Invalid address alignment. */
# define BUS_ADRALN BUS_ADRALN
BUS_ADRERR, /* Non-existant physical address. */
# define BUS_ADRERR BUS_ADRERR
BUS_OBJERR, /* Object specific hardware error. */
# define BUS_OBJERR BUS_OBJERR
BUS_MCEERR_AR, /* Hardware memory error: action required. */
# define BUS_MCEERR_AR BUS_MCEERR_AR
BUS_MCEERR_AO /* Hardware memory error: action optional. */
# define BUS_MCEERR_AO BUS_MCEERR_AO
};
# endif
# 250 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# ifdef __USE_XOPEN_EXTENDED
/* `si_code' values for SIGTRAP signal. */
enum
{
TRAP_BRKPT = 1, /* Process breakpoint. */
# define TRAP_BRKPT TRAP_BRKPT
TRAP_TRACE /* Process trace trap. */
# define TRAP_TRACE TRAP_TRACE
};
# endif
# 261 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
/* `si_code' values for SIGCHLD signal. */
enum
{
CLD_EXITED = 1, /* Child has exited. */
# define CLD_EXITED CLD_EXITED
CLD_KILLED, /* Child was killed. */
# define CLD_KILLED CLD_KILLED
CLD_DUMPED, /* Child terminated abnormally. */
# define CLD_DUMPED CLD_DUMPED
CLD_TRAPPED, /* Traced child has trapped. */
# define CLD_TRAPPED CLD_TRAPPED
CLD_STOPPED, /* Child has stopped. */
# define CLD_STOPPED CLD_STOPPED
CLD_CONTINUED /* Stopped child has continued. */
# define CLD_CONTINUED CLD_CONTINUED
};
/* `si_code' values for SIGPOLL signal. */
enum
{
POLL_IN = 1, /* Data input available. */
# define POLL_IN POLL_IN
POLL_OUT, /* Output buffers available. */
# define POLL_OUT POLL_OUT
POLL_MSG, /* Input message available. */
# define POLL_MSG POLL_MSG
POLL_ERR, /* I/O error. */
# define POLL_ERR POLL_ERR
POLL_PRI, /* High priority input available. */
# define POLL_PRI POLL_PRI
POLL_HUP /* Device disconnected. */
# define POLL_HUP POLL_HUP
};
# endif
# 297 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# undef __need_siginfo_t
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
# 300 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
#if (defined _SIGNAL_H || defined __need_sigevent_t) \
&& !defined __have_sigevent_t
# define __have_sigevent_t 1
/* Structure to transport application-defined values with signals. */
# define __SIGEV_MAX_SIZE 64
# if __WORDSIZE == 64
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
# else
# 311 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
# endif
# 313 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
/* Forward declaration. */
# ifndef __have_pthread_attr_t
typedef union pthread_attr_t pthread_attr_t;
# define __have_pthread_attr_t 1
# endif
# 319 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
typedef struct sigevent
{
sigval_t sigev_value;
int sigev_signo;
int sigev_notify;
union
{
int _pad[__SIGEV_PAD_SIZE];
/* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
thread to receive the signal. */
__pid_t _tid;
struct
{
void (*_function) (sigval_t); /* Function to start. */
pthread_attr_t *_attribute; /* Thread attributes. */
} _sigev_thread;
} _sigev_un;
} sigevent_t;
/* POSIX names to access some of the members. */
# define sigev_notify_function _sigev_un._sigev_thread._function
# define sigev_notify_attributes _sigev_un._sigev_thread._attribute
/* `sigev_notify' values. */
enum
{
SIGEV_SIGNAL = 0, /* Notify via signal. */
# define SIGEV_SIGNAL SIGEV_SIGNAL
SIGEV_NONE, /* Other notification: meaningless. */
# define SIGEV_NONE SIGEV_NONE
SIGEV_THREAD, /* Deliver via thread creation. */
# define SIGEV_THREAD SIGEV_THREAD
SIGEV_THREAD_ID = 4 /* Send signal to specific thread. */
#define SIGEV_THREAD_ID SIGEV_THREAD_ID
};
#endif /* have _SIGNAL_H. */
# 361 "/usr/include/x86_64-linux-gnu/bits/siginfo.h" 3 4
# 81 "/usr/include/signal.h" 2 3 4
#endif
# 82 "/usr/include/signal.h" 3 4
/* Type of a signal handler. */
typedef void (*__sighandler_t) (int);
/* The X/Open definition of `signal' specifies the SVID semantic. Use
the additional function `sysv_signal' when X/Open compatibility is
requested. */
extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
__THROW;
#ifdef __USE_GNU
extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
__THROW;
#endif
# 96 "/usr/include/signal.h" 3 4
/* Set the handler for the signal SIG to HANDLER, returning the old
handler, or SIG_ERR on error.
By default `signal' has the BSD semantic. */
__BEGIN_NAMESPACE_STD
#ifdef __USE_MISC
extern __sighandler_t signal (int __sig, __sighandler_t __handler)
__THROW;
#else
# 105 "/usr/include/signal.h" 3 4
/* Make sure the used `signal' implementation is the SVID version. */
# ifdef __REDIRECT_NTH
extern __sighandler_t __REDIRECT_NTH (signal,
(int __sig, __sighandler_t __handler),
__sysv_signal);
# else
# 111 "/usr/include/signal.h" 3 4
# define signal __sysv_signal
# endif
# 113 "/usr/include/signal.h" 3 4
#endif
# 114 "/usr/include/signal.h" 3 4
__END_NAMESPACE_STD
#ifdef __USE_XOPEN
/* The X/Open definition of `signal' conflicts with the BSD version.
So they defined another function `bsd_signal'. */
extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler)
__THROW;
#endif
# 122 "/usr/include/signal.h" 3 4
/* Send signal SIG to process number PID. If PID is zero,
send SIG to all processes in the current process's process group.
If PID is < -1, send SIG to all processes in process group - PID. */
#ifdef __USE_POSIX
extern int kill (__pid_t __pid, int __sig) __THROW;
#endif /* Use POSIX. */
# 129 "/usr/include/signal.h" 3 4
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
/* Send SIG to all processes in process group PGRP.
If PGRP is zero, send SIG to all processes in
the current process's process group. */
extern int killpg (__pid_t __pgrp, int __sig) __THROW;
#endif /* Use misc || X/Open Unix. */
# 136 "/usr/include/signal.h" 3 4
__BEGIN_NAMESPACE_STD
/* Raise signal SIG, i.e., send SIG to yourself. */
extern int raise (int __sig) __THROW;
__END_NAMESPACE_STD
#ifdef __USE_MISC
/* SVID names for the same things. */
extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
__THROW;
extern int gsignal (int __sig) __THROW;
#endif /* Use misc. */
# 148 "/usr/include/signal.h" 3 4
#ifdef __USE_XOPEN2K8
/* Print a message describing the meaning of the given signal number. */
extern void psignal (int __sig, const char *__s);
/* Print a message describing the meaning of the given signal information. */
extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
#endif /* POSIX 2008. */
# 156 "/usr/include/signal.h" 3 4
/* The `sigpause' function in X/Open defines the argument as the
signal number. This requires redirecting to another function
because the default version in glibc uses an old BSD interface.
This function is a cancellation point and therefore not marked with
__THROW. */
#ifdef __USE_XOPEN
# ifdef __GNUC__
extern int sigpause (int __sig) __asm__ ("__xpg_sigpause");
# else
# 170 "/usr/include/signal.h" 3 4
extern int __sigpause (int __sig_or_mask, int __is_sig);
/* Remove a signal from the signal mask and suspend the process. */
# define sigpause(sig) __sigpause ((sig), 1)
# endif
# 174 "/usr/include/signal.h" 3 4
#endif
# 175 "/usr/include/signal.h" 3 4
#ifdef __USE_MISC
/* None of the following functions should be used anymore. They are here
only for compatibility. A single word (`int') is not guaranteed to be
enough to hold a complete signal mask and therefore these functions
simply do not work in many situations. Use `sigprocmask' instead. */
/* Compute mask for signal SIG. */
# define sigmask(sig) __sigmask(sig)
/* Block signals in MASK, returning the old mask. */
extern int sigblock (int __mask) __THROW __attribute_deprecated__;
/* Set the mask of blocked signals to MASK, returning the old mask. */
extern int sigsetmask (int __mask) __THROW __attribute_deprecated__;
/* Return currently selected signal mask. */
extern int siggetmask (void) __THROW __attribute_deprecated__;
#endif /* Use misc. */
# 195 "/usr/include/signal.h" 3 4
#ifdef __USE_MISC
# define NSIG _NSIG
#endif
# 200 "/usr/include/signal.h" 3 4
#ifdef __USE_GNU
typedef __sighandler_t sighandler_t;
#endif
# 204 "/usr/include/signal.h" 3 4
/* 4.4 BSD uses the name `sig_t' for this. */
#ifdef __USE_MISC
typedef __sighandler_t sig_t;
#endif
# 209 "/usr/include/signal.h" 3 4
#ifdef __USE_POSIX
/* Clear all signals from SET. */
extern int sigemptyset (sigset_t *__set) __THROW __nonnull ((1));
/* Set all signals in SET. */
extern int sigfillset (sigset_t *__set) __THROW __nonnull ((1));
/* Add SIGNO to SET. */
extern int sigaddset (sigset_t *__set, int __signo) __THROW __nonnull ((1));
/* Remove SIGNO from SET. */
extern int sigdelset (sigset_t *__set, int __signo) __THROW __nonnull ((1));
/* Return 1 if SIGNO is in SET, 0 if not. */
extern int sigismember (const sigset_t *__set, int __signo)
__THROW __nonnull ((1));
# ifdef __USE_GNU
/* Return non-empty value is SET is not empty. */
extern int sigisemptyset (const sigset_t *__set) __THROW __nonnull ((1));
/* Build new signal set by combining the two inputs set using logical AND. */
extern int sigandset (sigset_t *__set, const sigset_t *__left,
const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
/* Build new signal set by combining the two inputs set using logical OR. */
extern int sigorset (sigset_t *__set, const sigset_t *__left,
const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
# endif /* GNU */
# 240 "/usr/include/signal.h" 3 4
/* Get the system-specific definitions of `struct sigaction'
and the `SA_*' and `SIG_*'. constants. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigaction.h>
#endif /* expanded by -frewrite-includes */
# 243 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 1 3 4
/* The proper definitions for Linux's sigaction.
Copyright (C) 1993-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SIGNAL_H
# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
#endif
# 22 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
/* Structure describing the action to be taken when a signal arrives. */
struct sigaction
{
/* Signal handler. */
#ifdef __USE_POSIX199309
union
{
/* Used if SA_SIGINFO is not set. */
__sighandler_t sa_handler;
/* Used if SA_SIGINFO is set. */
void (*sa_sigaction) (int, siginfo_t *, void *);
}
__sigaction_handler;
# define sa_handler __sigaction_handler.sa_handler
# define sa_sigaction __sigaction_handler.sa_sigaction
#else
# 39 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
__sighandler_t sa_handler;
#endif
# 41 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
/* Additional set of signals to be blocked. */
__sigset_t sa_mask;
/* Special flags. */
int sa_flags;
/* Restore handler. */
void (*sa_restorer) (void);
};
/* Bits in `sa_flags'. */
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
#define SA_SIGINFO 4 /* Invoke signal-catching function with
three arguments instead of one. */
#if defined __USE_UNIX98 || defined __USE_MISC
# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
#endif
# 60 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
its handler is being executed. */
# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
#endif
# 66 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
#ifdef __USE_MISC
# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
/* Some aliases for the SA_ constants. */
# define SA_NOMASK SA_NODEFER
# define SA_ONESHOT SA_RESETHAND
# define SA_STACK SA_ONSTACK
#endif
# 74 "/usr/include/x86_64-linux-gnu/bits/sigaction.h" 3 4
/* Values for the HOW argument to `sigprocmask'. */
#define SIG_BLOCK 0 /* Block signals. */
#define SIG_UNBLOCK 1 /* Unblock signals. */
#define SIG_SETMASK 2 /* Set the set of blocked signals. */
# 244 "/usr/include/signal.h" 2 3 4
/* Get and/or change the set of blocked signals. */
extern int sigprocmask (int __how, const sigset_t *__restrict __set,
sigset_t *__restrict __oset) __THROW;
/* Change the set of blocked signals to SET,
wait until a signal arrives, and restore the set of blocked signals.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigsuspend (const sigset_t *__set) __nonnull ((1));
/* Get and/or set the action for signal SIG. */
extern int sigaction (int __sig, const struct sigaction *__restrict __act,
struct sigaction *__restrict __oact) __THROW;
/* Put in SET all signals that are blocked and waiting to be delivered. */
extern int sigpending (sigset_t *__set) __THROW __nonnull ((1));
/* Select any of pending signals from SET or wait for any to arrive.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
__nonnull ((1, 2));
# ifdef __USE_POSIX199309
/* Select any of pending signals from SET and place information in INFO.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigwaitinfo (const sigset_t *__restrict __set,
siginfo_t *__restrict __info) __nonnull ((1));
/* Select any of pending signals from SET and place information in INFO.
Wait the time specified by TIMEOUT if no signal is pending.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigtimedwait (const sigset_t *__restrict __set,
siginfo_t *__restrict __info,
const struct timespec *__restrict __timeout)
__nonnull ((1));
/* Send signal SIG to the process PID. Associate data in VAL with the
signal. */
extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
__THROW;
# endif /* Use POSIX 199306. */
# 294 "/usr/include/signal.h" 3 4
#endif /* Use POSIX. */
# 296 "/usr/include/signal.h" 3 4
#ifdef __USE_MISC
/* Names of the signals. This variable exists only for compatibility.
Use `strsignal' instead (see <string.h>). */
extern const char *const _sys_siglist[_NSIG];
extern const char *const sys_siglist[_NSIG];
/* Get machine-dependent `struct sigcontext' and signal subcodes. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigcontext.h>
#endif /* expanded by -frewrite-includes */
# 306 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 1 3 4
/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGCONTEXT_H
#define _BITS_SIGCONTEXT_H 1
#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
# 24 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
#define FP_XSTATE_MAGIC1 0x46505853U
#define FP_XSTATE_MAGIC2 0x46505845U
#define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2)
struct _fpx_sw_bytes
{
__uint32_t magic1;
__uint32_t extended_size;
__uint64_t xstate_bv;
__uint32_t xstate_size;
__uint32_t padding[7];
};
struct _fpreg
{
unsigned short significand[4];
unsigned short exponent;
};
struct _fpxreg
{
unsigned short significand[4];
unsigned short exponent;
unsigned short padding[3];
};
struct _xmmreg
{
__uint32_t element[4];
};
#ifndef __x86_64__
struct _fpstate
{
/* Regular FPU environment. */
__uint32_t cw;
__uint32_t sw;
__uint32_t tag;
__uint32_t ipoff;
__uint32_t cssel;
__uint32_t dataoff;
__uint32_t datasel;
struct _fpreg _st[8];
unsigned short status;
unsigned short magic;
/* FXSR FPU environment. */
__uint32_t _fxsr_env[6];
__uint32_t mxcsr;
__uint32_t reserved;
struct _fpxreg _fxsr_st[8];
struct _xmmreg _xmm[8];
__uint32_t padding[56];
};
#ifndef sigcontext_struct
/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
we need sigcontext. Some packages have come to rely on
sigcontext_struct being defined on 32-bit x86, so define this for
their benefit. */
# define sigcontext_struct sigcontext
#endif
# 90 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
#define X86_FXSR_MAGIC 0x0000
struct sigcontext
{
unsigned short gs, __gsh;
unsigned short fs, __fsh;
unsigned short es, __esh;
unsigned short ds, __dsh;
unsigned long edi;
unsigned long esi;
unsigned long ebp;
unsigned long esp;
unsigned long ebx;
unsigned long edx;
unsigned long ecx;
unsigned long eax;
unsigned long trapno;
unsigned long err;
unsigned long eip;
unsigned short cs, __csh;
unsigned long eflags;
unsigned long esp_at_signal;
unsigned short ss, __ssh;
struct _fpstate * fpstate;
unsigned long oldmask;
unsigned long cr2;
};
#else /* __x86_64__ */
# 120 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
struct _fpstate
{
/* FPU environment matching the 64-bit FXSAVE layout. */
__uint16_t cwd;
__uint16_t swd;
__uint16_t ftw;
__uint16_t fop;
__uint64_t rip;
__uint64_t rdp;
__uint32_t mxcsr;
__uint32_t mxcr_mask;
struct _fpxreg _st[8];
struct _xmmreg _xmm[16];
__uint32_t padding[24];
};
struct sigcontext
{
__uint64_t r8;
__uint64_t r9;
__uint64_t r10;
__uint64_t r11;
__uint64_t r12;
__uint64_t r13;
__uint64_t r14;
__uint64_t r15;
__uint64_t rdi;
__uint64_t rsi;
__uint64_t rbp;
__uint64_t rbx;
__uint64_t rdx;
__uint64_t rax;
__uint64_t rcx;
__uint64_t rsp;
__uint64_t rip;
__uint64_t eflags;
unsigned short cs;
unsigned short gs;
unsigned short fs;
unsigned short __pad0;
__uint64_t err;
__uint64_t trapno;
__uint64_t oldmask;
__uint64_t cr2;
__extension__ union
{
struct _fpstate * fpstate;
__uint64_t __fpstate_word;
};
__uint64_t __reserved1 [8];
};
#endif /* __x86_64__ */
# 174 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
struct _xsave_hdr
{
__uint64_t xstate_bv;
__uint64_t reserved1[2];
__uint64_t reserved2[5];
};
struct _ymmh_state
{
__uint32_t ymmh_space[64];
};
struct _xstate
{
struct _fpstate fpstate;
struct _xsave_hdr xstate_hdr;
struct _ymmh_state ymmh;
};
#endif /* _BITS_SIGCONTEXT_H */
# 195 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h" 3 4
# 307 "/usr/include/signal.h" 2 3 4
/* Restore the state saved in SCP. */
extern int sigreturn (struct sigcontext *__scp) __THROW;
#endif /* Use misc. */
# 312 "/usr/include/signal.h" 3 4
#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
# define __need_size_t
#if 0 /* expanded by -frewrite-includes */
# include <stddef.h>
#endif /* expanded by -frewrite-includes */
# 316 "/usr/include/signal.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stddef.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 1 3
/*===---- stddef.h - Basic type definitions --------------------------------===
*
* Copyright (c) 2008 Eli Friedman
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \
defined(__need_size_t) || defined(__need_wchar_t) || \
defined(__need_NULL) || defined(__need_wint_t)
#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
!defined(__need_wchar_t) && !defined(__need_NULL) && \
!defined(__need_wint_t)
/* Always define miscellaneous pieces when modules are available. */
#if !__has_feature(modules)
#define __STDDEF_H
#endif
# 37 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define __need_ptrdiff_t
#define __need_size_t
#define __need_wchar_t
#define __need_NULL
#define __need_STDDEF_H_misc
/* __need_wint_t is intentionally not defined here. */
#endif
# 44 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_ptrdiff_t)
#if !defined(_PTRDIFF_T) || __has_feature(modules)
/* Always define ptrdiff_t when modules are available. */
#if !__has_feature(modules)
#define _PTRDIFF_T
#endif
# 51 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __PTRDIFF_TYPE__ ptrdiff_t;
#endif
# 53 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_ptrdiff_t
#endif /* defined(__need_ptrdiff_t) */
# 55 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_size_t)
#if !defined(_SIZE_T) || __has_feature(modules)
/* Always define size_t when modules are available. */
#if !__has_feature(modules)
#define _SIZE_T
#endif
# 62 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ size_t;
#endif
# 64 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_size_t
#endif /*defined(__need_size_t) */
# 66 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
* enabled. */
#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \
!defined(_RSIZE_T)) || __has_feature(modules)
/* Always define rsize_t when modules are available. */
#if !__has_feature(modules)
#define _RSIZE_T
#endif
# 76 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ rsize_t;
#endif
# 78 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif /* defined(__need_STDDEF_H_misc) */
# 79 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_wchar_t)
#ifndef __cplusplus
/* Always define wchar_t when modules are available. */
#if !defined(_WCHAR_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WCHAR_T
#if defined(_MSC_EXTENSIONS)
#define _WCHAR_T_DEFINED
#endif
# 89 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 90 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WCHAR_TYPE__ wchar_t;
#endif
# 92 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 93 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wchar_t
#endif /* defined(__need_wchar_t) */
# 95 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_NULL)
#undef NULL
#ifdef __cplusplus
# if !defined(__MINGW32__) && !defined(_MSC_VER)
# define NULL __null
# else
# 102 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL 0
# endif
# 104 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#else
# 105 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL ((void*)0)
#endif
# 107 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#ifdef __cplusplus
#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
namespace std { typedef decltype(nullptr) nullptr_t; }
using ::std::nullptr_t;
#endif
# 112 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 113 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_NULL
#endif /* defined(__need_NULL) */
# 115 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
#if 0 /* expanded by -frewrite-includes */
#include "__stddef_max_align_t.h"
#endif /* expanded by -frewrite-includes */
# 118 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 119 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 120 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define offsetof(t, d) __builtin_offsetof(t, d)
#undef __need_STDDEF_H_misc
#endif /* defined(__need_STDDEF_H_misc) */
# 123 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
#if defined(__need_wint_t)
/* Always define wint_t when modules are available. */
#if !defined(_WINT_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WINT_T
#endif
# 132 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WINT_TYPE__ wint_t;
#endif
# 134 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wint_t
#endif /* __need_wint_t */
# 136 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 138 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 2 3
#pragma GCC visibility pop
# 317 "/usr/include/signal.h" 2 3 4
/* If INTERRUPT is nonzero, make signal SIG interrupt system calls
(causing them to fail with EINTR); if INTERRUPT is zero, make system
calls be restarted after signal SIG. */
extern int siginterrupt (int __sig, int __interrupt) __THROW;
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigstack.h>
#endif /* expanded by -frewrite-includes */
# 323 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/sigstack.h" 1 3 4
/* sigstack, sigaltstack definitions.
Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SIGNAL_H
# error "Never include this file directly. Use <signal.h> instead"
#endif
# 22 "/usr/include/x86_64-linux-gnu/bits/sigstack.h" 3 4
/* Structure describing a signal stack (obsolete). */
struct sigstack
{
void *ss_sp; /* Signal stack pointer. */
int ss_onstack; /* Nonzero if executing on this stack. */
};
/* Possible values for `ss_flags.'. */
enum
{
SS_ONSTACK = 1,
#define SS_ONSTACK SS_ONSTACK
SS_DISABLE
#define SS_DISABLE SS_DISABLE
};
/* Minimum stack size for a signal handler. */
#define MINSIGSTKSZ 2048
/* System default stack size. */
#define SIGSTKSZ 8192
/* Alternate, preferred interface. */
typedef struct sigaltstack
{
void *ss_sp;
int ss_flags;
size_t ss_size;
} stack_t;
# 324 "/usr/include/signal.h" 2 3 4
# if defined __USE_XOPEN || defined __USE_XOPEN2K8
/* This will define `ucontext_t' and `mcontext_t'. */
#if 0 /* expanded by -frewrite-includes */
# include <sys/ucontext.h>
#endif /* expanded by -frewrite-includes */
# 326 "/usr/include/signal.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/ucontext.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/ucontext.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <sys/ucontext.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/ucontext.h" 3
# 1 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 1 3 4
/* Copyright (C) 2001-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
#if 0 /* expanded by -frewrite-includes */
#include <features.h>
#endif /* expanded by -frewrite-includes */
# 21 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <features.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility pop
# 22 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 2 3 4
#if 0 /* expanded by -frewrite-includes */
#include <signal.h>
#endif /* expanded by -frewrite-includes */
# 22 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <signal.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 3
# 1 "/usr/include/signal.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* ISO C99 Standard: 7.14 Signal handling <signal.h>
*/
#ifndef _SIGNAL_H
#if !defined __need_sig_atomic_t && !defined __need_sigset_t
# define _SIGNAL_H
#endif
# 27 "/usr/include/signal.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <features.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/signal.h" 3 4
# 29 "/usr/include/signal.h" 3 4
__BEGIN_DECLS
#if 0 /* expanded by -frewrite-includes */
#include <bits/sigset.h> /* __sigset_t, __sig_atomic_t. */
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/signal.h" 3 4
# 33 "/usr/include/signal.h" 3 4
/* An integral type that can be modified atomically, without the
possibility of a signal arriving in the middle of the operation. */
#if defined __need_sig_atomic_t || defined _SIGNAL_H
# ifndef __sig_atomic_t_defined
# define __sig_atomic_t_defined
__BEGIN_NAMESPACE_STD
typedef __sig_atomic_t sig_atomic_t;
__END_NAMESPACE_STD
# endif
# 43 "/usr/include/signal.h" 3 4
# undef __need_sig_atomic_t
#endif
# 45 "/usr/include/signal.h" 3 4
#if defined __need_sigset_t || (defined _SIGNAL_H && defined __USE_POSIX)
# ifndef __sigset_t_defined
# define __sigset_t_defined
typedef __sigset_t sigset_t;
# endif
# 51 "/usr/include/signal.h" 3 4
# undef __need_sigset_t
#endif
# 53 "/usr/include/signal.h" 3 4
#ifdef _SIGNAL_H
#if 0 /* expanded by -frewrite-includes */
#include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 56 "/usr/include/signal.h" 3 4
# 57 "/usr/include/signal.h" 3 4
#if 0 /* expanded by -frewrite-includes */
#include <bits/signum.h>
#endif /* expanded by -frewrite-includes */
# 57 "/usr/include/signal.h" 3 4
# 58 "/usr/include/signal.h" 3 4
#if defined __USE_XOPEN || defined __USE_XOPEN2K
# ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
#endif
# 64 "/usr/include/signal.h" 3 4
#ifdef __USE_XOPEN
# endif
# 66 "/usr/include/signal.h" 3 4
# ifndef __uid_t_defined
typedef __uid_t uid_t;
# define __uid_t_defined
# endif
# 70 "/usr/include/signal.h" 3 4
#endif /* Unix98 */
# 71 "/usr/include/signal.h" 3 4
#ifdef __USE_POSIX199309
/* We need `struct timespec' later on. */
# define __need_timespec
#if 0 /* expanded by -frewrite-includes */
# include <time.h>
#endif /* expanded by -frewrite-includes */
# 75 "/usr/include/signal.h" 3 4
# 76 "/usr/include/signal.h" 3 4
#endif
# 77 "/usr/include/signal.h" 3 4
#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
/* Get the `siginfo_t' type plus the needed symbols. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/siginfo.h>
#endif /* expanded by -frewrite-includes */
# 80 "/usr/include/signal.h" 3 4
# 81 "/usr/include/signal.h" 3 4
#endif
# 82 "/usr/include/signal.h" 3 4
/* Type of a signal handler. */
typedef void (*__sighandler_t) (int);
/* The X/Open definition of `signal' specifies the SVID semantic. Use
the additional function `sysv_signal' when X/Open compatibility is
requested. */
extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
__THROW;
#ifdef __USE_GNU
extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
__THROW;
#endif
# 96 "/usr/include/signal.h" 3 4
/* Set the handler for the signal SIG to HANDLER, returning the old
handler, or SIG_ERR on error.
By default `signal' has the BSD semantic. */
__BEGIN_NAMESPACE_STD
#ifdef __USE_MISC
extern __sighandler_t signal (int __sig, __sighandler_t __handler)
__THROW;
#else
# 105 "/usr/include/signal.h" 3 4
/* Make sure the used `signal' implementation is the SVID version. */
# ifdef __REDIRECT_NTH
extern __sighandler_t __REDIRECT_NTH (signal,
(int __sig, __sighandler_t __handler),
__sysv_signal);
# else
# 111 "/usr/include/signal.h" 3 4
# define signal __sysv_signal
# endif
# 113 "/usr/include/signal.h" 3 4
#endif
# 114 "/usr/include/signal.h" 3 4
__END_NAMESPACE_STD
#ifdef __USE_XOPEN
/* The X/Open definition of `signal' conflicts with the BSD version.
So they defined another function `bsd_signal'. */
extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler)
__THROW;
#endif
# 122 "/usr/include/signal.h" 3 4
/* Send signal SIG to process number PID. If PID is zero,
send SIG to all processes in the current process's process group.
If PID is < -1, send SIG to all processes in process group - PID. */
#ifdef __USE_POSIX
extern int kill (__pid_t __pid, int __sig) __THROW;
#endif /* Use POSIX. */
# 129 "/usr/include/signal.h" 3 4
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
/* Send SIG to all processes in process group PGRP.
If PGRP is zero, send SIG to all processes in
the current process's process group. */
extern int killpg (__pid_t __pgrp, int __sig) __THROW;
#endif /* Use misc || X/Open Unix. */
# 136 "/usr/include/signal.h" 3 4
__BEGIN_NAMESPACE_STD
/* Raise signal SIG, i.e., send SIG to yourself. */
extern int raise (int __sig) __THROW;
__END_NAMESPACE_STD
#ifdef __USE_MISC
/* SVID names for the same things. */
extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
__THROW;
extern int gsignal (int __sig) __THROW;
#endif /* Use misc. */
# 148 "/usr/include/signal.h" 3 4
#ifdef __USE_XOPEN2K8
/* Print a message describing the meaning of the given signal number. */
extern void psignal (int __sig, const char *__s);
/* Print a message describing the meaning of the given signal information. */
extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
#endif /* POSIX 2008. */
# 156 "/usr/include/signal.h" 3 4
/* The `sigpause' function in X/Open defines the argument as the
signal number. This requires redirecting to another function
because the default version in glibc uses an old BSD interface.
This function is a cancellation point and therefore not marked with
__THROW. */
#ifdef __USE_XOPEN
# ifdef __GNUC__
extern int sigpause (int __sig) __asm__ ("__xpg_sigpause");
# else
# 170 "/usr/include/signal.h" 3 4
extern int __sigpause (int __sig_or_mask, int __is_sig);
/* Remove a signal from the signal mask and suspend the process. */
# define sigpause(sig) __sigpause ((sig), 1)
# endif
# 174 "/usr/include/signal.h" 3 4
#endif
# 175 "/usr/include/signal.h" 3 4
#ifdef __USE_MISC
/* None of the following functions should be used anymore. They are here
only for compatibility. A single word (`int') is not guaranteed to be
enough to hold a complete signal mask and therefore these functions
simply do not work in many situations. Use `sigprocmask' instead. */
/* Compute mask for signal SIG. */
# define sigmask(sig) __sigmask(sig)
/* Block signals in MASK, returning the old mask. */
extern int sigblock (int __mask) __THROW __attribute_deprecated__;
/* Set the mask of blocked signals to MASK, returning the old mask. */
extern int sigsetmask (int __mask) __THROW __attribute_deprecated__;
/* Return currently selected signal mask. */
extern int siggetmask (void) __THROW __attribute_deprecated__;
#endif /* Use misc. */
# 195 "/usr/include/signal.h" 3 4
#ifdef __USE_MISC
# define NSIG _NSIG
#endif
# 200 "/usr/include/signal.h" 3 4
#ifdef __USE_GNU
typedef __sighandler_t sighandler_t;
#endif
# 204 "/usr/include/signal.h" 3 4
/* 4.4 BSD uses the name `sig_t' for this. */
#ifdef __USE_MISC
typedef __sighandler_t sig_t;
#endif
# 209 "/usr/include/signal.h" 3 4
#ifdef __USE_POSIX
/* Clear all signals from SET. */
extern int sigemptyset (sigset_t *__set) __THROW __nonnull ((1));
/* Set all signals in SET. */
extern int sigfillset (sigset_t *__set) __THROW __nonnull ((1));
/* Add SIGNO to SET. */
extern int sigaddset (sigset_t *__set, int __signo) __THROW __nonnull ((1));
/* Remove SIGNO from SET. */
extern int sigdelset (sigset_t *__set, int __signo) __THROW __nonnull ((1));
/* Return 1 if SIGNO is in SET, 0 if not. */
extern int sigismember (const sigset_t *__set, int __signo)
__THROW __nonnull ((1));
# ifdef __USE_GNU
/* Return non-empty value is SET is not empty. */
extern int sigisemptyset (const sigset_t *__set) __THROW __nonnull ((1));
/* Build new signal set by combining the two inputs set using logical AND. */
extern int sigandset (sigset_t *__set, const sigset_t *__left,
const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
/* Build new signal set by combining the two inputs set using logical OR. */
extern int sigorset (sigset_t *__set, const sigset_t *__left,
const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
# endif /* GNU */
# 240 "/usr/include/signal.h" 3 4
/* Get the system-specific definitions of `struct sigaction'
and the `SA_*' and `SIG_*'. constants. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigaction.h>
#endif /* expanded by -frewrite-includes */
# 243 "/usr/include/signal.h" 3 4
# 244 "/usr/include/signal.h" 3 4
/* Get and/or change the set of blocked signals. */
extern int sigprocmask (int __how, const sigset_t *__restrict __set,
sigset_t *__restrict __oset) __THROW;
/* Change the set of blocked signals to SET,
wait until a signal arrives, and restore the set of blocked signals.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigsuspend (const sigset_t *__set) __nonnull ((1));
/* Get and/or set the action for signal SIG. */
extern int sigaction (int __sig, const struct sigaction *__restrict __act,
struct sigaction *__restrict __oact) __THROW;
/* Put in SET all signals that are blocked and waiting to be delivered. */
extern int sigpending (sigset_t *__set) __THROW __nonnull ((1));
/* Select any of pending signals from SET or wait for any to arrive.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
__nonnull ((1, 2));
# ifdef __USE_POSIX199309
/* Select any of pending signals from SET and place information in INFO.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigwaitinfo (const sigset_t *__restrict __set,
siginfo_t *__restrict __info) __nonnull ((1));
/* Select any of pending signals from SET and place information in INFO.
Wait the time specified by TIMEOUT if no signal is pending.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int sigtimedwait (const sigset_t *__restrict __set,
siginfo_t *__restrict __info,
const struct timespec *__restrict __timeout)
__nonnull ((1));
/* Send signal SIG to the process PID. Associate data in VAL with the
signal. */
extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
__THROW;
# endif /* Use POSIX 199306. */
# 294 "/usr/include/signal.h" 3 4
#endif /* Use POSIX. */
# 296 "/usr/include/signal.h" 3 4
#ifdef __USE_MISC
/* Names of the signals. This variable exists only for compatibility.
Use `strsignal' instead (see <string.h>). */
extern const char *const _sys_siglist[_NSIG];
extern const char *const sys_siglist[_NSIG];
/* Get machine-dependent `struct sigcontext' and signal subcodes. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigcontext.h>
#endif /* expanded by -frewrite-includes */
# 306 "/usr/include/signal.h" 3 4
# 307 "/usr/include/signal.h" 3 4
/* Restore the state saved in SCP. */
extern int sigreturn (struct sigcontext *__scp) __THROW;
#endif /* Use misc. */
# 312 "/usr/include/signal.h" 3 4
#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
# define __need_size_t
#if 0 /* expanded by -frewrite-includes */
# include <stddef.h>
#endif /* expanded by -frewrite-includes */
# 316 "/usr/include/signal.h" 3 4
# 317 "/usr/include/signal.h" 3 4
/* If INTERRUPT is nonzero, make signal SIG interrupt system calls
(causing them to fail with EINTR); if INTERRUPT is zero, make system
calls be restarted after signal SIG. */
extern int siginterrupt (int __sig, int __interrupt) __THROW;
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigstack.h>
#endif /* expanded by -frewrite-includes */
# 323 "/usr/include/signal.h" 3 4
# 324 "/usr/include/signal.h" 3 4
# if defined __USE_XOPEN || defined __USE_XOPEN2K8
/* This will define `ucontext_t' and `mcontext_t'. */
#if 0 /* expanded by -frewrite-includes */
# include <sys/ucontext.h>
#endif /* expanded by -frewrite-includes */
# 326 "/usr/include/signal.h" 3 4
# 327 "/usr/include/signal.h" 3 4
# endif
# 328 "/usr/include/signal.h" 3 4
/* Run signals handlers on the stack specified by SS (if not NULL).
If OSS is not NULL, it is filled in with the old signal stack status.
This interface is obsolete and on many platform not implemented. */
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
__THROW __attribute_deprecated__;
/* Alternate signal handler stack interface.
This interface should always be preferred over `sigstack'. */
extern int sigaltstack (const struct sigaltstack *__restrict __ss,
struct sigaltstack *__restrict __oss) __THROW;
#endif /* Use POSIX.1-2008 or X/Open Unix. */
# 341 "/usr/include/signal.h" 3 4
#ifdef __USE_XOPEN_EXTENDED
/* Simplified interface for signal management. */
/* Add SIG to the calling process' signal mask. */
extern int sighold (int __sig) __THROW;
/* Remove SIG from the calling process' signal mask. */
extern int sigrelse (int __sig) __THROW;
/* Set the disposition of SIG to SIG_IGN. */
extern int sigignore (int __sig) __THROW;
/* Set the disposition of SIG. */
extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW;
#endif
# 357 "/usr/include/signal.h" 3 4
#if defined __USE_POSIX199506 || defined __USE_UNIX98
/* Some of the functions for handling signals in threaded programs must
be defined here. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/pthreadtypes.h>
#endif /* expanded by -frewrite-includes */
# 361 "/usr/include/signal.h" 3 4
# 362 "/usr/include/signal.h" 3 4
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigthread.h>
#endif /* expanded by -frewrite-includes */
# 362 "/usr/include/signal.h" 3 4
# 363 "/usr/include/signal.h" 3 4
#endif /* use Unix98 */
# 364 "/usr/include/signal.h" 3 4
/* The following functions are used internally in the C library and in
other code which need deep insights. */
/* Return number of available real-time signal with highest priority. */
extern int __libc_current_sigrtmin (void) __THROW;
/* Return number of available real-time signal with lowest priority. */
extern int __libc_current_sigrtmax (void) __THROW;
#endif /* signal.h */
# 374 "/usr/include/signal.h" 3 4
__END_DECLS
#endif /* not signal.h */
# 378 "/usr/include/signal.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 2 3
#pragma GCC visibility pop
# 23 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 2 3 4
/* We need the signal context definitions even if they are not used
included in <signal.h>. */
#if 0 /* expanded by -frewrite-includes */
#include <bits/sigcontext.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
# 27 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
#ifdef __x86_64__
/* Type for general register. */
__extension__ typedef long long int greg_t;
/* Number of general registers. */
#define NGREG 23
/* Container for all general registers. */
typedef greg_t gregset_t[NGREG];
#ifdef __USE_GNU
/* Number of each register in the `gregset_t' array. */
enum
{
REG_R8 = 0,
# define REG_R8 REG_R8
REG_R9,
# define REG_R9 REG_R9
REG_R10,
# define REG_R10 REG_R10
REG_R11,
# define REG_R11 REG_R11
REG_R12,
# define REG_R12 REG_R12
REG_R13,
# define REG_R13 REG_R13
REG_R14,
# define REG_R14 REG_R14
REG_R15,
# define REG_R15 REG_R15
REG_RDI,
# define REG_RDI REG_RDI
REG_RSI,
# define REG_RSI REG_RSI
REG_RBP,
# define REG_RBP REG_RBP
REG_RBX,
# define REG_RBX REG_RBX
REG_RDX,
# define REG_RDX REG_RDX
REG_RAX,
# define REG_RAX REG_RAX
REG_RCX,
# define REG_RCX REG_RCX
REG_RSP,
# define REG_RSP REG_RSP
REG_RIP,
# define REG_RIP REG_RIP
REG_EFL,
# define REG_EFL REG_EFL
REG_CSGSFS, /* Actually short cs, gs, fs, __pad0. */
# define REG_CSGSFS REG_CSGSFS
REG_ERR,
# define REG_ERR REG_ERR
REG_TRAPNO,
# define REG_TRAPNO REG_TRAPNO
REG_OLDMASK,
# define REG_OLDMASK REG_OLDMASK
REG_CR2
# define REG_CR2 REG_CR2
};
#endif
# 91 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
struct _libc_fpxreg
{
unsigned short int significand[4];
unsigned short int exponent;
unsigned short int padding[3];
};
struct _libc_xmmreg
{
__uint32_t element[4];
};
struct _libc_fpstate
{
/* 64-bit FXSAVE format. */
__uint16_t cwd;
__uint16_t swd;
__uint16_t ftw;
__uint16_t fop;
__uint64_t rip;
__uint64_t rdp;
__uint32_t mxcsr;
__uint32_t mxcr_mask;
struct _libc_fpxreg _st[8];
struct _libc_xmmreg _xmm[16];
__uint32_t padding[24];
};
/* Structure to describe FPU registers. */
typedef struct _libc_fpstate *fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
gregset_t gregs;
/* Note that fpregs is a pointer. */
fpregset_t fpregs;
__extension__ unsigned long long __reserved1 [8];
} mcontext_t;
/* Userlevel context. */
typedef struct ucontext
{
unsigned long int uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
__sigset_t uc_sigmask;
struct _libc_fpstate __fpregs_mem;
} ucontext_t;
#else /* !__x86_64__ */
# 144 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
/* Type for general register. */
typedef int greg_t;
/* Number of general registers. */
#define NGREG 19
/* Container for all general registers. */
typedef greg_t gregset_t[NGREG];
#ifdef __USE_GNU
/* Number of each register is the `gregset_t' array. */
enum
{
REG_GS = 0,
# define REG_GS REG_GS
REG_FS,
# define REG_FS REG_FS
REG_ES,
# define REG_ES REG_ES
REG_DS,
# define REG_DS REG_DS
REG_EDI,
# define REG_EDI REG_EDI
REG_ESI,
# define REG_ESI REG_ESI
REG_EBP,
# define REG_EBP REG_EBP
REG_ESP,
# define REG_ESP REG_ESP
REG_EBX,
# define REG_EBX REG_EBX
REG_EDX,
# define REG_EDX REG_EDX
REG_ECX,
# define REG_ECX REG_ECX
REG_EAX,
# define REG_EAX REG_EAX
REG_TRAPNO,
# define REG_TRAPNO REG_TRAPNO
REG_ERR,
# define REG_ERR REG_ERR
REG_EIP,
# define REG_EIP REG_EIP
REG_CS,
# define REG_CS REG_CS
REG_EFL,
# define REG_EFL REG_EFL
REG_UESP,
# define REG_UESP REG_UESP
REG_SS
# define REG_SS REG_SS
};
#endif
# 198 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
/* Definitions taken from the kernel headers. */
struct _libc_fpreg
{
unsigned short int significand[4];
unsigned short int exponent;
};
struct _libc_fpstate
{
unsigned long int cw;
unsigned long int sw;
unsigned long int tag;
unsigned long int ipoff;
unsigned long int cssel;
unsigned long int dataoff;
unsigned long int datasel;
struct _libc_fpreg _st[8];
unsigned long int status;
};
/* Structure to describe FPU registers. */
typedef struct _libc_fpstate *fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
gregset_t gregs;
/* Due to Linux's history we have to use a pointer here. The SysV/i386
ABI requires a struct with the values. */
fpregset_t fpregs;
unsigned long int oldmask;
unsigned long int cr2;
} mcontext_t;
/* Userlevel context. */
typedef struct ucontext
{
unsigned long int uc_flags;
struct ucontext *uc_link;
stack_t uc_stack;
mcontext_t uc_mcontext;
__sigset_t uc_sigmask;
struct _libc_fpstate __fpregs_mem;
} ucontext_t;
#endif /* !__x86_64__ */
# 245 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
#endif /* sys/ucontext.h */
# 247 "/usr/include/x86_64-linux-gnu/sys/ucontext.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/sys/ucontext.h" 2 3
#pragma GCC visibility pop
# 327 "/usr/include/signal.h" 2 3 4
# endif
# 328 "/usr/include/signal.h" 3 4
/* Run signals handlers on the stack specified by SS (if not NULL).
If OSS is not NULL, it is filled in with the old signal stack status.
This interface is obsolete and on many platform not implemented. */
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
__THROW __attribute_deprecated__;
/* Alternate signal handler stack interface.
This interface should always be preferred over `sigstack'. */
extern int sigaltstack (const struct sigaltstack *__restrict __ss,
struct sigaltstack *__restrict __oss) __THROW;
#endif /* Use POSIX.1-2008 or X/Open Unix. */
# 341 "/usr/include/signal.h" 3 4
#ifdef __USE_XOPEN_EXTENDED
/* Simplified interface for signal management. */
/* Add SIG to the calling process' signal mask. */
extern int sighold (int __sig) __THROW;
/* Remove SIG from the calling process' signal mask. */
extern int sigrelse (int __sig) __THROW;
/* Set the disposition of SIG to SIG_IGN. */
extern int sigignore (int __sig) __THROW;
/* Set the disposition of SIG. */
extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __THROW;
#endif
# 357 "/usr/include/signal.h" 3 4
#if defined __USE_POSIX199506 || defined __USE_UNIX98
/* Some of the functions for handling signals in threaded programs must
be defined here. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/pthreadtypes.h>
#endif /* expanded by -frewrite-includes */
# 361 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4
/* Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _BITS_PTHREADTYPES_H
#define _BITS_PTHREADTYPES_H 1
#if 0 /* expanded by -frewrite-includes */
#include <bits/wordsize.h>
#endif /* expanded by -frewrite-includes */
# 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4
/* Determine the wordsize from the preprocessor defines. */
#if defined __x86_64__ && !defined __ILP32__
# define __WORDSIZE 64
#else
# 6 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# define __WORDSIZE 32
#endif
# 8 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
#ifdef __x86_64__
# define __WORDSIZE_TIME64_COMPAT32 1
/* Both x86-64 and x32 use the 64-bit system call interface. */
# define __SYSCALL_WORDSIZE 64
#endif
# 14 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 3 4
# 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4
#ifdef __x86_64__
# if __WORDSIZE == 64
# define __SIZEOF_PTHREAD_ATTR_T 56
# define __SIZEOF_PTHREAD_MUTEX_T 40
# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
# define __SIZEOF_PTHREAD_COND_T 48
# define __SIZEOF_PTHREAD_CONDATTR_T 4
# define __SIZEOF_PTHREAD_RWLOCK_T 56
# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
# define __SIZEOF_PTHREAD_BARRIER_T 32
# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
# else
# 35 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
# define __SIZEOF_PTHREAD_ATTR_T 32
# define __SIZEOF_PTHREAD_MUTEX_T 32
# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
# define __SIZEOF_PTHREAD_COND_T 48
# define __SIZEOF_PTHREAD_CONDATTR_T 4
# define __SIZEOF_PTHREAD_RWLOCK_T 44
# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
# define __SIZEOF_PTHREAD_BARRIER_T 20
# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
# endif
# 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
#else
# 46 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
# define __SIZEOF_PTHREAD_ATTR_T 36
# define __SIZEOF_PTHREAD_MUTEX_T 24
# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
# define __SIZEOF_PTHREAD_COND_T 48
# define __SIZEOF_PTHREAD_CONDATTR_T 4
# define __SIZEOF_PTHREAD_RWLOCK_T 32
# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
# define __SIZEOF_PTHREAD_BARRIER_T 20
# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
#endif
# 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
/* Thread identifiers. The structure of the attribute type is not
exposed on purpose. */
typedef unsigned long int pthread_t;
union pthread_attr_t
{
char __size[__SIZEOF_PTHREAD_ATTR_T];
long int __align;
};
#ifndef __have_pthread_attr_t
typedef union pthread_attr_t pthread_attr_t;
# define __have_pthread_attr_t 1
#endif
# 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
#ifdef __x86_64__
typedef struct __pthread_internal_list
{
struct __pthread_internal_list *__prev;
struct __pthread_internal_list *__next;
} __pthread_list_t;
#else
# 81 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
typedef struct __pthread_internal_slist
{
struct __pthread_internal_slist *__next;
} __pthread_slist_t;
#endif
# 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
/* Data structures for mutex handling. The structure of the attribute
type is not exposed on purpose. */
typedef union
{
struct __pthread_mutex_s
{
int __lock;
unsigned int __count;
int __owner;
#ifdef __x86_64__
unsigned int __nusers;
#endif
# 100 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
/* KIND must stay at this position in the structure to maintain
binary compatibility. */
int __kind;
#ifdef __x86_64__
short __spins;
short __elision;
__pthread_list_t __list;
# define __PTHREAD_MUTEX_HAVE_PREV 1
/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER. */
# define __PTHREAD_SPINS 0, 0
#else
# 111 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
unsigned int __nusers;
__extension__ union
{
struct
{
short __espins;
short __elision;
# define __spins __elision_data.__espins
# define __elision __elision_data.__elision
# define __PTHREAD_SPINS { 0, 0 }
} __elision_data;
__pthread_slist_t __list;
};
#endif
# 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
} __data;
char __size[__SIZEOF_PTHREAD_MUTEX_T];
long int __align;
} pthread_mutex_t;
typedef union
{
char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
int __align;
} pthread_mutexattr_t;
/* Data structure for conditional variable handling. The structure of
the attribute type is not exposed on purpose. */
typedef union
{
struct
{
int __lock;
unsigned int __futex;
__extension__ unsigned long long int __total_seq;
__extension__ unsigned long long int __wakeup_seq;
__extension__ unsigned long long int __woken_seq;
void *__mutex;
unsigned int __nwaiters;
unsigned int __broadcast_seq;
} __data;
char __size[__SIZEOF_PTHREAD_COND_T];
__extension__ long long int __align;
} pthread_cond_t;
typedef union
{
char __size[__SIZEOF_PTHREAD_CONDATTR_T];
int __align;
} pthread_condattr_t;
/* Keys for thread-specific data */
typedef unsigned int pthread_key_t;
/* Once-only execution */
typedef int pthread_once_t;
#if defined __USE_UNIX98 || defined __USE_XOPEN2K
/* Data structure for read-write lock variable handling. The
structure of the attribute type is not exposed on purpose. */
typedef union
{
# ifdef __x86_64__
struct
{
int __lock;
unsigned int __nr_readers;
unsigned int __readers_wakeup;
unsigned int __writer_wakeup;
unsigned int __nr_readers_queued;
unsigned int __nr_writers_queued;
int __writer;
int __shared;
signed char __rwelision;
# ifdef __ILP32__
unsigned char __pad1[3];
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 }
# else
# 192 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
unsigned char __pad1[7];
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
# endif
# 195 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
unsigned long int __pad2;
/* FLAGS must stay at this position in the structure to maintain
binary compatibility. */
unsigned int __flags;
# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
} __data;
# else
# 202 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
struct
{
int __lock;
unsigned int __nr_readers;
unsigned int __readers_wakeup;
unsigned int __writer_wakeup;
unsigned int __nr_readers_queued;
unsigned int __nr_writers_queued;
/* FLAGS must stay at this position in the structure to maintain
binary compatibility. */
unsigned char __flags;
unsigned char __shared;
signed char __rwelision;
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0
unsigned char __pad2;
int __writer;
} __data;
# endif
# 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
char __size[__SIZEOF_PTHREAD_RWLOCK_T];
long int __align;
} pthread_rwlock_t;
typedef union
{
char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
long int __align;
} pthread_rwlockattr_t;
#endif
# 230 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
#ifdef __USE_XOPEN2K
/* POSIX spinlock data type. */
typedef volatile int pthread_spinlock_t;
/* POSIX barriers data type. The structure of the type is
deliberately not exposed. */
typedef union
{
char __size[__SIZEOF_PTHREAD_BARRIER_T];
long int __align;
} pthread_barrier_t;
typedef union
{
char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
int __align;
} pthread_barrierattr_t;
#endif
# 251 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
#ifndef __x86_64__
/* Extra attributes for the cleanup functions. */
# define __cleanup_fct_attribute __attribute__ ((__regparm__ (1)))
#endif
# 257 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
#endif /* bits/pthreadtypes.h */
# 259 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4
# 362 "/usr/include/signal.h" 2 3 4
#if 0 /* expanded by -frewrite-includes */
# include <bits/sigthread.h>
#endif /* expanded by -frewrite-includes */
# 362 "/usr/include/signal.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/sigthread.h" 1 3 4
/* Signal handling function for threaded programs.
Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, see <http://www.gnu.org/licenses/>. */
#ifndef _BITS_SIGTHREAD_H
#define _BITS_SIGTHREAD_H 1
#if !defined _SIGNAL_H && !defined _PTHREAD_H
# error "Never include this file directly. Use <pthread.h> instead"
#endif
# 25 "/usr/include/x86_64-linux-gnu/bits/sigthread.h" 3 4
/* Functions for handling signals. */
/* Modify the signal mask for the calling thread. The arguments have
the same meaning as for sigprocmask(2). */
extern int pthread_sigmask (int __how,
const __sigset_t *__restrict __newmask,
__sigset_t *__restrict __oldmask)__THROW;
/* Send signal SIGNO to the given thread. */
extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;
#ifdef __USE_GNU
/* Queue signal and data to a thread. */
extern int pthread_sigqueue (pthread_t __threadid, int __signo,
const union sigval __value) __THROW;
#endif
# 42 "/usr/include/x86_64-linux-gnu/bits/sigthread.h" 3 4
#endif /* bits/sigthread.h */
# 44 "/usr/include/x86_64-linux-gnu/bits/sigthread.h" 3 4
# 363 "/usr/include/signal.h" 2 3 4
#endif /* use Unix98 */
# 364 "/usr/include/signal.h" 3 4
/* The following functions are used internally in the C library and in
other code which need deep insights. */
/* Return number of available real-time signal with highest priority. */
extern int __libc_current_sigrtmin (void) __THROW;
/* Return number of available real-time signal with lowest priority. */
extern int __libc_current_sigrtmax (void) __THROW;
#endif /* signal.h */
# 374 "/usr/include/signal.h" 3 4
__END_DECLS
#endif /* not signal.h */
# 378 "/usr/include/signal.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/signal.h" 2 3
#pragma GCC visibility pop
# 34 "/usr/include/glib-2.0/glib/gbacktrace.h" 2 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
void g_on_error_query (const gchar *prg_name);
GLIB_AVAILABLE_IN_ALL
void g_on_error_stack_trace (const gchar *prg_name);
/**
* G_BREAKPOINT:
*
* Inserts a breakpoint instruction into the code.
*
* On x86 and alpha systems this is implemented as a soft interrupt
* and on other architectures it raises a `SIGTRAP` signal.
*/
#if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) && __GNUC__ >= 2
# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
#elif (defined (_MSC_VER) || defined (__DMC__)) && defined (_M_IX86)
# 53 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# define G_BREAKPOINT() G_STMT_START{ __asm int 3h }G_STMT_END
#elif defined (_MSC_VER)
# 55 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# define G_BREAKPOINT() G_STMT_START{ __debugbreak(); }G_STMT_END
#elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2
# 57 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
#elif defined (__APPLE__)
# 59 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# define G_BREAKPOINT() G_STMT_START{ __builtin_trap(); }G_STMT_END
#else /* !__i386__ && !__alpha__ */
# 61 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# define G_BREAKPOINT() G_STMT_START{ raise (SIGTRAP); }G_STMT_END
#endif /* __i386__ */
# 63 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
G_END_DECLS
#endif /* __G_BACKTRACE_H__ */
# 67 "/usr/include/glib-2.0/glib/gbacktrace.h" 3
# 35 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbase64.h>
#endif /* expanded by -frewrite-includes */
# 35 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gbase64.h" 1 3
/* gbase64.h - Base64 coding functions
*
* Copyright (C) 2005 Alexander Larsson <alexl@redhat.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_BASE64_H__
#define __G_BASE64_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 25 "/usr/include/glib-2.0/glib/gbase64.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/gbase64.h" 3
# 27 "/usr/include/glib-2.0/glib/gbase64.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
gsize g_base64_encode_step (const guchar *in,
gsize len,
gboolean break_lines,
gchar *out,
gint *state,
gint *save);
GLIB_AVAILABLE_IN_ALL
gsize g_base64_encode_close (gboolean break_lines,
gchar *out,
gint *state,
gint *save);
GLIB_AVAILABLE_IN_ALL
gchar* g_base64_encode (const guchar *data,
gsize len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gsize g_base64_decode_step (const gchar *in,
gsize len,
guchar *out,
gint *state,
guint *save);
GLIB_AVAILABLE_IN_ALL
guchar *g_base64_decode (const gchar *text,
gsize *out_len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
guchar *g_base64_decode_inplace (gchar *text,
gsize *out_len);
G_END_DECLS
#endif /* __G_BASE64_H__ */
# 62 "/usr/include/glib-2.0/glib/gbase64.h" 3
# 36 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbitlock.h>
#endif /* expanded by -frewrite-includes */
# 36 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gbitlock.h" 1 3
/*
* Copyright © 2008 Ryan Lortie
* Copyright © 2010 Codethink Limited
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_BITLOCK_H__
#define __G_BITLOCK_H__
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 24 "/usr/include/glib-2.0/glib/gbitlock.h" 3
# 25 "/usr/include/glib-2.0/glib/gbitlock.h" 3
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 29 "/usr/include/glib-2.0/glib/gbitlock.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
void g_bit_lock (volatile gint *address,
gint lock_bit);
GLIB_AVAILABLE_IN_ALL
gboolean g_bit_trylock (volatile gint *address,
gint lock_bit);
GLIB_AVAILABLE_IN_ALL
void g_bit_unlock (volatile gint *address,
gint lock_bit);
GLIB_AVAILABLE_IN_ALL
void g_pointer_bit_lock (volatile void *address,
gint lock_bit);
GLIB_AVAILABLE_IN_ALL
gboolean g_pointer_bit_trylock (volatile void *address,
gint lock_bit);
GLIB_AVAILABLE_IN_ALL
void g_pointer_bit_unlock (volatile void *address,
gint lock_bit);
#ifdef __GNUC__
#define g_pointer_bit_lock(address, lock_bit) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \
g_pointer_bit_lock ((address), (lock_bit)); \
}))
#define g_pointer_bit_trylock(address, lock_bit) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \
g_pointer_bit_trylock ((address), (lock_bit)); \
}))
#define g_pointer_bit_unlock(address, lock_bit) \
(G_GNUC_EXTENSION ({ \
G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \
g_pointer_bit_unlock ((address), (lock_bit)); \
}))
#endif
# 73 "/usr/include/glib-2.0/glib/gbitlock.h" 3
G_END_DECLS
#endif /* __G_BITLOCK_H_ */
# 77 "/usr/include/glib-2.0/glib/gbitlock.h" 3
# 37 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbookmarkfile.h>
#endif /* expanded by -frewrite-includes */
# 37 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 1 3
/* gbookmarkfile.h: parsing and building desktop bookmarks
*
* Copyright (C) 2005-2006 Emmanuele Bassi
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
*/
#ifndef __G_BOOKMARK_FILE_H__
#define __G_BOOKMARK_FILE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 3
# 28 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <time.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <time.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility pop
# 29 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 2 3
G_BEGIN_DECLS
/**
* G_BOOKMARK_FILE_ERROR:
*
* Error domain for bookmark file parsing.
* Errors in this domain will be from the #GBookmarkFileError
* enumeration. See #GError for information on error domains.
*/
#define G_BOOKMARK_FILE_ERROR (g_bookmark_file_error_quark ())
/**
* GBookmarkFileError:
* @G_BOOKMARK_FILE_ERROR_INVALID_URI: URI was ill-formed
* @G_BOOKMARK_FILE_ERROR_INVALID_VALUE: a requested field was not found
* @G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: a requested application did
* not register a bookmark
* @G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: a requested URI was not found
* @G_BOOKMARK_FILE_ERROR_READ: document was ill formed
* @G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: the text being parsed was
* in an unknown encoding
* @G_BOOKMARK_FILE_ERROR_WRITE: an error occurred while writing
* @G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: requested file was not found
*
* Error codes returned by bookmark file parsing.
*/
typedef enum
{
G_BOOKMARK_FILE_ERROR_INVALID_URI,
G_BOOKMARK_FILE_ERROR_INVALID_VALUE,
G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED,
G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND,
G_BOOKMARK_FILE_ERROR_READ,
G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING,
G_BOOKMARK_FILE_ERROR_WRITE,
G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND
} GBookmarkFileError;
GLIB_AVAILABLE_IN_ALL
GQuark g_bookmark_file_error_quark (void);
/**
* GBookmarkFile:
*
* The `GBookmarkFile` structure contains only
* private data and should not be directly accessed.
*/
typedef struct _GBookmarkFile GBookmarkFile;
GLIB_AVAILABLE_IN_ALL
GBookmarkFile *g_bookmark_file_new (void);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_free (GBookmarkFile *bookmark);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark,
const gchar *filename,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark,
const gchar *data,
gsize length,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark,
const gchar *file,
gchar **full_path,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark,
const gchar *filename,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_title (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *title);
GLIB_AVAILABLE_IN_ALL
gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark,
const gchar *uri,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_description (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *description);
GLIB_AVAILABLE_IN_ALL
gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark,
const gchar *uri,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *mime_type);
GLIB_AVAILABLE_IN_ALL
gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark,
const gchar *uri,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_groups (GBookmarkFile *bookmark,
const gchar *uri,
const gchar **groups,
gsize length);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_add_group (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *group);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *group,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark,
const gchar *uri,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_add_application (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *name,
const gchar *exec);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *name,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark,
const gchar *uri,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *name,
const gchar *exec,
gint count,
time_t stamp,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *name,
gchar **exec,
guint *count,
time_t *stamp,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
const gchar *uri,
gboolean is_private);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark,
const gchar *uri,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_icon (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *href,
const gchar *mime_type);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark,
const gchar *uri,
gchar **href,
gchar **mime_type,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_added (GBookmarkFile *bookmark,
const gchar *uri,
time_t added);
GLIB_AVAILABLE_IN_ALL
time_t g_bookmark_file_get_added (GBookmarkFile *bookmark,
const gchar *uri,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_modified (GBookmarkFile *bookmark,
const gchar *uri,
time_t modified);
GLIB_AVAILABLE_IN_ALL
time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark,
const gchar *uri,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_bookmark_file_set_visited (GBookmarkFile *bookmark,
const gchar *uri,
time_t visited);
GLIB_AVAILABLE_IN_ALL
time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark,
const gchar *uri,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark,
const gchar *uri);
GLIB_AVAILABLE_IN_ALL
gint g_bookmark_file_get_size (GBookmarkFile *bookmark);
GLIB_AVAILABLE_IN_ALL
gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark,
gsize *length) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *group,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark,
const gchar *uri,
const gchar *name,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark,
const gchar *uri,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark,
const gchar *old_uri,
const gchar *new_uri,
GError **error);
G_END_DECLS
#endif /* __G_BOOKMARK_FILE_H__ */
# 256 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 3
# 38 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbytes.h>
#endif /* expanded by -frewrite-includes */
# 38 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gbytes.h" 1 3
/*
* Copyright © 2009, 2010 Codethink Limited
* Copyright © 2011 Collabora Ltd.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
* Stef Walter <stefw@collabora.co.uk>
*/
#ifndef __G_BYTES_H__
#define __G_BYTES_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 28 "/usr/include/glib-2.0/glib/gbytes.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gbytes.h" 3
# 30 "/usr/include/glib-2.0/glib/gbytes.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/garray.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/glib-2.0/glib/gbytes.h" 3
# 31 "/usr/include/glib-2.0/glib/gbytes.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
GBytes * g_bytes_new (gconstpointer data,
gsize size);
GLIB_AVAILABLE_IN_ALL
GBytes * g_bytes_new_take (gpointer data,
gsize size);
GLIB_AVAILABLE_IN_ALL
GBytes * g_bytes_new_static (gconstpointer data,
gsize size);
GLIB_AVAILABLE_IN_ALL
GBytes * g_bytes_new_with_free_func (gconstpointer data,
gsize size,
GDestroyNotify free_func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
GBytes * g_bytes_new_from_bytes (GBytes *bytes,
gsize offset,
gsize length);
GLIB_AVAILABLE_IN_ALL
gconstpointer g_bytes_get_data (GBytes *bytes,
gsize *size);
GLIB_AVAILABLE_IN_ALL
gsize g_bytes_get_size (GBytes *bytes);
GLIB_AVAILABLE_IN_ALL
GBytes * g_bytes_ref (GBytes *bytes);
GLIB_AVAILABLE_IN_ALL
void g_bytes_unref (GBytes *bytes);
GLIB_AVAILABLE_IN_ALL
gpointer g_bytes_unref_to_data (GBytes *bytes,
gsize *size);
GLIB_AVAILABLE_IN_ALL
GByteArray * g_bytes_unref_to_array (GBytes *bytes);
GLIB_AVAILABLE_IN_ALL
guint g_bytes_hash (gconstpointer bytes);
GLIB_AVAILABLE_IN_ALL
gboolean g_bytes_equal (gconstpointer bytes1,
gconstpointer bytes2);
GLIB_AVAILABLE_IN_ALL
gint g_bytes_compare (gconstpointer bytes1,
gconstpointer bytes2);
G_END_DECLS
#endif /* __G_BYTES_H__ */
# 91 "/usr/include/glib-2.0/glib/gbytes.h" 3
# 39 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gcharset.h>
#endif /* expanded by -frewrite-includes */
# 39 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gcharset.h" 1 3
/* gcharset.h - Charset functions
*
* Copyright (C) 2011 Red Hat, Inc.
*
* The GLib Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* The GLib Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the Gnome Library; see the file COPYING.LIB. If not,
* see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_CHARSET_H__
#define __G_CHARSET_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gcharset.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gcharset.h" 3
# 28 "/usr/include/glib-2.0/glib/gcharset.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
gboolean g_get_charset (const char **charset);
GLIB_AVAILABLE_IN_ALL
gchar * g_get_codeset (void);
GLIB_AVAILABLE_IN_ALL
const gchar * const * g_get_language_names (void);
GLIB_AVAILABLE_IN_ALL
gchar ** g_get_locale_variants (const gchar *locale);
G_END_DECLS
#endif /* __G_CHARSET_H__ */
# 44 "/usr/include/glib-2.0/glib/gcharset.h" 3
# 40 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gchecksum.h>
#endif /* expanded by -frewrite-includes */
# 40 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gchecksum.h" 1 3
/* gchecksum.h - data hashing functions
*
* Copyright (C) 2007 Emmanuele Bassi <ebassi@gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_CHECKSUM_H__
#define __G_CHECKSUM_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 25 "/usr/include/glib-2.0/glib/gchecksum.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/gchecksum.h" 3
# 27 "/usr/include/glib-2.0/glib/gchecksum.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbytes.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gchecksum.h" 3
# 28 "/usr/include/glib-2.0/glib/gchecksum.h" 3
G_BEGIN_DECLS
/**
* GChecksumType:
* @G_CHECKSUM_MD5: Use the MD5 hashing algorithm
* @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm
* @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm
* @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm (Since: 2.36)
*
* The hashing algorithm to be used by #GChecksum when performing the
* digest of some data.
*
* Note that the #GChecksumType enumeration may be extended at a later
* date to include new hashing algorithm types.
*
* Since: 2.16
*/
typedef enum {
G_CHECKSUM_MD5,
G_CHECKSUM_SHA1,
G_CHECKSUM_SHA256,
G_CHECKSUM_SHA512
} GChecksumType;
/**
* GChecksum:
*
* An opaque structure representing a checksumming operation.
* To create a new GChecksum, use g_checksum_new(). To free
* a GChecksum, use g_checksum_free().
*
* Since: 2.16
*/
typedef struct _GChecksum GChecksum;
GLIB_AVAILABLE_IN_ALL
gssize g_checksum_type_get_length (GChecksumType checksum_type);
GLIB_AVAILABLE_IN_ALL
GChecksum * g_checksum_new (GChecksumType checksum_type);
GLIB_AVAILABLE_IN_ALL
void g_checksum_reset (GChecksum *checksum);
GLIB_AVAILABLE_IN_ALL
GChecksum * g_checksum_copy (const GChecksum *checksum);
GLIB_AVAILABLE_IN_ALL
void g_checksum_free (GChecksum *checksum);
GLIB_AVAILABLE_IN_ALL
void g_checksum_update (GChecksum *checksum,
const guchar *data,
gssize length);
GLIB_AVAILABLE_IN_ALL
const gchar * g_checksum_get_string (GChecksum *checksum);
GLIB_AVAILABLE_IN_ALL
void g_checksum_get_digest (GChecksum *checksum,
guint8 *buffer,
gsize *digest_len);
GLIB_AVAILABLE_IN_ALL
gchar *g_compute_checksum_for_data (GChecksumType checksum_type,
const guchar *data,
gsize length);
GLIB_AVAILABLE_IN_ALL
gchar *g_compute_checksum_for_string (GChecksumType checksum_type,
const gchar *str,
gssize length);
GLIB_AVAILABLE_IN_2_34
gchar *g_compute_checksum_for_bytes (GChecksumType checksum_type,
GBytes *data);
G_END_DECLS
#endif /* __G_CHECKSUM_H__ */
# 102 "/usr/include/glib-2.0/glib/gchecksum.h" 3
# 41 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gconvert.h>
#endif /* expanded by -frewrite-includes */
# 41 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gconvert.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_CONVERT_H__
#define __G_CONVERT_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gconvert.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gconvert.h" 3
# 33 "/usr/include/glib-2.0/glib/gconvert.h" 3
G_BEGIN_DECLS
/**
* GConvertError:
* @G_CONVERT_ERROR_NO_CONVERSION: Conversion between the requested character
* sets is not supported.
* @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input.
* @G_CONVERT_ERROR_FAILED: Conversion failed for some reason.
* @G_CONVERT_ERROR_PARTIAL_INPUT: Partial character sequence at end of input.
* @G_CONVERT_ERROR_BAD_URI: URI is invalid.
* @G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: Pathname is not an absolute path.
* @G_CONVERT_ERROR_NO_MEMORY: No memory available. Since: 2.40
*
* Error codes returned by character set conversion routines.
*/
typedef enum
{
G_CONVERT_ERROR_NO_CONVERSION,
G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
G_CONVERT_ERROR_FAILED,
G_CONVERT_ERROR_PARTIAL_INPUT,
G_CONVERT_ERROR_BAD_URI,
G_CONVERT_ERROR_NOT_ABSOLUTE_PATH,
G_CONVERT_ERROR_NO_MEMORY
} GConvertError;
/**
* G_CONVERT_ERROR:
*
* Error domain for character set conversions. Errors in this domain will
* be from the #GConvertError enumeration. See #GError for information on
* error domains.
*/
#define G_CONVERT_ERROR g_convert_error_quark()
GLIB_AVAILABLE_IN_ALL
GQuark g_convert_error_quark (void);
/**
* GIConv:
*
* The GIConv struct wraps an iconv() conversion descriptor. It contains
* private data and should only be accessed using the following functions.
*/
typedef struct _GIConv *GIConv;
GLIB_AVAILABLE_IN_ALL
GIConv g_iconv_open (const gchar *to_codeset,
const gchar *from_codeset);
GLIB_AVAILABLE_IN_ALL
gsize g_iconv (GIConv converter,
gchar **inbuf,
gsize *inbytes_left,
gchar **outbuf,
gsize *outbytes_left);
GLIB_AVAILABLE_IN_ALL
gint g_iconv_close (GIConv converter);
GLIB_AVAILABLE_IN_ALL
gchar* g_convert (const gchar *str,
gssize len,
const gchar *to_codeset,
const gchar *from_codeset,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_convert_with_iconv (const gchar *str,
gssize len,
GIConv converter,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_convert_with_fallback (const gchar *str,
gssize len,
const gchar *to_codeset,
const gchar *from_codeset,
const gchar *fallback,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
/* Convert between libc's idea of strings and UTF-8.
*/
GLIB_AVAILABLE_IN_ALL
gchar* g_locale_to_utf8 (const gchar *opsysstring,
gssize len,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_locale_from_utf8 (const gchar *utf8string,
gssize len,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
/* Convert between the operating system (or C runtime)
* representation of file names and UTF-8.
*/
GLIB_AVAILABLE_IN_ALL
gchar* g_filename_to_utf8 (const gchar *opsysstring,
gssize len,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_filename_from_utf8 (const gchar *utf8string,
gssize len,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_filename_from_uri (const gchar *uri,
gchar **hostname,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_filename_to_uri (const gchar *filename,
const gchar *hostname,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_filename_display_name (const gchar *filename) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gboolean g_get_filename_charsets (const gchar ***charsets);
GLIB_AVAILABLE_IN_ALL
gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar **g_uri_list_extract_uris (const gchar *uri_list) G_GNUC_MALLOC;
#ifndef __GTK_DOC_IGNORE__
#ifdef G_OS_WIN32
#define g_filename_to_utf8 g_filename_to_utf8_utf8
#define g_filename_from_utf8 g_filename_from_utf8_utf8
#define g_filename_from_uri g_filename_from_uri_utf8
#define g_filename_to_uri g_filename_to_uri_utf8
GLIB_AVAILABLE_IN_ALL
gchar* g_filename_to_utf8_utf8 (const gchar *opsysstring,
gssize len,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_filename_from_utf8_utf8 (const gchar *utf8string,
gssize len,
gsize *bytes_read,
gsize *bytes_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_filename_from_uri_utf8 (const gchar *uri,
gchar **hostname,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_filename_to_uri_utf8 (const gchar *filename,
const gchar *hostname,
GError **error) G_GNUC_MALLOC;
#endif
# 197 "/usr/include/glib-2.0/glib/gconvert.h" 3
#endif /* __GTK_DOC_IGNORE__ */
# 198 "/usr/include/glib-2.0/glib/gconvert.h" 3
G_END_DECLS
#endif /* __G_CONVERT_H__ */
# 202 "/usr/include/glib-2.0/glib/gconvert.h" 3
# 42 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gdataset.h>
#endif /* expanded by -frewrite-includes */
# 42 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gdataset.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_DATASET_H__
#define __G_DATASET_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gdataset.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gquark.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gdataset.h" 3
# 33 "/usr/include/glib-2.0/glib/gdataset.h" 3
G_BEGIN_DECLS
typedef struct _GData GData;
typedef void (*GDataForeachFunc) (GQuark key_id,
gpointer data,
gpointer user_data);
/* Keyed Data List
*/
GLIB_AVAILABLE_IN_ALL
void g_datalist_init (GData **datalist);
GLIB_AVAILABLE_IN_ALL
void g_datalist_clear (GData **datalist);
GLIB_AVAILABLE_IN_ALL
gpointer g_datalist_id_get_data (GData **datalist,
GQuark key_id);
GLIB_AVAILABLE_IN_ALL
void g_datalist_id_set_data_full (GData **datalist,
GQuark key_id,
gpointer data,
GDestroyNotify destroy_func);
typedef gpointer (*GDuplicateFunc) (gpointer data, gpointer user_data);
GLIB_AVAILABLE_IN_2_34
gpointer g_datalist_id_dup_data (GData **datalist,
GQuark key_id,
GDuplicateFunc dup_func,
gpointer user_data);
GLIB_AVAILABLE_IN_2_34
gboolean g_datalist_id_replace_data (GData **datalist,
GQuark key_id,
gpointer oldval,
gpointer newval,
GDestroyNotify destroy,
GDestroyNotify *old_destroy);
GLIB_AVAILABLE_IN_ALL
gpointer g_datalist_id_remove_no_notify (GData **datalist,
GQuark key_id);
GLIB_AVAILABLE_IN_ALL
void g_datalist_foreach (GData **datalist,
GDataForeachFunc func,
gpointer user_data);
/**
* G_DATALIST_FLAGS_MASK:
*
* A bitmask that restricts the possible flags passed to
* g_datalist_set_flags(). Passing a flags value where
* flags & ~G_DATALIST_FLAGS_MASK != 0 is an error.
*/
#define G_DATALIST_FLAGS_MASK 0x3
GLIB_AVAILABLE_IN_ALL
void g_datalist_set_flags (GData **datalist,
guint flags);
GLIB_AVAILABLE_IN_ALL
void g_datalist_unset_flags (GData **datalist,
guint flags);
GLIB_AVAILABLE_IN_ALL
guint g_datalist_get_flags (GData **datalist);
#define g_datalist_id_set_data(dl, q, d) \
g_datalist_id_set_data_full ((dl), (q), (d), NULL)
#define g_datalist_id_remove_data(dl, q) \
g_datalist_id_set_data ((dl), (q), NULL)
#define g_datalist_set_data_full(dl, k, d, f) \
g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f))
#define g_datalist_remove_no_notify(dl, k) \
g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k))
#define g_datalist_set_data(dl, k, d) \
g_datalist_set_data_full ((dl), (k), (d), NULL)
#define g_datalist_remove_data(dl, k) \
g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL)
/* Location Associated Keyed Data
*/
GLIB_AVAILABLE_IN_ALL
void g_dataset_destroy (gconstpointer dataset_location);
GLIB_AVAILABLE_IN_ALL
gpointer g_dataset_id_get_data (gconstpointer dataset_location,
GQuark key_id);
GLIB_AVAILABLE_IN_ALL
gpointer g_datalist_get_data (GData **datalist,
const gchar *key);
GLIB_AVAILABLE_IN_ALL
void g_dataset_id_set_data_full (gconstpointer dataset_location,
GQuark key_id,
gpointer data,
GDestroyNotify destroy_func);
GLIB_AVAILABLE_IN_ALL
gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location,
GQuark key_id);
GLIB_AVAILABLE_IN_ALL
void g_dataset_foreach (gconstpointer dataset_location,
GDataForeachFunc func,
gpointer user_data);
#define g_dataset_id_set_data(l, k, d) \
g_dataset_id_set_data_full ((l), (k), (d), NULL)
#define g_dataset_id_remove_data(l, k) \
g_dataset_id_set_data ((l), (k), NULL)
#define g_dataset_get_data(l, k) \
(g_dataset_id_get_data ((l), g_quark_try_string (k)))
#define g_dataset_set_data_full(l, k, d, f) \
g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f))
#define g_dataset_remove_no_notify(l, k) \
g_dataset_id_remove_no_notify ((l), g_quark_try_string (k))
#define g_dataset_set_data(l, k, d) \
g_dataset_set_data_full ((l), (k), (d), NULL)
#define g_dataset_remove_data(l, k) \
g_dataset_id_set_data ((l), g_quark_try_string (k), NULL)
G_END_DECLS
#endif /* __G_DATASET_H__ */
# 151 "/usr/include/glib-2.0/glib/gdataset.h" 3
# 43 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gdate.h>
#endif /* expanded by -frewrite-includes */
# 43 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gdate.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_DATE_H__
#define __G_DATE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gdate.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <time.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gdate.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <time.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/time.h" 3
#pragma GCC visibility pop
# 33 "/usr/include/glib-2.0/glib/gdate.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/gdate.h" 3
# 35 "/usr/include/glib-2.0/glib/gdate.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gquark.h>
#endif /* expanded by -frewrite-includes */
# 35 "/usr/include/glib-2.0/glib/gdate.h" 3
# 36 "/usr/include/glib-2.0/glib/gdate.h" 3
G_BEGIN_DECLS
/* GDate
*
* Date calculations (not time for now, to be resolved). These are a
* mutant combination of Steffen Beyer's DateCalc routines
* (http://www.perl.com/CPAN/authors/id/STBEY/) and Jon Trowbridge's
* date routines (written for in-house software). Written by Havoc
* Pennington <hp@pobox.com>
*/
typedef gint32 GTime;
typedef guint16 GDateYear;
typedef guint8 GDateDay; /* day of the month */
typedef struct _GDate GDate;
/* enum used to specify order of appearance in parsed date strings */
typedef enum
{
G_DATE_DAY = 0,
G_DATE_MONTH = 1,
G_DATE_YEAR = 2
} GDateDMY;
/* actual week and month values */
typedef enum
{
G_DATE_BAD_WEEKDAY = 0,
G_DATE_MONDAY = 1,
G_DATE_TUESDAY = 2,
G_DATE_WEDNESDAY = 3,
G_DATE_THURSDAY = 4,
G_DATE_FRIDAY = 5,
G_DATE_SATURDAY = 6,
G_DATE_SUNDAY = 7
} GDateWeekday;
typedef enum
{
G_DATE_BAD_MONTH = 0,
G_DATE_JANUARY = 1,
G_DATE_FEBRUARY = 2,
G_DATE_MARCH = 3,
G_DATE_APRIL = 4,
G_DATE_MAY = 5,
G_DATE_JUNE = 6,
G_DATE_JULY = 7,
G_DATE_AUGUST = 8,
G_DATE_SEPTEMBER = 9,
G_DATE_OCTOBER = 10,
G_DATE_NOVEMBER = 11,
G_DATE_DECEMBER = 12
} GDateMonth;
#define G_DATE_BAD_JULIAN 0U
#define G_DATE_BAD_DAY 0U
#define G_DATE_BAD_YEAR 0U
/* Note: directly manipulating structs is generally a bad idea, but
* in this case it's an *incredibly* bad idea, because all or part
* of this struct can be invalid at any given time. Use the functions,
* or you will get hosed, I promise.
*/
struct _GDate
{
guint julian_days : 32; /* julian days representation - we use a
* bitfield hoping that 64 bit platforms
* will pack this whole struct in one big
* int
*/
guint julian : 1; /* julian is valid */
guint dmy : 1; /* dmy is valid */
/* DMY representation */
guint day : 6;
guint month : 4;
guint year : 16;
};
/* g_date_new() returns an invalid date, you then have to _set() stuff
* to get a usable object. You can also allocate a GDate statically,
* then call g_date_clear() to initialize.
*/
GLIB_AVAILABLE_IN_ALL
GDate* g_date_new (void);
GLIB_AVAILABLE_IN_ALL
GDate* g_date_new_dmy (GDateDay day,
GDateMonth month,
GDateYear year);
GLIB_AVAILABLE_IN_ALL
GDate* g_date_new_julian (guint32 julian_day);
GLIB_AVAILABLE_IN_ALL
void g_date_free (GDate *date);
/* check g_date_valid() after doing an operation that might fail, like
* _parse. Almost all g_date operations are undefined on invalid
* dates (the exceptions are the mutators, since you need those to
* return to validity).
*/
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid (const GDate *date);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid_day (GDateDay day) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid_month (GDateMonth month) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid_year (GDateYear year) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid_weekday (GDateWeekday weekday) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid_julian (guint32 julian_date) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_date_valid_dmy (GDateDay day,
GDateMonth month,
GDateYear year) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
GDateWeekday g_date_get_weekday (const GDate *date);
GLIB_AVAILABLE_IN_ALL
GDateMonth g_date_get_month (const GDate *date);
GLIB_AVAILABLE_IN_ALL
GDateYear g_date_get_year (const GDate *date);
GLIB_AVAILABLE_IN_ALL
GDateDay g_date_get_day (const GDate *date);
GLIB_AVAILABLE_IN_ALL
guint32 g_date_get_julian (const GDate *date);
GLIB_AVAILABLE_IN_ALL
guint g_date_get_day_of_year (const GDate *date);
/* First monday/sunday is the start of week 1; if we haven't reached
* that day, return 0. These are not ISO weeks of the year; that
* routine needs to be added.
* these functions return the number of weeks, starting on the
* corrsponding day
*/
GLIB_AVAILABLE_IN_ALL
guint g_date_get_monday_week_of_year (const GDate *date);
GLIB_AVAILABLE_IN_ALL
guint g_date_get_sunday_week_of_year (const GDate *date);
GLIB_AVAILABLE_IN_ALL
guint g_date_get_iso8601_week_of_year (const GDate *date);
/* If you create a static date struct you need to clear it to get it
* in a sane state before use. You can clear a whole array at
* once with the ndates argument.
*/
GLIB_AVAILABLE_IN_ALL
void g_date_clear (GDate *date,
guint n_dates);
/* The parse routine is meant for dates typed in by a user, so it
* permits many formats but tries to catch common typos. If your data
* needs to be strictly validated, it is not an appropriate function.
*/
GLIB_AVAILABLE_IN_ALL
void g_date_set_parse (GDate *date,
const gchar *str);
GLIB_AVAILABLE_IN_ALL
void g_date_set_time_t (GDate *date,
time_t timet);
GLIB_AVAILABLE_IN_ALL
void g_date_set_time_val (GDate *date,
GTimeVal *timeval);
#ifndef G_DISABLE_DEPRECATED
GLIB_DEPRECATED_FOR(g_date_set_time_t)
void g_date_set_time (GDate *date,
GTime time_);
#endif
# 204 "/usr/include/glib-2.0/glib/gdate.h" 3
GLIB_AVAILABLE_IN_ALL
void g_date_set_month (GDate *date,
GDateMonth month);
GLIB_AVAILABLE_IN_ALL
void g_date_set_day (GDate *date,
GDateDay day);
GLIB_AVAILABLE_IN_ALL
void g_date_set_year (GDate *date,
GDateYear year);
GLIB_AVAILABLE_IN_ALL
void g_date_set_dmy (GDate *date,
GDateDay day,
GDateMonth month,
GDateYear y);
GLIB_AVAILABLE_IN_ALL
void g_date_set_julian (GDate *date,
guint32 julian_date);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_is_first_of_month (const GDate *date);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_is_last_of_month (const GDate *date);
/* To go forward by some number of weeks just go forward weeks*7 days */
GLIB_AVAILABLE_IN_ALL
void g_date_add_days (GDate *date,
guint n_days);
GLIB_AVAILABLE_IN_ALL
void g_date_subtract_days (GDate *date,
guint n_days);
/* If you add/sub months while day > 28, the day might change */
GLIB_AVAILABLE_IN_ALL
void g_date_add_months (GDate *date,
guint n_months);
GLIB_AVAILABLE_IN_ALL
void g_date_subtract_months (GDate *date,
guint n_months);
/* If it's feb 29, changing years can move you to the 28th */
GLIB_AVAILABLE_IN_ALL
void g_date_add_years (GDate *date,
guint n_years);
GLIB_AVAILABLE_IN_ALL
void g_date_subtract_years (GDate *date,
guint n_years);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_is_leap_year (GDateYear year) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
guint8 g_date_get_days_in_month (GDateMonth month,
GDateYear year) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
guint8 g_date_get_monday_weeks_in_year (GDateYear year) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
guint8 g_date_get_sunday_weeks_in_year (GDateYear year) G_GNUC_CONST;
/* Returns the number of days between the two dates. If date2 comes
before date1, a negative value is return. */
GLIB_AVAILABLE_IN_ALL
gint g_date_days_between (const GDate *date1,
const GDate *date2);
/* qsort-friendly (with a cast...) */
GLIB_AVAILABLE_IN_ALL
gint g_date_compare (const GDate *lhs,
const GDate *rhs);
GLIB_AVAILABLE_IN_ALL
void g_date_to_struct_tm (const GDate *date,
struct tm *tm);
GLIB_AVAILABLE_IN_ALL
void g_date_clamp (GDate *date,
const GDate *min_date,
const GDate *max_date);
/* Swap date1 and date2's values if date1 > date2. */
GLIB_AVAILABLE_IN_ALL
void g_date_order (GDate *date1, GDate *date2);
/* Just like strftime() except you can only use date-related formats.
* Using a time format is undefined.
*/
GLIB_AVAILABLE_IN_ALL
gsize g_date_strftime (gchar *s,
gsize slen,
const gchar *format,
const GDate *date);
#ifndef G_DISABLE_DEPRECATED
#define g_date_weekday g_date_get_weekday
#define g_date_month g_date_get_month
#define g_date_year g_date_get_year
#define g_date_day g_date_get_day
#define g_date_julian g_date_get_julian
#define g_date_day_of_year g_date_get_day_of_year
#define g_date_monday_week_of_year g_date_get_monday_week_of_year
#define g_date_sunday_week_of_year g_date_get_sunday_week_of_year
#define g_date_days_in_month g_date_get_days_in_month
#define g_date_monday_weeks_in_year g_date_get_monday_weeks_in_year
#define g_date_sunday_weeks_in_year g_date_get_sunday_weeks_in_year
#endif /* G_DISABLE_DEPRECATED */
# 306 "/usr/include/glib-2.0/glib/gdate.h" 3
G_END_DECLS
#endif /* __G_DATE_H__ */
# 310 "/usr/include/glib-2.0/glib/gdate.h" 3
# 44 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gdatetime.h>
#endif /* expanded by -frewrite-includes */
# 44 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gdatetime.h" 1 3
/*
* Copyright (C) 2009-2010 Christian Hergert <chris@dronelabs.com>
* Copyright © 2010 Codethink Limited
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of the
* licence, or (at your option) any later version.
*
* This is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
* USA.
*
* Authors: Christian Hergert <chris@dronelabs.com>
* Thiago Santos <thiago.sousa.santos@collabora.co.uk>
* Emmanuele Bassi <ebassi@linux.intel.com>
* Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_DATE_TIME_H__
#define __G_DATE_TIME_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 32 "/usr/include/glib-2.0/glib/gdatetime.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtimezone.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gdatetime.h" 3
# 1 "/usr/include/glib-2.0/glib/gtimezone.h" 1 3
/*
* Copyright © 2010 Codethink Limited
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_TIME_ZONE_H__
#define __G_TIME_ZONE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gtimezone.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gtimezone.h" 3
# 28 "/usr/include/glib-2.0/glib/gtimezone.h" 3
G_BEGIN_DECLS
typedef struct _GTimeZone GTimeZone;
/**
* GTimeType:
* @G_TIME_TYPE_STANDARD: the time is in local standard time
* @G_TIME_TYPE_DAYLIGHT: the time is in local daylight time
* @G_TIME_TYPE_UNIVERSAL: the time is in UTC
*
* Disambiguates a given time in two ways.
*
* First, specifies if the given time is in universal or local time.
*
* Second, if the time is in local time, specifies if it is local
* standard time or local daylight time. This is important for the case
* where the same local time occurs twice (during daylight savings time
* transitions, for example).
*/
typedef enum
{
G_TIME_TYPE_STANDARD,
G_TIME_TYPE_DAYLIGHT,
G_TIME_TYPE_UNIVERSAL
} GTimeType;
GLIB_AVAILABLE_IN_ALL
GTimeZone * g_time_zone_new (const gchar *identifier);
GLIB_AVAILABLE_IN_ALL
GTimeZone * g_time_zone_new_utc (void);
GLIB_AVAILABLE_IN_ALL
GTimeZone * g_time_zone_new_local (void);
GLIB_AVAILABLE_IN_ALL
GTimeZone * g_time_zone_ref (GTimeZone *tz);
GLIB_AVAILABLE_IN_ALL
void g_time_zone_unref (GTimeZone *tz);
GLIB_AVAILABLE_IN_ALL
gint g_time_zone_find_interval (GTimeZone *tz,
GTimeType type,
gint64 time_);
GLIB_AVAILABLE_IN_ALL
gint g_time_zone_adjust_time (GTimeZone *tz,
GTimeType type,
gint64 *time_);
GLIB_AVAILABLE_IN_ALL
const gchar * g_time_zone_get_abbreviation (GTimeZone *tz,
gint interval);
GLIB_AVAILABLE_IN_ALL
gint32 g_time_zone_get_offset (GTimeZone *tz,
gint interval);
GLIB_AVAILABLE_IN_ALL
gboolean g_time_zone_is_dst (GTimeZone *tz,
gint interval);
G_END_DECLS
#endif /* __G_TIME_ZONE_H__ */
# 90 "/usr/include/glib-2.0/glib/gtimezone.h" 3
# 34 "/usr/include/glib-2.0/glib/gdatetime.h" 2 3
G_BEGIN_DECLS
/**
* G_TIME_SPAN_DAY:
*
* Evaluates to a time span of one day.
*
* Since: 2.26
*/
#define G_TIME_SPAN_DAY (G_GINT64_CONSTANT (86400000000))
/**
* G_TIME_SPAN_HOUR:
*
* Evaluates to a time span of one hour.
*
* Since: 2.26
*/
#define G_TIME_SPAN_HOUR (G_GINT64_CONSTANT (3600000000))
/**
* G_TIME_SPAN_MINUTE:
*
* Evaluates to a time span of one minute.
*
* Since: 2.26
*/
#define G_TIME_SPAN_MINUTE (G_GINT64_CONSTANT (60000000))
/**
* G_TIME_SPAN_SECOND:
*
* Evaluates to a time span of one second.
*
* Since: 2.26
*/
#define G_TIME_SPAN_SECOND (G_GINT64_CONSTANT (1000000))
/**
* G_TIME_SPAN_MILLISECOND:
*
* Evaluates to a time span of one millisecond.
*
* Since: 2.26
*/
#define G_TIME_SPAN_MILLISECOND (G_GINT64_CONSTANT (1000))
/**
* GTimeSpan:
*
* A value representing an interval of time, in microseconds.
*
* Since: 2.26
*/
typedef gint64 GTimeSpan;
/**
* GDateTime:
*
* `GDateTime` is an opaque structure whose members
* cannot be accessed directly.
*
* Since: 2.26
*/
typedef struct _GDateTime GDateTime;
GLIB_AVAILABLE_IN_ALL
void g_date_time_unref (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_ref (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_now (GTimeZone *tz);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_now_local (void);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_now_utc (void);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_from_unix_local (gint64 t);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_from_unix_utc (gint64 t);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_from_timeval_local (const GTimeVal *tv);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_from_timeval_utc (const GTimeVal *tv);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new (GTimeZone *tz,
gint year,
gint month,
gint day,
gint hour,
gint minute,
gdouble seconds);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_local (gint year,
gint month,
gint day,
gint hour,
gint minute,
gdouble seconds);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_new_utc (gint year,
gint month,
gint day,
gint hour,
gint minute,
gdouble seconds);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add (GDateTime *datetime,
GTimeSpan timespan);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_years (GDateTime *datetime,
gint years);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_months (GDateTime *datetime,
gint months);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_weeks (GDateTime *datetime,
gint weeks);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_days (GDateTime *datetime,
gint days);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_hours (GDateTime *datetime,
gint hours);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_minutes (GDateTime *datetime,
gint minutes);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_seconds (GDateTime *datetime,
gdouble seconds);
GLIB_AVAILABLE_IN_ALL
G_GNUC_WARN_UNUSED_RESULT
GDateTime * g_date_time_add_full (GDateTime *datetime,
gint years,
gint months,
gint days,
gint hours,
gint minutes,
gdouble seconds);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_compare (gconstpointer dt1,
gconstpointer dt2);
GLIB_AVAILABLE_IN_ALL
GTimeSpan g_date_time_difference (GDateTime *end,
GDateTime *begin);
GLIB_AVAILABLE_IN_ALL
guint g_date_time_hash (gconstpointer datetime);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_time_equal (gconstpointer dt1,
gconstpointer dt2);
GLIB_AVAILABLE_IN_ALL
void g_date_time_get_ymd (GDateTime *datetime,
gint *year,
gint *month,
gint *day);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_year (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_month (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_day_of_month (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_week_numbering_year (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_week_of_year (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_day_of_week (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_day_of_year (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_hour (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_minute (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_second (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint g_date_time_get_microsecond (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gdouble g_date_time_get_seconds (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gint64 g_date_time_to_unix (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_time_to_timeval (GDateTime *datetime,
GTimeVal *tv);
GLIB_AVAILABLE_IN_ALL
GTimeSpan g_date_time_get_utc_offset (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
const gchar * g_date_time_get_timezone_abbreviation (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gboolean g_date_time_is_daylight_savings (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_to_timezone (GDateTime *datetime,
GTimeZone *tz);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_to_local (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
GDateTime * g_date_time_to_utc (GDateTime *datetime);
GLIB_AVAILABLE_IN_ALL
gchar * g_date_time_format (GDateTime *datetime,
const gchar *format) G_GNUC_MALLOC;
G_END_DECLS
#endif /* __G_DATE_TIME_H__ */
# 265 "/usr/include/glib-2.0/glib/gdatetime.h" 3
# 45 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gdir.h>
#endif /* expanded by -frewrite-includes */
# 45 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gdir.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* gdir.c: Simplified wrapper around the DIRENT functions.
*
* Copyright 2001 Hans Breuer
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_DIR_H__
#define __G_DIR_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 28 "/usr/include/glib-2.0/glib/gdir.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gdir.h" 3
# 30 "/usr/include/glib-2.0/glib/gdir.h" 3
#ifdef G_OS_UNIX
#if 0 /* expanded by -frewrite-includes */
#include <dirent.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gdir.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/dirent.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/dirent.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <dirent.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/dirent.h" 3
# 1 "/usr/include/dirent.h" 1 3 4
/* Copyright (C) 1991-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/*
* POSIX Standard: 5.1.2 Directory Operations <dirent.h>
*/
#ifndef _DIRENT_H
#define _DIRENT_H 1
#if 0 /* expanded by -frewrite-includes */
#include <features.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/dirent.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <features.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/features.h" 3
#pragma GCC visibility pop
# 26 "/usr/include/dirent.h" 2 3 4
__BEGIN_DECLS
#if 0 /* expanded by -frewrite-includes */
#include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/dirent.h" 3 4
# 30 "/usr/include/dirent.h" 3 4
#ifdef __USE_XOPEN
# ifndef __ino_t_defined
# ifndef __USE_FILE_OFFSET64
typedef __ino_t ino_t;
# else
# 36 "/usr/include/dirent.h" 3 4
typedef __ino64_t ino_t;
# endif
# 38 "/usr/include/dirent.h" 3 4
# define __ino_t_defined
# endif
# 40 "/usr/include/dirent.h" 3 4
# if defined __USE_LARGEFILE64 && !defined __ino64_t_defined
typedef __ino64_t ino64_t;
# define __ino64_t_defined
# endif
# 44 "/usr/include/dirent.h" 3 4
#endif
# 45 "/usr/include/dirent.h" 3 4
/* This file defines `struct dirent'.
It defines the macro `_DIRENT_HAVE_D_NAMLEN' iff there is a `d_namlen'
member that gives the length of `d_name'.
It defines the macro `_DIRENT_HAVE_D_RECLEN' iff there is a `d_reclen'
member that gives the size of the entire directory entry.
It defines the macro `_DIRENT_HAVE_D_OFF' iff there is a `d_off'
member that gives the file offset of the next directory entry.
It defines the macro `_DIRENT_HAVE_D_TYPE' iff there is a `d_type'
member that gives the type of the file.
*/
#if 0 /* expanded by -frewrite-includes */
#include <bits/dirent.h>
#endif /* expanded by -frewrite-includes */
# 61 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/x86_64-linux-gnu/bits/dirent.h" 1 3 4
/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#ifndef _DIRENT_H
# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
#endif
# 21 "/usr/include/x86_64-linux-gnu/bits/dirent.h" 3 4
struct dirent
{
#ifndef __USE_FILE_OFFSET64
__ino_t d_ino;
__off_t d_off;
#else
# 28 "/usr/include/x86_64-linux-gnu/bits/dirent.h" 3 4
__ino64_t d_ino;
__off64_t d_off;
#endif
# 31 "/usr/include/x86_64-linux-gnu/bits/dirent.h" 3 4
unsigned short int d_reclen;
unsigned char d_type;
char d_name[256]; /* We must not include limits.h! */
};
#ifdef __USE_LARGEFILE64
struct dirent64
{
__ino64_t d_ino;
__off64_t d_off;
unsigned short int d_reclen;
unsigned char d_type;
char d_name[256]; /* We must not include limits.h! */
};
#endif
# 46 "/usr/include/x86_64-linux-gnu/bits/dirent.h" 3 4
#define d_fileno d_ino /* Backwards compatibility. */
#undef _DIRENT_HAVE_D_NAMLEN
#define _DIRENT_HAVE_D_RECLEN
#define _DIRENT_HAVE_D_OFF
#define _DIRENT_HAVE_D_TYPE
#if defined __OFF_T_MATCHES_OFF64_T && defined __INO_T_MATCHES_INO64_T
/* Inform libc code that these two types are effectively identical. */
# define _DIRENT_MATCHES_DIRENT64 1
#endif
# 58 "/usr/include/x86_64-linux-gnu/bits/dirent.h" 3 4
# 62 "/usr/include/dirent.h" 2 3 4
#if defined __USE_MISC && !defined d_fileno
# define d_ino d_fileno /* Backward compatibility. */
#endif
# 66 "/usr/include/dirent.h" 3 4
/* These macros extract size information from a `struct dirent *'.
They may evaluate their argument multiple times, so it must not
have side effects. Each of these may involve a relatively costly
call to `strlen' on some systems, so these values should be cached.
_D_EXACT_NAMLEN (DP) returns the length of DP->d_name, not including
its terminating null character.
_D_ALLOC_NAMLEN (DP) returns a size at least (_D_EXACT_NAMLEN (DP) + 1);
that is, the allocation size needed to hold the DP->d_name string.
Use this macro when you don't need the exact length, just an upper bound.
This macro is less likely to require calling `strlen' than _D_EXACT_NAMLEN.
*/
#ifdef _DIRENT_HAVE_D_NAMLEN
# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
# define _D_ALLOC_NAMLEN(d) (_D_EXACT_NAMLEN (d) + 1)
#else
# 85 "/usr/include/dirent.h" 3 4
# define _D_EXACT_NAMLEN(d) (strlen ((d)->d_name))
# ifdef _DIRENT_HAVE_D_RECLEN
# define _D_ALLOC_NAMLEN(d) (((char *) (d) + (d)->d_reclen) - &(d)->d_name[0])
# else
# 89 "/usr/include/dirent.h" 3 4
# define _D_ALLOC_NAMLEN(d) (sizeof (d)->d_name > 1 ? sizeof (d)->d_name : \
_D_EXACT_NAMLEN (d) + 1)
# endif
# 92 "/usr/include/dirent.h" 3 4
#endif
# 93 "/usr/include/dirent.h" 3 4
#ifdef __USE_MISC
/* File types for `d_type'. */
enum
{
DT_UNKNOWN = 0,
# define DT_UNKNOWN DT_UNKNOWN
DT_FIFO = 1,
# define DT_FIFO DT_FIFO
DT_CHR = 2,
# define DT_CHR DT_CHR
DT_DIR = 4,
# define DT_DIR DT_DIR
DT_BLK = 6,
# define DT_BLK DT_BLK
DT_REG = 8,
# define DT_REG DT_REG
DT_LNK = 10,
# define DT_LNK DT_LNK
DT_SOCK = 12,
# define DT_SOCK DT_SOCK
DT_WHT = 14
# define DT_WHT DT_WHT
};
/* Convert between stat structure types and directory types. */
# define IFTODT(mode) (((mode) & 0170000) >> 12)
# define DTTOIF(dirtype) ((dirtype) << 12)
#endif
# 123 "/usr/include/dirent.h" 3 4
/* This is the data type of directory stream objects.
The actual structure is opaque to users. */
typedef struct __dirstream DIR;
/* Open a directory stream on NAME.
Return a DIR stream on the directory, or NULL if it could not be opened.
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern DIR *opendir (const char *__name) __nonnull ((1));
#ifdef __USE_XOPEN2K8
/* Same as opendir, but open the stream on the file descriptor FD.
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern DIR *fdopendir (int __fd);
#endif
# 143 "/usr/include/dirent.h" 3 4
/* Close the directory stream DIRP.
Return 0 if successful, -1 if not.
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern int closedir (DIR *__dirp) __nonnull ((1));
/* Read a directory entry from DIRP. Return a pointer to a `struct
dirent' describing the entry, or NULL for EOF or error. The
storage returned may be overwritten by a later readdir call on the
same DIR stream.
If the Large File Support API is selected we have to use the
appropriate interface.
This function is a possible cancellation point and therefore not
marked with __THROW. */
#ifndef __USE_FILE_OFFSET64
extern struct dirent *readdir (DIR *__dirp) __nonnull ((1));
#else
# 164 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern struct dirent *__REDIRECT (readdir, (DIR *__dirp), readdir64)
__nonnull ((1));
# else
# 168 "/usr/include/dirent.h" 3 4
# define readdir readdir64
# endif
# 170 "/usr/include/dirent.h" 3 4
#endif
# 171 "/usr/include/dirent.h" 3 4
#ifdef __USE_LARGEFILE64
extern struct dirent64 *readdir64 (DIR *__dirp) __nonnull ((1));
#endif
# 175 "/usr/include/dirent.h" 3 4
#ifdef __USE_POSIX
/* Reentrant version of `readdir'. Return in RESULT a pointer to the
next entry.
This function is a possible cancellation point and therefore not
marked with __THROW. */
# ifndef __USE_FILE_OFFSET64
extern int readdir_r (DIR *__restrict __dirp,
struct dirent *__restrict __entry,
struct dirent **__restrict __result)
__nonnull ((1, 2, 3)) __attribute_deprecated__;
# else
# 188 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern int __REDIRECT (readdir_r,
(DIR *__restrict __dirp,
struct dirent *__restrict __entry,
struct dirent **__restrict __result),
readdir64_r)
__nonnull ((1, 2, 3)) __attribute_deprecated__;
# else
# 196 "/usr/include/dirent.h" 3 4
# define readdir_r readdir64_r
# endif
# 198 "/usr/include/dirent.h" 3 4
# endif
# 199 "/usr/include/dirent.h" 3 4
# ifdef __USE_LARGEFILE64
extern int readdir64_r (DIR *__restrict __dirp,
struct dirent64 *__restrict __entry,
struct dirent64 **__restrict __result)
__nonnull ((1, 2, 3)) __attribute_deprecated__;
# endif
# 206 "/usr/include/dirent.h" 3 4
#endif /* POSIX or misc */
# 207 "/usr/include/dirent.h" 3 4
/* Rewind DIRP to the beginning of the directory. */
extern void rewinddir (DIR *__dirp) __THROW __nonnull ((1));
#if defined __USE_MISC || defined __USE_XOPEN
#if 0 /* expanded by -frewrite-includes */
# include <bits/types.h>
#endif /* expanded by -frewrite-includes */
# 212 "/usr/include/dirent.h" 3 4
# 213 "/usr/include/dirent.h" 3 4
/* Seek to position POS on DIRP. */
extern void seekdir (DIR *__dirp, long int __pos) __THROW __nonnull ((1));
/* Return the current position of DIRP. */
extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
#endif
# 220 "/usr/include/dirent.h" 3 4
#ifdef __USE_XOPEN2K8
/* Return the file descriptor used by DIRP. */
extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
# if defined __OPTIMIZE__ && defined _DIR_dirfd
# define dirfd(dirp) _DIR_dirfd (dirp)
# endif
# 229 "/usr/include/dirent.h" 3 4
# ifdef __USE_MISC
# ifndef MAXNAMLEN
/* Get the definitions of the POSIX.1 limits. */
#if 0 /* expanded by -frewrite-includes */
# include <bits/posix1_lim.h>
#endif /* expanded by -frewrite-includes */
# 233 "/usr/include/dirent.h" 3 4
# 234 "/usr/include/dirent.h" 3 4
/* `MAXNAMLEN' is the BSD name for what POSIX calls `NAME_MAX'. */
# ifdef NAME_MAX
# define MAXNAMLEN NAME_MAX
# else
# 239 "/usr/include/dirent.h" 3 4
# define MAXNAMLEN 255
# endif
# 241 "/usr/include/dirent.h" 3 4
# endif
# 242 "/usr/include/dirent.h" 3 4
# endif
# 243 "/usr/include/dirent.h" 3 4
# define __need_size_t
#if 0 /* expanded by -frewrite-includes */
# include <stddef.h>
#endif /* expanded by -frewrite-includes */
# 245 "/usr/include/dirent.h" 3 4
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 1 3 4
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stddef.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 3
# 1 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 1 3
/*===---- stddef.h - Basic type definitions --------------------------------===
*
* Copyright (c) 2008 Eli Friedman
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*===-----------------------------------------------------------------------===
*/
#if !defined(__STDDEF_H) || defined(__need_ptrdiff_t) || \
defined(__need_size_t) || defined(__need_wchar_t) || \
defined(__need_NULL) || defined(__need_wint_t)
#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
!defined(__need_wchar_t) && !defined(__need_NULL) && \
!defined(__need_wint_t)
/* Always define miscellaneous pieces when modules are available. */
#if !__has_feature(modules)
#define __STDDEF_H
#endif
# 37 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define __need_ptrdiff_t
#define __need_size_t
#define __need_wchar_t
#define __need_NULL
#define __need_STDDEF_H_misc
/* __need_wint_t is intentionally not defined here. */
#endif
# 44 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_ptrdiff_t)
#if !defined(_PTRDIFF_T) || __has_feature(modules)
/* Always define ptrdiff_t when modules are available. */
#if !__has_feature(modules)
#define _PTRDIFF_T
#endif
# 51 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __PTRDIFF_TYPE__ ptrdiff_t;
#endif
# 53 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_ptrdiff_t
#endif /* defined(__need_ptrdiff_t) */
# 55 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_size_t)
#if !defined(_SIZE_T) || __has_feature(modules)
/* Always define size_t when modules are available. */
#if !__has_feature(modules)
#define _SIZE_T
#endif
# 62 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ size_t;
#endif
# 64 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_size_t
#endif /*defined(__need_size_t) */
# 66 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
/* ISO9899:2011 7.20 (C11 Annex K): Define rsize_t if __STDC_WANT_LIB_EXT1__ is
* enabled. */
#if (defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1 && \
!defined(_RSIZE_T)) || __has_feature(modules)
/* Always define rsize_t when modules are available. */
#if !__has_feature(modules)
#define _RSIZE_T
#endif
# 76 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __SIZE_TYPE__ rsize_t;
#endif
# 78 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif /* defined(__need_STDDEF_H_misc) */
# 79 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_wchar_t)
#ifndef __cplusplus
/* Always define wchar_t when modules are available. */
#if !defined(_WCHAR_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WCHAR_T
#if defined(_MSC_EXTENSIONS)
#define _WCHAR_T_DEFINED
#endif
# 89 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 90 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WCHAR_TYPE__ wchar_t;
#endif
# 92 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 93 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wchar_t
#endif /* defined(__need_wchar_t) */
# 95 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_NULL)
#undef NULL
#ifdef __cplusplus
# if !defined(__MINGW32__) && !defined(_MSC_VER)
# define NULL __null
# else
# 102 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL 0
# endif
# 104 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#else
# 105 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# define NULL ((void*)0)
#endif
# 107 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#ifdef __cplusplus
#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)
namespace std { typedef decltype(nullptr) nullptr_t; }
using ::std::nullptr_t;
#endif
# 112 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 113 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_NULL
#endif /* defined(__need_NULL) */
# 115 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#if defined(__need_STDDEF_H_misc)
#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
#if 0 /* expanded by -frewrite-includes */
#include "__stddef_max_align_t.h"
#endif /* expanded by -frewrite-includes */
# 118 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 119 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 120 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#define offsetof(t, d) __builtin_offsetof(t, d)
#undef __need_STDDEF_H_misc
#endif /* defined(__need_STDDEF_H_misc) */
# 123 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
/* Some C libraries expect to see a wint_t here. Others (notably MinGW) will use
__WINT_TYPE__ directly; accommodate both by requiring __need_wint_t */
#if defined(__need_wint_t)
/* Always define wint_t when modules are available. */
#if !defined(_WINT_T) || __has_feature(modules)
#if !__has_feature(modules)
#define _WINT_T
#endif
# 132 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
typedef __WINT_TYPE__ wint_t;
#endif
# 134 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#undef __need_wint_t
#endif /* __need_wint_t */
# 136 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
#endif
# 138 "/usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/stddef.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stddef.h" 2 3
#pragma GCC visibility pop
# 246 "/usr/include/dirent.h" 2 3 4
/* Scan the directory DIR, calling SELECTOR on each directory entry.
Entries for which SELECT returns nonzero are individually malloc'd,
sorted using qsort with CMP, and collected in a malloc'd array in
*NAMELIST. Returns the number of entries selected, or -1 on error.
This function is a cancellation point and therefore not marked with
__THROW. */
# ifndef __USE_FILE_OFFSET64
extern int scandir (const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (const struct dirent *),
int (*__cmp) (const struct dirent **,
const struct dirent **))
__nonnull ((1, 2));
# else
# 262 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern int __REDIRECT (scandir,
(const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (const struct dirent *),
int (*__cmp) (const struct dirent **,
const struct dirent **)),
scandir64) __nonnull ((1, 2));
# else
# 271 "/usr/include/dirent.h" 3 4
# define scandir scandir64
# endif
# 273 "/usr/include/dirent.h" 3 4
# endif
# 274 "/usr/include/dirent.h" 3 4
# if defined __USE_GNU && defined __USE_LARGEFILE64
/* This function is like `scandir' but it uses the 64bit dirent structure.
Please note that the CMP function must now work with struct dirent64 **. */
extern int scandir64 (const char *__restrict __dir,
struct dirent64 ***__restrict __namelist,
int (*__selector) (const struct dirent64 *),
int (*__cmp) (const struct dirent64 **,
const struct dirent64 **))
__nonnull ((1, 2));
# endif
# 285 "/usr/include/dirent.h" 3 4
# ifdef __USE_GNU
/* Similar to `scandir' but a relative DIR name is interpreted relative
to the directory for which DFD is a descriptor.
This function is a cancellation point and therefore not marked with
__THROW. */
# ifndef __USE_FILE_OFFSET64
extern int scandirat (int __dfd, const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (const struct dirent *),
int (*__cmp) (const struct dirent **,
const struct dirent **))
__nonnull ((2, 3));
# else
# 300 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern int __REDIRECT (scandirat,
(int __dfd, const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (const struct dirent *),
int (*__cmp) (const struct dirent **,
const struct dirent **)),
scandirat64) __nonnull ((2, 3));
# else
# 309 "/usr/include/dirent.h" 3 4
# define scandirat scandirat64
# endif
# 311 "/usr/include/dirent.h" 3 4
# endif
# 312 "/usr/include/dirent.h" 3 4
/* This function is like `scandir' but it uses the 64bit dirent structure.
Please note that the CMP function must now work with struct dirent64 **. */
extern int scandirat64 (int __dfd, const char *__restrict __dir,
struct dirent64 ***__restrict __namelist,
int (*__selector) (const struct dirent64 *),
int (*__cmp) (const struct dirent64 **,
const struct dirent64 **))
__nonnull ((2, 3));
# endif
# 322 "/usr/include/dirent.h" 3 4
/* Function to compare two `struct dirent's alphabetically. */
# ifndef __USE_FILE_OFFSET64
extern int alphasort (const struct dirent **__e1,
const struct dirent **__e2)
__THROW __attribute_pure__ __nonnull ((1, 2));
# else
# 329 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern int __REDIRECT_NTH (alphasort,
(const struct dirent **__e1,
const struct dirent **__e2),
alphasort64) __attribute_pure__ __nonnull ((1, 2));
# else
# 335 "/usr/include/dirent.h" 3 4
# define alphasort alphasort64
# endif
# 337 "/usr/include/dirent.h" 3 4
# endif
# 338 "/usr/include/dirent.h" 3 4
# if defined __USE_GNU && defined __USE_LARGEFILE64
extern int alphasort64 (const struct dirent64 **__e1,
const struct dirent64 **__e2)
__THROW __attribute_pure__ __nonnull ((1, 2));
# endif
# 344 "/usr/include/dirent.h" 3 4
#endif /* Use XPG7. */
# 345 "/usr/include/dirent.h" 3 4
#ifdef __USE_MISC
/* Read directory entries from FD into BUF, reading at most NBYTES.
Reading starts at offset *BASEP, and *BASEP is updated with the new
position after reading. Returns the number of bytes read; zero when at
end of directory; or -1 for errors. */
# ifndef __USE_FILE_OFFSET64
extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
size_t __nbytes,
__off_t *__restrict __basep)
__THROW __nonnull ((2, 4));
# else
# 358 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern __ssize_t __REDIRECT_NTH (getdirentries,
(int __fd, char *__restrict __buf,
size_t __nbytes,
__off64_t *__restrict __basep),
getdirentries64) __nonnull ((2, 4));
# else
# 365 "/usr/include/dirent.h" 3 4
# define getdirentries getdirentries64
# endif
# 367 "/usr/include/dirent.h" 3 4
# endif
# 368 "/usr/include/dirent.h" 3 4
# ifdef __USE_LARGEFILE64
extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
size_t __nbytes,
__off64_t *__restrict __basep)
__THROW __nonnull ((2, 4));
# endif
# 375 "/usr/include/dirent.h" 3 4
#endif /* Use misc. */
# 376 "/usr/include/dirent.h" 3 4
#ifdef __USE_GNU
/* Function to compare two `struct dirent's by name & version. */
# ifndef __USE_FILE_OFFSET64
extern int versionsort (const struct dirent **__e1,
const struct dirent **__e2)
__THROW __attribute_pure__ __nonnull ((1, 2));
# else
# 384 "/usr/include/dirent.h" 3 4
# ifdef __REDIRECT
extern int __REDIRECT_NTH (versionsort,
(const struct dirent **__e1,
const struct dirent **__e2),
versionsort64)
__attribute_pure__ __nonnull ((1, 2));
# else
# 391 "/usr/include/dirent.h" 3 4
# define versionsort versionsort64
# endif
# 393 "/usr/include/dirent.h" 3 4
# endif
# 394 "/usr/include/dirent.h" 3 4
# ifdef __USE_LARGEFILE64
extern int versionsort64 (const struct dirent64 **__e1,
const struct dirent64 **__e2)
__THROW __attribute_pure__ __nonnull ((1, 2));
# endif
# 400 "/usr/include/dirent.h" 3 4
#endif /* Use GNU. */
# 401 "/usr/include/dirent.h" 3 4
__END_DECLS
#endif /* dirent.h */
# 405 "/usr/include/dirent.h" 3 4
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/dirent.h" 2 3
#pragma GCC visibility pop
# 33 "/usr/include/glib-2.0/glib/gdir.h" 2 3
#endif
# 34 "/usr/include/glib-2.0/glib/gdir.h" 3
G_BEGIN_DECLS
typedef struct _GDir GDir;
GLIB_AVAILABLE_IN_ALL
GDir * g_dir_open (const gchar *path,
guint flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
const gchar * g_dir_read_name (GDir *dir);
GLIB_AVAILABLE_IN_ALL
void g_dir_rewind (GDir *dir);
GLIB_AVAILABLE_IN_ALL
void g_dir_close (GDir *dir);
#ifndef __GTK_DOC_IGNORE__
#ifdef G_OS_WIN32
#define g_dir_open g_dir_open_utf8
#define g_dir_read_name g_dir_read_name_utf8
GLIB_AVAILABLE_IN_ALL
GDir *g_dir_open_utf8 (const gchar *path,
guint flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
const gchar *g_dir_read_name_utf8 (GDir *dir);
#endif /* G_OS_WIN32 */
# 62 "/usr/include/glib-2.0/glib/gdir.h" 3
#endif /* __GTK_DOC_IGNORE__ */
# 63 "/usr/include/glib-2.0/glib/gdir.h" 3
G_END_DECLS
#endif /* __G_DIR_H__ */
# 67 "/usr/include/glib-2.0/glib/gdir.h" 3
# 46 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/genviron.h>
#endif /* expanded by -frewrite-includes */
# 46 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/genviron.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_ENVIRON_H__
#define __G_ENVIRON_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/genviron.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/genviron.h" 3
# 33 "/usr/include/glib-2.0/glib/genviron.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
const gchar * g_getenv (const gchar *variable);
GLIB_AVAILABLE_IN_ALL
gboolean g_setenv (const gchar *variable,
const gchar *value,
gboolean overwrite);
GLIB_AVAILABLE_IN_ALL
void g_unsetenv (const gchar *variable);
GLIB_AVAILABLE_IN_ALL
gchar ** g_listenv (void);
GLIB_AVAILABLE_IN_ALL
gchar ** g_get_environ (void);
GLIB_AVAILABLE_IN_ALL
const gchar * g_environ_getenv (gchar **envp,
const gchar *variable);
GLIB_AVAILABLE_IN_ALL
gchar ** g_environ_setenv (gchar **envp,
const gchar *variable,
const gchar *value,
gboolean overwrite) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
gchar ** g_environ_unsetenv (gchar **envp,
const gchar *variable) G_GNUC_WARN_UNUSED_RESULT;
#ifndef __GTK_DOC_IGNORE__
#ifdef G_OS_WIN32
#define g_getenv g_getenv_utf8
#define g_setenv g_setenv_utf8
#define g_unsetenv g_unsetenv_utf8
GLIB_AVAILABLE_IN_ALL
const gchar *g_getenv_utf8 (const gchar *variable);
GLIB_AVAILABLE_IN_ALL
gboolean g_setenv_utf8 (const gchar *variable,
const gchar *value,
gboolean overwrite);
GLIB_AVAILABLE_IN_ALL
void g_unsetenv_utf8 (const gchar *variable);
#endif
# 76 "/usr/include/glib-2.0/glib/genviron.h" 3
#endif /* __GTK_DOC_IGNORE__ */
# 77 "/usr/include/glib-2.0/glib/genviron.h" 3
G_END_DECLS
#endif /* __G_ENVIRON_H__ */
# 80 "/usr/include/glib-2.0/glib/genviron.h" 3
# 47 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 47 "/usr/include/glib-2.0/glib.h" 3
# 48 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gfileutils.h>
#endif /* expanded by -frewrite-includes */
# 48 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gfileutils.h" 1 3
/* gfileutils.h - File utility functions
*
* Copyright 2000 Red Hat, Inc.
*
* GLib is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* GLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GLib; see the file COPYING.LIB. If not,
* see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_FILEUTILS_H__
#define __G_FILEUTILS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gfileutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gfileutils.h" 3
# 28 "/usr/include/glib-2.0/glib/gfileutils.h" 3
G_BEGIN_DECLS
#define G_FILE_ERROR g_file_error_quark ()
typedef enum
{
G_FILE_ERROR_EXIST,
G_FILE_ERROR_ISDIR,
G_FILE_ERROR_ACCES,
G_FILE_ERROR_NAMETOOLONG,
G_FILE_ERROR_NOENT,
G_FILE_ERROR_NOTDIR,
G_FILE_ERROR_NXIO,
G_FILE_ERROR_NODEV,
G_FILE_ERROR_ROFS,
G_FILE_ERROR_TXTBSY,
G_FILE_ERROR_FAULT,
G_FILE_ERROR_LOOP,
G_FILE_ERROR_NOSPC,
G_FILE_ERROR_NOMEM,
G_FILE_ERROR_MFILE,
G_FILE_ERROR_NFILE,
G_FILE_ERROR_BADF,
G_FILE_ERROR_INVAL,
G_FILE_ERROR_PIPE,
G_FILE_ERROR_AGAIN,
G_FILE_ERROR_INTR,
G_FILE_ERROR_IO,
G_FILE_ERROR_PERM,
G_FILE_ERROR_NOSYS,
G_FILE_ERROR_FAILED
} GFileError;
/* For backward-compat reasons, these are synced to an old
* anonymous enum in libgnome. But don't use that enum
* in new code.
*/
typedef enum
{
G_FILE_TEST_IS_REGULAR = 1 << 0,
G_FILE_TEST_IS_SYMLINK = 1 << 1,
G_FILE_TEST_IS_DIR = 1 << 2,
G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
G_FILE_TEST_EXISTS = 1 << 4
} GFileTest;
GLIB_AVAILABLE_IN_ALL
GQuark g_file_error_quark (void);
/* So other code can generate a GFileError */
GLIB_AVAILABLE_IN_ALL
GFileError g_file_error_from_errno (gint err_no);
GLIB_AVAILABLE_IN_ALL
gboolean g_file_test (const gchar *filename,
GFileTest test);
GLIB_AVAILABLE_IN_ALL
gboolean g_file_get_contents (const gchar *filename,
gchar **contents,
gsize *length,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_file_set_contents (const gchar *filename,
const gchar *contents,
gssize length,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_file_read_link (const gchar *filename,
GError **error);
/* Wrapper / workalike for mkdtemp() */
GLIB_AVAILABLE_IN_2_30
gchar *g_mkdtemp (gchar *tmpl);
GLIB_AVAILABLE_IN_2_30
gchar *g_mkdtemp_full (gchar *tmpl,
gint mode);
/* Wrapper / workalike for mkstemp() */
GLIB_AVAILABLE_IN_ALL
gint g_mkstemp (gchar *tmpl);
GLIB_AVAILABLE_IN_ALL
gint g_mkstemp_full (gchar *tmpl,
gint flags,
gint mode);
/* Wrappers for g_mkstemp and g_mkdtemp() */
GLIB_AVAILABLE_IN_ALL
gint g_file_open_tmp (const gchar *tmpl,
gchar **name_used,
GError **error);
GLIB_AVAILABLE_IN_2_30
gchar *g_dir_make_tmp (const gchar *tmpl,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_build_path (const gchar *separator,
const gchar *first_element,
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
GLIB_AVAILABLE_IN_ALL
gchar *g_build_pathv (const gchar *separator,
gchar **args) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_build_filename (const gchar *first_element,
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
GLIB_AVAILABLE_IN_ALL
gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gint g_mkdir_with_parents (const gchar *pathname,
gint mode);
#ifdef G_OS_WIN32
/* On Win32, the canonical directory separator is the backslash, and
* the search path separator is the semicolon. Note that also the
* (forward) slash works as directory separator.
*/
#define G_DIR_SEPARATOR '\\'
#define G_DIR_SEPARATOR_S "\\"
#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR || (c) == '/')
#define G_SEARCHPATH_SEPARATOR ';'
#define G_SEARCHPATH_SEPARATOR_S ";"
#else /* !G_OS_WIN32 */
# 153 "/usr/include/glib-2.0/glib/gfileutils.h" 3
#define G_DIR_SEPARATOR '/'
#define G_DIR_SEPARATOR_S "/"
#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR)
#define G_SEARCHPATH_SEPARATOR ':'
#define G_SEARCHPATH_SEPARATOR_S ":"
#endif /* !G_OS_WIN32 */
# 161 "/usr/include/glib-2.0/glib/gfileutils.h" 3
GLIB_AVAILABLE_IN_ALL
gboolean g_path_is_absolute (const gchar *file_name);
GLIB_AVAILABLE_IN_ALL
const gchar *g_path_skip_root (const gchar *file_name);
GLIB_DEPRECATED_FOR(g_path_get_basename)
const gchar *g_basename (const gchar *file_name);
#ifndef G_DISABLE_DEPRECATED
#define g_dirname g_path_get_dirname
#endif
# 172 "/usr/include/glib-2.0/glib/gfileutils.h" 3
GLIB_AVAILABLE_IN_ALL
gchar *g_get_current_dir (void);
GLIB_AVAILABLE_IN_ALL
gchar *g_path_get_basename (const gchar *file_name) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_path_get_dirname (const gchar *file_name) G_GNUC_MALLOC;
#ifndef __GTK_DOC_IGNORE__
#ifdef G_OS_WIN32
#define g_file_test g_file_test_utf8
#define g_file_get_contents g_file_get_contents_utf8
#define g_mkstemp g_mkstemp_utf8
#define g_file_open_tmp g_file_open_tmp_utf8
#define g_get_current_dir g_get_current_dir_utf8
GLIB_AVAILABLE_IN_ALL
gboolean g_file_test_utf8 (const gchar *filename,
GFileTest test);
GLIB_AVAILABLE_IN_ALL
gboolean g_file_get_contents_utf8 (const gchar *filename,
gchar **contents,
gsize *length,
GError **error);
GLIB_AVAILABLE_IN_ALL
gint g_mkstemp_utf8 (gchar *tmpl);
GLIB_AVAILABLE_IN_ALL
gint g_file_open_tmp_utf8 (const gchar *tmpl,
gchar **name_used,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_get_current_dir_utf8 (void);
#endif /* G_OS_WIN32 */
# 205 "/usr/include/glib-2.0/glib/gfileutils.h" 3
#endif /* __GTK_DOC_IGNORE__ */
# 206 "/usr/include/glib-2.0/glib/gfileutils.h" 3
G_END_DECLS
#endif /* __G_FILEUTILS_H__ */
# 210 "/usr/include/glib-2.0/glib/gfileutils.h" 3
# 49 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/ggettext.h>
#endif /* expanded by -frewrite-includes */
# 49 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/ggettext.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_GETTEXT_H__
#define __G_GETTEXT_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/ggettext.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/ggettext.h" 3
# 33 "/usr/include/glib-2.0/glib/ggettext.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
const gchar *g_strip_context (const gchar *msgid,
const gchar *msgval) G_GNUC_FORMAT(1);
GLIB_AVAILABLE_IN_ALL
const gchar *g_dgettext (const gchar *domain,
const gchar *msgid) G_GNUC_FORMAT(2);
GLIB_AVAILABLE_IN_ALL
const gchar *g_dcgettext (const gchar *domain,
const gchar *msgid,
gint category) G_GNUC_FORMAT(2);
GLIB_AVAILABLE_IN_ALL
const gchar *g_dngettext (const gchar *domain,
const gchar *msgid,
const gchar *msgid_plural,
gulong n) G_GNUC_FORMAT(3);
GLIB_AVAILABLE_IN_ALL
const gchar *g_dpgettext (const gchar *domain,
const gchar *msgctxtid,
gsize msgidoffset) G_GNUC_FORMAT(2);
GLIB_AVAILABLE_IN_ALL
const gchar *g_dpgettext2 (const gchar *domain,
const gchar *context,
const gchar *msgid) G_GNUC_FORMAT(3);
G_END_DECLS
#endif /* __G_GETTEXT_H__ */
# 64 "/usr/include/glib-2.0/glib/ggettext.h" 3
# 50 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/ghash.h>
#endif /* expanded by -frewrite-includes */
# 50 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/ghash.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_HASH_H__
#define __G_HASH_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/ghash.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/ghash.h" 3
# 33 "/usr/include/glib-2.0/glib/ghash.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/glist.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/ghash.h" 3
# 1 "/usr/include/glib-2.0/glib/glist.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_LIST_H__
#define __G_LIST_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/glist.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmem.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/glist.h" 3
# 1 "/usr/include/glib-2.0/glib/gmem.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_MEM_H__
#define __G_MEM_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gmem.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gutils.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gmem.h" 3
# 33 "/usr/include/glib-2.0/glib/gmem.h" 3
G_BEGIN_DECLS
/**
* GMemVTable:
* @malloc: function to use for allocating memory.
* @realloc: function to use for reallocating memory.
* @free: function to use to free memory.
* @calloc: function to use for allocating zero-filled memory.
* @try_malloc: function to use for allocating memory without a default error handler.
* @try_realloc: function to use for reallocating memory without a default error handler.
*
* A set of functions used to perform memory allocation. The same #GMemVTable must
* be used for all allocations in the same program; a call to g_mem_set_vtable(),
* if it exists, should be prior to any use of GLib.
*
* This functions related to this has been deprecated in 2.46, and no longer work.
*/
typedef struct _GMemVTable GMemVTable;
#if GLIB_SIZEOF_VOID_P > GLIB_SIZEOF_LONG
/**
* G_MEM_ALIGN:
*
* Indicates the number of bytes to which memory will be aligned on the
* current platform.
*/
# define G_MEM_ALIGN GLIB_SIZEOF_VOID_P
#else /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */
# 63 "/usr/include/glib-2.0/glib/gmem.h" 3
# define G_MEM_ALIGN GLIB_SIZEOF_LONG
#endif /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */
# 65 "/usr/include/glib-2.0/glib/gmem.h" 3
/* Memory allocation functions
*/
GLIB_AVAILABLE_IN_ALL
void g_free (gpointer mem);
GLIB_AVAILABLE_IN_2_34
void g_clear_pointer (gpointer *pp,
GDestroyNotify destroy);
GLIB_AVAILABLE_IN_ALL
gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
gpointer g_realloc (gpointer mem,
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
gpointer g_try_realloc (gpointer mem,
gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
gpointer g_malloc_n (gsize n_blocks,
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
GLIB_AVAILABLE_IN_ALL
gpointer g_malloc0_n (gsize n_blocks,
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
GLIB_AVAILABLE_IN_ALL
gpointer g_realloc_n (gpointer mem,
gsize n_blocks,
gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
gpointer g_try_malloc_n (gsize n_blocks,
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
GLIB_AVAILABLE_IN_ALL
gpointer g_try_malloc0_n (gsize n_blocks,
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
GLIB_AVAILABLE_IN_ALL
gpointer g_try_realloc_n (gpointer mem,
gsize n_blocks,
gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT;
#define g_clear_pointer(pp, destroy) \
G_STMT_START { \
G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \
/* Only one access, please */ \
gpointer *_pp = (gpointer *) (pp); \
gpointer _p; \
/* This assignment is needed to avoid a gcc warning */ \
GDestroyNotify _destroy = (GDestroyNotify) (destroy); \
\
_p = *_pp; \
if (_p) \
{ \
*_pp = NULL; \
_destroy (_p); \
} \
} G_STMT_END
/**
* g_steal_pointer:
* @pp: (not nullable): a pointer to a pointer
*
* Sets @pp to %NULL, returning the value that was there before.
*
* Conceptually, this transfers the ownership of the pointer from the
* referenced variable to the "caller" of the macro (ie: "steals" the
* reference).
*
* The return value will be properly typed, according to the type of
* @pp.
*
* This can be very useful when combined with g_autoptr() to prevent the
* return value of a function from being automatically freed. Consider
* the following example (which only works on GCC and clang):
*
* |[
* GObject *
* create_object (void)
* {
* g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL);
*
* if (early_error_case)
* return NULL;
*
* return g_steal_pointer (&obj);
* }
* ]|
*
* It can also be used in similar ways for 'out' parameters and is
* particularly useful for dealing with optional out parameters:
*
* |[
* gboolean
* get_object (GObject **obj_out)
* {
* g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL);
*
* if (early_error_case)
* return FALSE;
*
* if (obj_out)
* *obj_out = g_steal_pointer (&obj);
*
* return TRUE;
* }
* ]|
*
* In the above example, the object will be automatically freed in the
* early error case and also in the case that %NULL was given for
* @obj_out.
*
* Since: 2.44
*/
static inline gpointer
g_steal_pointer (gpointer pp)
{
gpointer *ptr = (gpointer *) pp;
gpointer ref;
ref = *ptr;
*ptr = NULL;
return ref;
}
/* type safety */
#define g_steal_pointer(pp) \
(0 ? (*(pp)) : (g_steal_pointer) (pp))
/* Optimise: avoid the call to the (slower) _n function if we can
* determine at compile-time that no overflow happens.
*/
#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__)
# define _G_NEW(struct_type, n_structs, func) \
(struct_type *) (G_GNUC_EXTENSION ({ \
gsize __n = (gsize) (n_structs); \
gsize __s = sizeof (struct_type); \
gpointer __p; \
if (__s == 1) \
__p = g_##func (__n); \
else if (__builtin_constant_p (__n) && \
(__s == 0 || __n <= G_MAXSIZE / __s)) \
__p = g_##func (__n * __s); \
else \
__p = g_##func##_n (__n, __s); \
__p; \
}))
# define _G_RENEW(struct_type, mem, n_structs, func) \
(struct_type *) (G_GNUC_EXTENSION ({ \
gsize __n = (gsize) (n_structs); \
gsize __s = sizeof (struct_type); \
gpointer __p = (gpointer) (mem); \
if (__s == 1) \
__p = g_##func (__p, __n); \
else if (__builtin_constant_p (__n) && \
(__s == 0 || __n <= G_MAXSIZE / __s)) \
__p = g_##func (__p, __n * __s); \
else \
__p = g_##func##_n (__p, __n, __s); \
__p; \
}))
#else
# 235 "/usr/include/glib-2.0/glib/gmem.h" 3
/* Unoptimised version: always call the _n() function. */
#define _G_NEW(struct_type, n_structs, func) \
((struct_type *) g_##func##_n ((n_structs), sizeof (struct_type)))
#define _G_RENEW(struct_type, mem, n_structs, func) \
((struct_type *) g_##func##_n (mem, (n_structs), sizeof (struct_type)))
#endif
# 244 "/usr/include/glib-2.0/glib/gmem.h" 3
/**
* g_new:
* @struct_type: the type of the elements to allocate
* @n_structs: the number of elements to allocate
*
* Allocates @n_structs elements of type @struct_type.
* The returned pointer is cast to a pointer to the given type.
* If @n_structs is 0 it returns %NULL.
* Care is taken to avoid overflow when calculating the size of the allocated block.
*
* Since the returned pointer is already casted to the right type,
* it is normally unnecessary to cast it explicitly, and doing
* so might hide memory allocation errors.
*
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type
*/
#define g_new(struct_type, n_structs) _G_NEW (struct_type, n_structs, malloc)
/**
* g_new0:
* @struct_type: the type of the elements to allocate.
* @n_structs: the number of elements to allocate.
*
* Allocates @n_structs elements of type @struct_type, initialized to 0's.
* The returned pointer is cast to a pointer to the given type.
* If @n_structs is 0 it returns %NULL.
* Care is taken to avoid overflow when calculating the size of the allocated block.
*
* Since the returned pointer is already casted to the right type,
* it is normally unnecessary to cast it explicitly, and doing
* so might hide memory allocation errors.
*
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type.
*/
#define g_new0(struct_type, n_structs) _G_NEW (struct_type, n_structs, malloc0)
/**
* g_renew:
* @struct_type: the type of the elements to allocate
* @mem: the currently allocated memory
* @n_structs: the number of elements to allocate
*
* Reallocates the memory pointed to by @mem, so that it now has space for
* @n_structs elements of type @struct_type. It returns the new address of
* the memory, which may have been moved.
* Care is taken to avoid overflow when calculating the size of the allocated block.
*
* Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type
*/
#define g_renew(struct_type, mem, n_structs) _G_RENEW (struct_type, mem, n_structs, realloc)
/**
* g_try_new:
* @struct_type: the type of the elements to allocate
* @n_structs: the number of elements to allocate
*
* Attempts to allocate @n_structs elements of type @struct_type, and returns
* %NULL on failure. Contrast with g_new(), which aborts the program on failure.
* The returned pointer is cast to a pointer to the given type.
* The function returns %NULL when @n_structs is 0 of if an overflow occurs.
*
* Since: 2.8
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type
*/
#define g_try_new(struct_type, n_structs) _G_NEW (struct_type, n_structs, try_malloc)
/**
* g_try_new0:
* @struct_type: the type of the elements to allocate
* @n_structs: the number of elements to allocate
*
* Attempts to allocate @n_structs elements of type @struct_type, initialized
* to 0's, and returns %NULL on failure. Contrast with g_new0(), which aborts
* the program on failure.
* The returned pointer is cast to a pointer to the given type.
* The function returns %NULL when @n_structs is 0 or if an overflow occurs.
*
* Since: 2.8
* Returns: a pointer to the allocated memory, cast to a pointer to @struct_type
*/
#define g_try_new0(struct_type, n_structs) _G_NEW (struct_type, n_structs, try_malloc0)
/**
* g_try_renew:
* @struct_type: the type of the elements to allocate
* @mem: the currently allocated memory
* @n_structs: the number of elements to allocate
*
* Attempts to reallocate the memory pointed to by @mem, so that it now has
* space for @n_structs elements of type @struct_type, and returns %NULL on
* failure. Contrast with g_renew(), which aborts the program on failure.
* It returns the new address of the memory, which may have been moved.
* The function returns %NULL if an overflow occurs.
*
* Since: 2.8
* Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type
*/
#define g_try_renew(struct_type, mem, n_structs) _G_RENEW (struct_type, mem, n_structs, try_realloc)
/* Memory allocation virtualization for debugging purposes
* g_mem_set_vtable() has to be the very first GLib function called
* if being used
*/
struct _GMemVTable {
gpointer (*malloc) (gsize n_bytes);
gpointer (*realloc) (gpointer mem,
gsize n_bytes);
void (*free) (gpointer mem);
/* optional; set to NULL if not used ! */
gpointer (*calloc) (gsize n_blocks,
gsize n_block_bytes);
gpointer (*try_malloc) (gsize n_bytes);
gpointer (*try_realloc) (gpointer mem,
gsize n_bytes);
};
GLIB_DEPRECATED_IN_2_46
void g_mem_set_vtable (GMemVTable *vtable);
GLIB_DEPRECATED_IN_2_46
gboolean g_mem_is_system_malloc (void);
GLIB_VAR gboolean g_mem_gc_friendly;
/* Memory profiler and checker, has to be enabled via g_mem_set_vtable()
*/
GLIB_VAR GMemVTable *glib_mem_profiler_table;
GLIB_DEPRECATED_IN_2_46
void g_mem_profile (void);
G_END_DECLS
#endif /* __G_MEM_H__ */
# 372 "/usr/include/glib-2.0/glib/gmem.h" 3
# 33 "/usr/include/glib-2.0/glib/glist.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gnode.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/glist.h" 3
# 1 "/usr/include/glib-2.0/glib/gnode.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_NODE_H__
#define __G_NODE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gnode.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmem.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gnode.h" 3
# 33 "/usr/include/glib-2.0/glib/gnode.h" 3
G_BEGIN_DECLS
typedef struct _GNode GNode;
/* Tree traverse flags */
typedef enum
{
G_TRAVERSE_LEAVES = 1 << 0,
G_TRAVERSE_NON_LEAVES = 1 << 1,
G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES,
G_TRAVERSE_MASK = 0x03,
G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES,
G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES
} GTraverseFlags;
/* Tree traverse orders */
typedef enum
{
G_IN_ORDER,
G_PRE_ORDER,
G_POST_ORDER,
G_LEVEL_ORDER
} GTraverseType;
typedef gboolean (*GNodeTraverseFunc) (GNode *node,
gpointer data);
typedef void (*GNodeForeachFunc) (GNode *node,
gpointer data);
/**
* GCopyFunc:
* @src: (not nullable): A pointer to the data which should be copied
* @data: Additional data
*
* A function of this signature is used to copy the node data
* when doing a deep-copy of a tree.
*
* Returns: (not nullable): A pointer to the copy
*
* Since: 2.4
*/
typedef gpointer (*GCopyFunc) (gconstpointer src,
gpointer data);
/* N-way tree implementation
*/
struct _GNode
{
gpointer data;
GNode *next;
GNode *prev;
GNode *parent;
GNode *children;
};
/**
* G_NODE_IS_ROOT:
* @node: a #GNode
*
* Returns %TRUE if a #GNode is the root of a tree.
*
* Returns: %TRUE if the #GNode is the root of a tree
* (i.e. it has no parent or siblings)
*/
#define G_NODE_IS_ROOT(node) (((GNode*) (node))->parent == NULL && \
((GNode*) (node))->prev == NULL && \
((GNode*) (node))->next == NULL)
/**
* G_NODE_IS_LEAF:
* @node: a #GNode
*
* Returns %TRUE if a #GNode is a leaf node.
*
* Returns: %TRUE if the #GNode is a leaf node
* (i.e. it has no children)
*/
#define G_NODE_IS_LEAF(node) (((GNode*) (node))->children == NULL)
GLIB_AVAILABLE_IN_ALL
GNode* g_node_new (gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_node_destroy (GNode *root);
GLIB_AVAILABLE_IN_ALL
void g_node_unlink (GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_copy_deep (GNode *node,
GCopyFunc copy_func,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_copy (GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_insert (GNode *parent,
gint position,
GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_insert_before (GNode *parent,
GNode *sibling,
GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_insert_after (GNode *parent,
GNode *sibling,
GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_prepend (GNode *parent,
GNode *node);
GLIB_AVAILABLE_IN_ALL
guint g_node_n_nodes (GNode *root,
GTraverseFlags flags);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_get_root (GNode *node);
GLIB_AVAILABLE_IN_ALL
gboolean g_node_is_ancestor (GNode *node,
GNode *descendant);
GLIB_AVAILABLE_IN_ALL
guint g_node_depth (GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_find (GNode *root,
GTraverseType order,
GTraverseFlags flags,
gpointer data);
/* convenience macros */
/**
* g_node_append:
* @parent: the #GNode to place the new #GNode under
* @node: the #GNode to insert
*
* Inserts a #GNode as the last child of the given parent.
*
* Returns: the inserted #GNode
*/
#define g_node_append(parent, node) \
g_node_insert_before ((parent), NULL, (node))
/**
* g_node_insert_data:
* @parent: the #GNode to place the new #GNode under
* @position: the position to place the new #GNode at. If position is -1,
* the new #GNode is inserted as the last child of @parent
* @data: the data for the new #GNode
*
* Inserts a new #GNode at the given position.
*
* Returns: the new #GNode
*/
#define g_node_insert_data(parent, position, data) \
g_node_insert ((parent), (position), g_node_new (data))
/**
* g_node_insert_data_after:
* @parent: the #GNode to place the new #GNode under
* @sibling: the sibling #GNode to place the new #GNode after
* @data: the data for the new #GNode
*
* Inserts a new #GNode after the given sibling.
*
* Returns: the new #GNode
*/
#define g_node_insert_data_after(parent, sibling, data) \
g_node_insert_after ((parent), (sibling), g_node_new (data))
/**
* g_node_insert_data_before:
* @parent: the #GNode to place the new #GNode under
* @sibling: the sibling #GNode to place the new #GNode before
* @data: the data for the new #GNode
*
* Inserts a new #GNode before the given sibling.
*
* Returns: the new #GNode
*/
#define g_node_insert_data_before(parent, sibling, data) \
g_node_insert_before ((parent), (sibling), g_node_new (data))
/**
* g_node_prepend_data:
* @parent: the #GNode to place the new #GNode under
* @data: the data for the new #GNode
*
* Inserts a new #GNode as the first child of the given parent.
*
* Returns: the new #GNode
*/
#define g_node_prepend_data(parent, data) \
g_node_prepend ((parent), g_node_new (data))
/**
* g_node_append_data:
* @parent: the #GNode to place the new #GNode under
* @data: the data for the new #GNode
*
* Inserts a new #GNode as the last child of the given parent.
*
* Returns: the new #GNode
*/
#define g_node_append_data(parent, data) \
g_node_insert_before ((parent), NULL, g_node_new (data))
/* traversal function, assumes that 'node' is root
* (only traverses 'node' and its subtree).
* this function is just a high level interface to
* low level traversal functions, optimized for speed.
*/
GLIB_AVAILABLE_IN_ALL
void g_node_traverse (GNode *root,
GTraverseType order,
GTraverseFlags flags,
gint max_depth,
GNodeTraverseFunc func,
gpointer data);
/* return the maximum tree height starting with 'node', this is an expensive
* operation, since we need to visit all nodes. this could be shortened by
* adding 'guint height' to struct _GNode, but then again, this is not very
* often needed, and would make g_node_insert() more time consuming.
*/
GLIB_AVAILABLE_IN_ALL
guint g_node_max_height (GNode *root);
GLIB_AVAILABLE_IN_ALL
void g_node_children_foreach (GNode *node,
GTraverseFlags flags,
GNodeForeachFunc func,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_node_reverse_children (GNode *node);
GLIB_AVAILABLE_IN_ALL
guint g_node_n_children (GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_nth_child (GNode *node,
guint n);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_last_child (GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_find_child (GNode *node,
GTraverseFlags flags,
gpointer data);
GLIB_AVAILABLE_IN_ALL
gint g_node_child_position (GNode *node,
GNode *child);
GLIB_AVAILABLE_IN_ALL
gint g_node_child_index (GNode *node,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_first_sibling (GNode *node);
GLIB_AVAILABLE_IN_ALL
GNode* g_node_last_sibling (GNode *node);
/**
* g_node_prev_sibling:
* @node: a #GNode
*
* Gets the previous sibling of a #GNode.
*
* Returns: the previous sibling of @node, or %NULL if @node is the first
* node or %NULL
*/
#define g_node_prev_sibling(node) ((node) ? \
((GNode*) (node))->prev : NULL)
/**
* g_node_next_sibling:
* @node: a #GNode
*
* Gets the next sibling of a #GNode.
*
* Returns: the next sibling of @node, or %NULL if @node is the last node
* or %NULL
*/
#define g_node_next_sibling(node) ((node) ? \
((GNode*) (node))->next : NULL)
/**
* g_node_first_child:
* @node: a #GNode
*
* Gets the first child of a #GNode.
*
* Returns: the first child of @node, or %NULL if @node is %NULL
* or has no children
*/
#define g_node_first_child(node) ((node) ? \
((GNode*) (node))->children : NULL)
G_END_DECLS
#endif /* __G_NODE_H__ */
# 323 "/usr/include/glib-2.0/glib/gnode.h" 3
# 34 "/usr/include/glib-2.0/glib/glist.h" 2 3
G_BEGIN_DECLS
typedef struct _GList GList;
struct _GList
{
gpointer data;
GList *next;
GList *prev;
};
/* Doubly linked lists
*/
GLIB_AVAILABLE_IN_ALL
GList* g_list_alloc (void) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
void g_list_free (GList *list);
GLIB_AVAILABLE_IN_ALL
void g_list_free_1 (GList *list);
#define g_list_free1 g_list_free_1
GLIB_AVAILABLE_IN_ALL
void g_list_free_full (GList *list,
GDestroyNotify free_func);
GLIB_AVAILABLE_IN_ALL
GList* g_list_append (GList *list,
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_prepend (GList *list,
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_insert (GList *list,
gpointer data,
gint position) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_insert_sorted (GList *list,
gpointer data,
GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_insert_sorted_with_data (GList *list,
gpointer data,
GCompareDataFunc func,
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_insert_before (GList *list,
GList *sibling,
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_concat (GList *list1,
GList *list2) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_remove (GList *list,
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_remove_all (GList *list,
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_remove_link (GList *list,
GList *llink) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_delete_link (GList *list,
GList *link_) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_reverse (GList *list) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_copy (GList *list) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_2_34
GList* g_list_copy_deep (GList *list,
GCopyFunc func,
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_nth (GList *list,
guint n);
GLIB_AVAILABLE_IN_ALL
GList* g_list_nth_prev (GList *list,
guint n);
GLIB_AVAILABLE_IN_ALL
GList* g_list_find (GList *list,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
GList* g_list_find_custom (GList *list,
gconstpointer data,
GCompareFunc func);
GLIB_AVAILABLE_IN_ALL
gint g_list_position (GList *list,
GList *llink);
GLIB_AVAILABLE_IN_ALL
gint g_list_index (GList *list,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
GList* g_list_last (GList *list);
GLIB_AVAILABLE_IN_ALL
GList* g_list_first (GList *list);
GLIB_AVAILABLE_IN_ALL
guint g_list_length (GList *list);
GLIB_AVAILABLE_IN_ALL
void g_list_foreach (GList *list,
GFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
GList* g_list_sort (GList *list,
GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GList* g_list_sort_with_data (GList *list,
GCompareDataFunc compare_func,
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
gpointer g_list_nth_data (GList *list,
guint n);
#define g_list_previous(list) ((list) ? (((GList *)(list))->prev) : NULL)
#define g_list_next(list) ((list) ? (((GList *)(list))->next) : NULL)
G_END_DECLS
#endif /* __G_LIST_H__ */
# 153 "/usr/include/glib-2.0/glib/glist.h" 3
# 34 "/usr/include/glib-2.0/glib/ghash.h" 2 3
G_BEGIN_DECLS
typedef struct _GHashTable GHashTable;
typedef gboolean (*GHRFunc) (gpointer key,
gpointer value,
gpointer user_data);
typedef struct _GHashTableIter GHashTableIter;
struct _GHashTableIter
{
/*< private >*/
gpointer dummy1;
gpointer dummy2;
gpointer dummy3;
int dummy4;
gboolean dummy5;
gpointer dummy6;
};
GLIB_AVAILABLE_IN_ALL
GHashTable* g_hash_table_new (GHashFunc hash_func,
GEqualFunc key_equal_func);
GLIB_AVAILABLE_IN_ALL
GHashTable* g_hash_table_new_full (GHashFunc hash_func,
GEqualFunc key_equal_func,
GDestroyNotify key_destroy_func,
GDestroyNotify value_destroy_func);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_destroy (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_insert (GHashTable *hash_table,
gpointer key,
gpointer value);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_replace (GHashTable *hash_table,
gpointer key,
gpointer value);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_add (GHashTable *hash_table,
gpointer key);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_remove (GHashTable *hash_table,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_remove_all (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_steal (GHashTable *hash_table,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_steal_all (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
gpointer g_hash_table_lookup (GHashTable *hash_table,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_contains (GHashTable *hash_table,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_lookup_extended (GHashTable *hash_table,
gconstpointer lookup_key,
gpointer *orig_key,
gpointer *value);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_foreach (GHashTable *hash_table,
GHFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
gpointer g_hash_table_find (GHashTable *hash_table,
GHRFunc predicate,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
guint g_hash_table_foreach_remove (GHashTable *hash_table,
GHRFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
guint g_hash_table_foreach_steal (GHashTable *hash_table,
GHRFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
guint g_hash_table_size (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
GList * g_hash_table_get_keys (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
GList * g_hash_table_get_values (GHashTable *hash_table);
GLIB_AVAILABLE_IN_2_40
gpointer * g_hash_table_get_keys_as_array (GHashTable *hash_table,
guint *length);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_iter_init (GHashTableIter *iter,
GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
gboolean g_hash_table_iter_next (GHashTableIter *iter,
gpointer *key,
gpointer *value);
GLIB_AVAILABLE_IN_ALL
GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_iter_remove (GHashTableIter *iter);
GLIB_AVAILABLE_IN_2_30
void g_hash_table_iter_replace (GHashTableIter *iter,
gpointer value);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_iter_steal (GHashTableIter *iter);
GLIB_AVAILABLE_IN_ALL
GHashTable* g_hash_table_ref (GHashTable *hash_table);
GLIB_AVAILABLE_IN_ALL
void g_hash_table_unref (GHashTable *hash_table);
#ifndef G_DISABLE_DEPRECATED
#define g_hash_table_freeze(hash_table) ((void)0)
#define g_hash_table_thaw(hash_table) ((void)0)
#endif
# 150 "/usr/include/glib-2.0/glib/ghash.h" 3
/* Hash Functions
*/
GLIB_AVAILABLE_IN_ALL
gboolean g_str_equal (gconstpointer v1,
gconstpointer v2);
GLIB_AVAILABLE_IN_ALL
guint g_str_hash (gconstpointer v);
GLIB_AVAILABLE_IN_ALL
gboolean g_int_equal (gconstpointer v1,
gconstpointer v2);
GLIB_AVAILABLE_IN_ALL
guint g_int_hash (gconstpointer v);
GLIB_AVAILABLE_IN_ALL
gboolean g_int64_equal (gconstpointer v1,
gconstpointer v2);
GLIB_AVAILABLE_IN_ALL
guint g_int64_hash (gconstpointer v);
GLIB_AVAILABLE_IN_ALL
gboolean g_double_equal (gconstpointer v1,
gconstpointer v2);
GLIB_AVAILABLE_IN_ALL
guint g_double_hash (gconstpointer v);
GLIB_AVAILABLE_IN_ALL
guint g_direct_hash (gconstpointer v) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_direct_equal (gconstpointer v1,
gconstpointer v2) G_GNUC_CONST;
G_END_DECLS
#endif /* __G_HASH_H__ */
# 186 "/usr/include/glib-2.0/glib/ghash.h" 3
# 51 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/ghmac.h>
#endif /* expanded by -frewrite-includes */
# 51 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/ghmac.h" 1 3
/* ghmac.h - secure data hashing
*
* Copyright (C) 2011 Stef Walter <stefw@collabora.co.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_HMAC_H__
#define __G_HMAC_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 25 "/usr/include/glib-2.0/glib/ghmac.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/ghmac.h" 3
# 27 "/usr/include/glib-2.0/glib/ghmac.h" 3
#if 0 /* expanded by -frewrite-includes */
#include "gchecksum.h"
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/ghmac.h" 3
# 28 "/usr/include/glib-2.0/glib/ghmac.h" 3
G_BEGIN_DECLS
/**
* GHmac:
*
* An opaque structure representing a HMAC operation.
* To create a new GHmac, use g_hmac_new(). To free
* a GHmac, use g_hmac_unref().
*
* Since: 2.30
*/
typedef struct _GHmac GHmac;
GLIB_AVAILABLE_IN_2_30
GHmac * g_hmac_new (GChecksumType digest_type,
const guchar *key,
gsize key_len);
GLIB_AVAILABLE_IN_2_30
GHmac * g_hmac_copy (const GHmac *hmac);
GLIB_AVAILABLE_IN_2_30
GHmac * g_hmac_ref (GHmac *hmac);
GLIB_AVAILABLE_IN_2_30
void g_hmac_unref (GHmac *hmac);
GLIB_AVAILABLE_IN_2_30
void g_hmac_update (GHmac *hmac,
const guchar *data,
gssize length);
GLIB_AVAILABLE_IN_2_30
const gchar * g_hmac_get_string (GHmac *hmac);
GLIB_AVAILABLE_IN_2_30
void g_hmac_get_digest (GHmac *hmac,
guint8 *buffer,
gsize *digest_len);
GLIB_AVAILABLE_IN_2_30
gchar *g_compute_hmac_for_data (GChecksumType digest_type,
const guchar *key,
gsize key_len,
const guchar *data,
gsize length);
GLIB_AVAILABLE_IN_2_30
gchar *g_compute_hmac_for_string (GChecksumType digest_type,
const guchar *key,
gsize key_len,
const gchar *str,
gssize length);
GLIB_AVAILABLE_IN_2_50
gchar *g_compute_hmac_for_bytes (GChecksumType digest_type,
GBytes *key,
GBytes *data);
G_END_DECLS
#endif /* __G_CHECKSUM_H__ */
# 84 "/usr/include/glib-2.0/glib/ghmac.h" 3
# 52 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/ghook.h>
#endif /* expanded by -frewrite-includes */
# 52 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/ghook.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_HOOK_H__
#define __G_HOOK_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/ghook.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmem.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/ghook.h" 3
# 33 "/usr/include/glib-2.0/glib/ghook.h" 3
G_BEGIN_DECLS
/* --- typedefs --- */
typedef struct _GHook GHook;
typedef struct _GHookList GHookList;
typedef gint (*GHookCompareFunc) (GHook *new_hook,
GHook *sibling);
typedef gboolean (*GHookFindFunc) (GHook *hook,
gpointer data);
typedef void (*GHookMarshaller) (GHook *hook,
gpointer marshal_data);
typedef gboolean (*GHookCheckMarshaller) (GHook *hook,
gpointer marshal_data);
typedef void (*GHookFunc) (gpointer data);
typedef gboolean (*GHookCheckFunc) (gpointer data);
typedef void (*GHookFinalizeFunc) (GHookList *hook_list,
GHook *hook);
typedef enum
{
G_HOOK_FLAG_ACTIVE = 1 << 0,
G_HOOK_FLAG_IN_CALL = 1 << 1,
G_HOOK_FLAG_MASK = 0x0f
} GHookFlagMask;
#define G_HOOK_FLAG_USER_SHIFT (4)
/* --- structures --- */
struct _GHookList
{
gulong seq_id;
guint hook_size : 16;
guint is_setup : 1;
GHook *hooks;
gpointer dummy3;
GHookFinalizeFunc finalize_hook;
gpointer dummy[2];
};
struct _GHook
{
gpointer data;
GHook *next;
GHook *prev;
guint ref_count;
gulong hook_id;
guint flags;
gpointer func;
GDestroyNotify destroy;
};
/* --- macros --- */
#define G_HOOK(hook) ((GHook*) (hook))
#define G_HOOK_FLAGS(hook) (G_HOOK (hook)->flags)
#define G_HOOK_ACTIVE(hook) ((G_HOOK_FLAGS (hook) & \
G_HOOK_FLAG_ACTIVE) != 0)
#define G_HOOK_IN_CALL(hook) ((G_HOOK_FLAGS (hook) & \
G_HOOK_FLAG_IN_CALL) != 0)
#define G_HOOK_IS_VALID(hook) (G_HOOK (hook)->hook_id != 0 && \
(G_HOOK_FLAGS (hook) & \
G_HOOK_FLAG_ACTIVE))
#define G_HOOK_IS_UNLINKED(hook) (G_HOOK (hook)->next == NULL && \
G_HOOK (hook)->prev == NULL && \
G_HOOK (hook)->hook_id == 0 && \
G_HOOK (hook)->ref_count == 0)
/* --- prototypes --- */
/* callback maintenance functions */
GLIB_AVAILABLE_IN_ALL
void g_hook_list_init (GHookList *hook_list,
guint hook_size);
GLIB_AVAILABLE_IN_ALL
void g_hook_list_clear (GHookList *hook_list);
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_alloc (GHookList *hook_list);
GLIB_AVAILABLE_IN_ALL
void g_hook_free (GHookList *hook_list,
GHook *hook);
GLIB_AVAILABLE_IN_ALL
GHook * g_hook_ref (GHookList *hook_list,
GHook *hook);
GLIB_AVAILABLE_IN_ALL
void g_hook_unref (GHookList *hook_list,
GHook *hook);
GLIB_AVAILABLE_IN_ALL
gboolean g_hook_destroy (GHookList *hook_list,
gulong hook_id);
GLIB_AVAILABLE_IN_ALL
void g_hook_destroy_link (GHookList *hook_list,
GHook *hook);
GLIB_AVAILABLE_IN_ALL
void g_hook_prepend (GHookList *hook_list,
GHook *hook);
GLIB_AVAILABLE_IN_ALL
void g_hook_insert_before (GHookList *hook_list,
GHook *sibling,
GHook *hook);
GLIB_AVAILABLE_IN_ALL
void g_hook_insert_sorted (GHookList *hook_list,
GHook *hook,
GHookCompareFunc func);
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_get (GHookList *hook_list,
gulong hook_id);
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_find (GHookList *hook_list,
gboolean need_valids,
GHookFindFunc func,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_find_data (GHookList *hook_list,
gboolean need_valids,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_find_func (GHookList *hook_list,
gboolean need_valids,
gpointer func);
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_find_func_data (GHookList *hook_list,
gboolean need_valids,
gpointer func,
gpointer data);
/* return the first valid hook, and increment its reference count */
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_first_valid (GHookList *hook_list,
gboolean may_be_in_call);
/* return the next valid hook with incremented reference count, and
* decrement the reference count of the original hook
*/
GLIB_AVAILABLE_IN_ALL
GHook* g_hook_next_valid (GHookList *hook_list,
GHook *hook,
gboolean may_be_in_call);
/* GHookCompareFunc implementation to insert hooks sorted by their id */
GLIB_AVAILABLE_IN_ALL
gint g_hook_compare_ids (GHook *new_hook,
GHook *sibling);
/* convenience macros */
#define g_hook_append( hook_list, hook ) \
g_hook_insert_before ((hook_list), NULL, (hook))
/* invoke all valid hooks with the (*GHookFunc) signature.
*/
GLIB_AVAILABLE_IN_ALL
void g_hook_list_invoke (GHookList *hook_list,
gboolean may_recurse);
/* invoke all valid hooks with the (*GHookCheckFunc) signature,
* and destroy the hook if FALSE is returned.
*/
GLIB_AVAILABLE_IN_ALL
void g_hook_list_invoke_check (GHookList *hook_list,
gboolean may_recurse);
/* invoke a marshaller on all valid hooks.
*/
GLIB_AVAILABLE_IN_ALL
void g_hook_list_marshal (GHookList *hook_list,
gboolean may_recurse,
GHookMarshaller marshaller,
gpointer marshal_data);
GLIB_AVAILABLE_IN_ALL
void g_hook_list_marshal_check (GHookList *hook_list,
gboolean may_recurse,
GHookCheckMarshaller marshaller,
gpointer marshal_data);
G_END_DECLS
#endif /* __G_HOOK_H__ */
# 203 "/usr/include/glib-2.0/glib/ghook.h" 3
# 53 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/ghostutils.h>
#endif /* expanded by -frewrite-includes */
# 53 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/ghostutils.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 2008 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_HOST_UTILS_H__
#define __G_HOST_UTILS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 24 "/usr/include/glib-2.0/glib/ghostutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/glib-2.0/glib/ghostutils.h" 3
# 26 "/usr/include/glib-2.0/glib/ghostutils.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
gboolean g_hostname_is_non_ascii (const gchar *hostname);
GLIB_AVAILABLE_IN_ALL
gboolean g_hostname_is_ascii_encoded (const gchar *hostname);
GLIB_AVAILABLE_IN_ALL
gboolean g_hostname_is_ip_address (const gchar *hostname);
GLIB_AVAILABLE_IN_ALL
gchar *g_hostname_to_ascii (const gchar *hostname);
GLIB_AVAILABLE_IN_ALL
gchar *g_hostname_to_unicode (const gchar *hostname);
G_END_DECLS
#endif /* __G_HOST_UTILS_H__ */
# 44 "/usr/include/glib-2.0/glib/ghostutils.h" 3
# 54 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/giochannel.h>
#endif /* expanded by -frewrite-includes */
# 54 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/giochannel.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_IOCHANNEL_H__
#define __G_IOCHANNEL_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/giochannel.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gconvert.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/giochannel.h" 3
# 33 "/usr/include/glib-2.0/glib/giochannel.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmain.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/giochannel.h" 3
# 1 "/usr/include/glib-2.0/glib/gmain.h" 1 3
/* gmain.h - the GLib Main loop
* Copyright (C) 1998-2000 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_MAIN_H__
#define __G_MAIN_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 24 "/usr/include/glib-2.0/glib/gmain.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gpoll.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/glib-2.0/glib/gmain.h" 3
# 1 "/usr/include/glib-2.0/glib/gpoll.h" 1 3
/* gpoll.h - poll(2) support
* Copyright (C) 2008 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_POLL_H__
#define __G_POLL_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (__G_MAIN_H__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 24 "/usr/include/glib-2.0/glib/gpoll.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glibconfig.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/glib-2.0/glib/gpoll.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <glibconfig.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/glibconfig.h" 3
#pragma GCC visibility pop
# 26 "/usr/include/glib-2.0/glib/gpoll.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/gpoll.h" 3
# 27 "/usr/include/glib-2.0/glib/gpoll.h" 3
G_BEGIN_DECLS
/* Any definitions using GPollFD or GPollFunc are primarily
* for Unix and not guaranteed to be the compatible on all
* operating systems on which GLib runs. Right now, the
* GLib does use these functions on Win32 as well, but interprets
* them in a fairly different way than on Unix. If you use
* these definitions, you are should be prepared to recode
* for different operating systems.
*
* Note that on systems with a working poll(2), that function is used
* in place of g_poll(). Thus g_poll() must have the same signature as
* poll(), meaning GPollFD must have the same layout as struct pollfd.
*
* On Win32, the fd in a GPollFD should be Win32 HANDLE (*not* a file
* descriptor as provided by the C runtime) that can be used by
* MsgWaitForMultipleObjects. This does *not* include file handles
* from CreateFile, SOCKETs, nor pipe handles. (But you can use
* WSAEventSelect to signal events when a SOCKET is readable).
*
* On Win32, fd can also be the special value G_WIN32_MSG_HANDLE to
* indicate polling for messages.
*
* But note that G_WIN32_MSG_HANDLE GPollFDs should not be used by GDK
* (GTK) programs, as GDK itself wants to read messages and convert them
* to GDK events.
*
* So, unless you really know what you are doing, it's best not to try
* to use the main loop polling stuff for your own needs on
* Windows.
*/
typedef struct _GPollFD GPollFD;
/**
* GPollFunc:
* @ufds: an array of #GPollFD elements
* @nfsd: the number of elements in @ufds
* @timeout_: the maximum time to wait for an event of the file descriptors.
* A negative value indicates an infinite timeout.
*
* Specifies the type of function passed to g_main_context_set_poll_func().
* The semantics of the function should match those of the poll() system call.
*
* Returns: the number of #GPollFD elements which have events or errors
* reported, or -1 if an error occurred.
*/
typedef gint (*GPollFunc) (GPollFD *ufds,
guint nfsd,
gint timeout_);
/**
* GPollFD:
* @fd: the file descriptor to poll (or a HANDLE on Win32)
* @events: a bitwise combination from #GIOCondition, specifying which
* events should be polled for. Typically for reading from a file
* descriptor you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and
* for writing you would use %G_IO_OUT | %G_IO_ERR.
* @revents: a bitwise combination of flags from #GIOCondition, returned
* from the poll() function to indicate which events occurred.
*
* Represents a file descriptor, which events to poll for, and which events
* occurred.
*/
struct _GPollFD
{
#if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8
#ifndef __GTK_DOC_IGNORE__
gint64 fd;
#endif
# 97 "/usr/include/glib-2.0/glib/gpoll.h" 3
#else
# 98 "/usr/include/glib-2.0/glib/gpoll.h" 3
gint fd;
#endif
# 100 "/usr/include/glib-2.0/glib/gpoll.h" 3
gushort events;
gushort revents;
};
/**
* G_POLLFD_FORMAT:
*
* A format specifier that can be used in printf()-style format strings
* when printing the @fd member of a #GPollFD.
*/
/* defined in glibconfig.h */
GLIB_AVAILABLE_IN_ALL
gint
g_poll (GPollFD *fds,
guint nfds,
gint timeout);
G_END_DECLS
#endif /* __G_POLL_H__ */
# 121 "/usr/include/glib-2.0/glib/gpoll.h" 3
# 26 "/usr/include/glib-2.0/glib/gmain.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gslist.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/gmain.h" 3
# 1 "/usr/include/glib-2.0/glib/gslist.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_SLIST_H__
#define __G_SLIST_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gslist.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmem.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gslist.h" 3
# 33 "/usr/include/glib-2.0/glib/gslist.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gnode.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gslist.h" 3
# 34 "/usr/include/glib-2.0/glib/gslist.h" 3
G_BEGIN_DECLS
typedef struct _GSList GSList;
struct _GSList
{
gpointer data;
GSList *next;
};
/* Singly linked lists
*/
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_alloc (void) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
void g_slist_free (GSList *list);
GLIB_AVAILABLE_IN_ALL
void g_slist_free_1 (GSList *list);
#define g_slist_free1 g_slist_free_1
GLIB_AVAILABLE_IN_ALL
void g_slist_free_full (GSList *list,
GDestroyNotify free_func);
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_append (GSList *list,
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_prepend (GSList *list,
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_insert (GSList *list,
gpointer data,
gint position) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_insert_sorted (GSList *list,
gpointer data,
GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_insert_sorted_with_data (GSList *list,
gpointer data,
GCompareDataFunc func,
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_insert_before (GSList *slist,
GSList *sibling,
gpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_concat (GSList *list1,
GSList *list2) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_remove (GSList *list,
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_remove_all (GSList *list,
gconstpointer data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_remove_link (GSList *list,
GSList *link_) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_delete_link (GSList *list,
GSList *link_) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_reverse (GSList *list) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_copy (GSList *list) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_2_34
GSList* g_slist_copy_deep (GSList *list,
GCopyFunc func,
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_nth (GSList *list,
guint n);
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_find (GSList *list,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_find_custom (GSList *list,
gconstpointer data,
GCompareFunc func);
GLIB_AVAILABLE_IN_ALL
gint g_slist_position (GSList *list,
GSList *llink);
GLIB_AVAILABLE_IN_ALL
gint g_slist_index (GSList *list,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_last (GSList *list);
GLIB_AVAILABLE_IN_ALL
guint g_slist_length (GSList *list);
GLIB_AVAILABLE_IN_ALL
void g_slist_foreach (GSList *list,
GFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_sort (GSList *list,
GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
GSList* g_slist_sort_with_data (GSList *list,
GCompareDataFunc compare_func,
gpointer user_data) G_GNUC_WARN_UNUSED_RESULT;
GLIB_AVAILABLE_IN_ALL
gpointer g_slist_nth_data (GSList *list,
guint n);
#define g_slist_next(slist) ((slist) ? (((GSList *)(slist))->next) : NULL)
G_END_DECLS
#endif /* __G_SLIST_H__ */
# 144 "/usr/include/glib-2.0/glib/gslist.h" 3
# 27 "/usr/include/glib-2.0/glib/gmain.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gthread.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gmain.h" 3
# 28 "/usr/include/glib-2.0/glib/gmain.h" 3
G_BEGIN_DECLS
typedef enum /*< flags >*/
{
G_IO_IN GLIB_SYSDEF_POLLIN,
G_IO_OUT GLIB_SYSDEF_POLLOUT,
G_IO_PRI GLIB_SYSDEF_POLLPRI,
G_IO_ERR GLIB_SYSDEF_POLLERR,
G_IO_HUP GLIB_SYSDEF_POLLHUP,
G_IO_NVAL GLIB_SYSDEF_POLLNVAL
} GIOCondition;
/**
* GMainContext:
*
* The `GMainContext` struct is an opaque data
* type representing a set of sources to be handled in a main loop.
*/
typedef struct _GMainContext GMainContext;
/**
* GMainLoop:
*
* The `GMainLoop` struct is an opaque data type
* representing the main event loop of a GLib or GTK+ application.
*/
typedef struct _GMainLoop GMainLoop;
/**
* GSource:
*
* The `GSource` struct is an opaque data type
* representing an event source.
*/
typedef struct _GSource GSource;
typedef struct _GSourcePrivate GSourcePrivate;
/**
* GSourceCallbackFuncs:
* @ref: Called when a reference is added to the callback object
* @unref: Called when a reference to the callback object is dropped
* @get: Called to extract the callback function and data from the
* callback object.
* The `GSourceCallbackFuncs` struct contains
* functions for managing callback objects.
*/
typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs;
/**
* GSourceFuncs:
* @prepare: Called before all the file descriptors are polled. If the
* source can determine that it is ready here (without waiting for the
* results of the poll() call) it should return %TRUE. It can also return
* a @timeout_ value which should be the maximum timeout (in milliseconds)
* which should be passed to the poll() call. The actual timeout used will
* be -1 if all sources returned -1, or it will be the minimum of all
* the @timeout_ values returned which were >= 0. Since 2.36 this may
* be %NULL, in which case the effect is as if the function always returns
* %FALSE with a timeout of -1. If @prepare returns a
* timeout and the source also has a 'ready time' set then the
* nearer of the two will be used.
* @check: Called after all the file descriptors are polled. The source
* should return %TRUE if it is ready to be dispatched. Note that some
* time may have passed since the previous prepare function was called,
* so the source should be checked again here. Since 2.36 this may
* be %NULL, in which case the effect is as if the function always returns
* %FALSE.
* @dispatch: Called to dispatch the event source, after it has returned
* %TRUE in either its @prepare or its @check function. The @dispatch
* function is passed in a callback function and data. The callback
* function may be %NULL if the source was never connected to a callback
* using g_source_set_callback(). The @dispatch function should call the
* callback function with @user_data and whatever additional parameters
* are needed for this type of event source. The return value of the
* @dispatch function should be #G_SOURCE_REMOVE if the source should be
* removed or #G_SOURCE_CONTINUE to keep it.
* @finalize: Called when the source is finalized.
*
* The `GSourceFuncs` struct contains a table of
* functions used to handle event sources in a generic manner.
*
* For idle sources, the prepare and check functions always return %TRUE
* to indicate that the source is always ready to be processed. The prepare
* function also returns a timeout value of 0 to ensure that the poll() call
* doesn't block (since that would be time wasted which could have been spent
* running the idle function).
*
* For timeout sources, the prepare and check functions both return %TRUE
* if the timeout interval has expired. The prepare function also returns
* a timeout value to ensure that the poll() call doesn't block too long
* and miss the next timeout.
*
* For file descriptor sources, the prepare function typically returns %FALSE,
* since it must wait until poll() has been called before it knows whether
* any events need to be processed. It sets the returned timeout to -1 to
* indicate that it doesn't mind how long the poll() call blocks. In the
* check function, it tests the results of the poll() call to see if the
* required condition has been met, and returns %TRUE if so.
*/
typedef struct _GSourceFuncs GSourceFuncs;
/**
* GPid:
*
* A type which is used to hold a process identification.
*
* On UNIX, processes are identified by a process id (an integer),
* while Windows uses process handles (which are pointers).
*
* GPid is used in GLib only for descendant processes spawned with
* the g_spawn functions.
*/
/* defined in glibconfig.h */
/**
* G_PID_FORMAT:
*
* A format specifier that can be used in printf()-style format strings
* when printing a #GPid.
*
* Since: 2.50
*/
/* defined in glibconfig.h */
/**
* GSourceFunc:
* @user_data: data passed to the function, set when the source was
* created with one of the above functions
*
* Specifies the type of function passed to g_timeout_add(),
* g_timeout_add_full(), g_idle_add(), and g_idle_add_full().
*
* Returns: %FALSE if the source should be removed. #G_SOURCE_CONTINUE and
* #G_SOURCE_REMOVE are more memorable names for the return value.
*/
typedef gboolean (*GSourceFunc) (gpointer user_data);
/**
* GChildWatchFunc:
* @pid: the process id of the child process
* @status: Status information about the child process, encoded
* in a platform-specific manner
* @user_data: user data passed to g_child_watch_add()
*
* Prototype of a #GChildWatchSource callback, called when a child
* process has exited. To interpret @status, see the documentation
* for g_spawn_check_exit_status().
*/
typedef void (*GChildWatchFunc) (GPid pid,
gint status,
gpointer user_data);
struct _GSource
{
/*< private >*/
gpointer callback_data;
GSourceCallbackFuncs *callback_funcs;
const GSourceFuncs *source_funcs;
guint ref_count;
GMainContext *context;
gint priority;
guint flags;
guint source_id;
GSList *poll_fds;
GSource *prev;
GSource *next;
char *name;
GSourcePrivate *priv;
};
struct _GSourceCallbackFuncs
{
void (*ref) (gpointer cb_data);
void (*unref) (gpointer cb_data);
void (*get) (gpointer cb_data,
GSource *source,
GSourceFunc *func,
gpointer *data);
};
/**
* GSourceDummyMarshal:
*
* This is just a placeholder for #GClosureMarshal,
* which cannot be used here for dependency reasons.
*/
typedef void (*GSourceDummyMarshal) (void);
struct _GSourceFuncs
{
gboolean (*prepare) (GSource *source,
gint *timeout_);
gboolean (*check) (GSource *source);
gboolean (*dispatch) (GSource *source,
GSourceFunc callback,
gpointer user_data);
void (*finalize) (GSource *source); /* Can be NULL */
/*< private >*/
/* For use by g_source_set_closure */
GSourceFunc closure_callback;
GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */
};
/* Standard priorities */
/**
* G_PRIORITY_HIGH:
*
* Use this for high priority event sources.
*
* It is not used within GLib or GTK+.
*/
#define G_PRIORITY_HIGH -100
/**
* G_PRIORITY_DEFAULT:
*
* Use this for default priority event sources.
*
* In GLib this priority is used when adding timeout functions
* with g_timeout_add(). In GDK this priority is used for events
* from the X server.
*/
#define G_PRIORITY_DEFAULT 0
/**
* G_PRIORITY_HIGH_IDLE:
*
* Use this for high priority idle functions.
*
* GTK+ uses #G_PRIORITY_HIGH_IDLE + 10 for resizing operations,
* and #G_PRIORITY_HIGH_IDLE + 20 for redrawing operations. (This is
* done to ensure that any pending resizes are processed before any
* pending redraws, so that widgets are not redrawn twice unnecessarily.)
*/
#define G_PRIORITY_HIGH_IDLE 100
/**
* G_PRIORITY_DEFAULT_IDLE:
*
* Use this for default priority idle functions.
*
* In GLib this priority is used when adding idle functions with
* g_idle_add().
*/
#define G_PRIORITY_DEFAULT_IDLE 200
/**
* G_PRIORITY_LOW:
*
* Use this for very low priority background tasks.
*
* It is not used within GLib or GTK+.
*/
#define G_PRIORITY_LOW 300
/**
* G_SOURCE_REMOVE:
*
* Use this macro as the return value of a #GSourceFunc to remove
* the #GSource from the main loop.
*
* Since: 2.32
*/
#define G_SOURCE_REMOVE FALSE
/**
* G_SOURCE_CONTINUE:
*
* Use this macro as the return value of a #GSourceFunc to leave
* the #GSource in the main loop.
*
* Since: 2.32
*/
#define G_SOURCE_CONTINUE TRUE
/* GMainContext: */
GLIB_AVAILABLE_IN_ALL
GMainContext *g_main_context_new (void);
GLIB_AVAILABLE_IN_ALL
GMainContext *g_main_context_ref (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
void g_main_context_unref (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
GMainContext *g_main_context_default (void);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_context_iteration (GMainContext *context,
gboolean may_block);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_context_pending (GMainContext *context);
/* For implementation of legacy interfaces
*/
GLIB_AVAILABLE_IN_ALL
GSource *g_main_context_find_source_by_id (GMainContext *context,
guint source_id);
GLIB_AVAILABLE_IN_ALL
GSource *g_main_context_find_source_by_user_data (GMainContext *context,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context,
GSourceFuncs *funcs,
gpointer user_data);
/* Low level functions for implementing custom main loops.
*/
GLIB_AVAILABLE_IN_ALL
void g_main_context_wakeup (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_context_acquire (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
void g_main_context_release (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_context_is_owner (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_context_wait (GMainContext *context,
GCond *cond,
GMutex *mutex);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_context_prepare (GMainContext *context,
gint *priority);
GLIB_AVAILABLE_IN_ALL
gint g_main_context_query (GMainContext *context,
gint max_priority,
gint *timeout_,
GPollFD *fds,
gint n_fds);
GLIB_AVAILABLE_IN_ALL
gint g_main_context_check (GMainContext *context,
gint max_priority,
GPollFD *fds,
gint n_fds);
GLIB_AVAILABLE_IN_ALL
void g_main_context_dispatch (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
void g_main_context_set_poll_func (GMainContext *context,
GPollFunc func);
GLIB_AVAILABLE_IN_ALL
GPollFunc g_main_context_get_poll_func (GMainContext *context);
/* Low level functions for use by source implementations
*/
GLIB_AVAILABLE_IN_ALL
void g_main_context_add_poll (GMainContext *context,
GPollFD *fd,
gint priority);
GLIB_AVAILABLE_IN_ALL
void g_main_context_remove_poll (GMainContext *context,
GPollFD *fd);
GLIB_AVAILABLE_IN_ALL
gint g_main_depth (void);
GLIB_AVAILABLE_IN_ALL
GSource *g_main_current_source (void);
/* GMainContexts for other threads
*/
GLIB_AVAILABLE_IN_ALL
void g_main_context_push_thread_default (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
void g_main_context_pop_thread_default (GMainContext *context);
GLIB_AVAILABLE_IN_ALL
GMainContext *g_main_context_get_thread_default (void);
GLIB_AVAILABLE_IN_ALL
GMainContext *g_main_context_ref_thread_default (void);
/* GMainLoop: */
GLIB_AVAILABLE_IN_ALL
GMainLoop *g_main_loop_new (GMainContext *context,
gboolean is_running);
GLIB_AVAILABLE_IN_ALL
void g_main_loop_run (GMainLoop *loop);
GLIB_AVAILABLE_IN_ALL
void g_main_loop_quit (GMainLoop *loop);
GLIB_AVAILABLE_IN_ALL
GMainLoop *g_main_loop_ref (GMainLoop *loop);
GLIB_AVAILABLE_IN_ALL
void g_main_loop_unref (GMainLoop *loop);
GLIB_AVAILABLE_IN_ALL
gboolean g_main_loop_is_running (GMainLoop *loop);
GLIB_AVAILABLE_IN_ALL
GMainContext *g_main_loop_get_context (GMainLoop *loop);
/* GSource: */
GLIB_AVAILABLE_IN_ALL
GSource *g_source_new (GSourceFuncs *source_funcs,
guint struct_size);
GLIB_AVAILABLE_IN_ALL
GSource *g_source_ref (GSource *source);
GLIB_AVAILABLE_IN_ALL
void g_source_unref (GSource *source);
GLIB_AVAILABLE_IN_ALL
guint g_source_attach (GSource *source,
GMainContext *context);
GLIB_AVAILABLE_IN_ALL
void g_source_destroy (GSource *source);
GLIB_AVAILABLE_IN_ALL
void g_source_set_priority (GSource *source,
gint priority);
GLIB_AVAILABLE_IN_ALL
gint g_source_get_priority (GSource *source);
GLIB_AVAILABLE_IN_ALL
void g_source_set_can_recurse (GSource *source,
gboolean can_recurse);
GLIB_AVAILABLE_IN_ALL
gboolean g_source_get_can_recurse (GSource *source);
GLIB_AVAILABLE_IN_ALL
guint g_source_get_id (GSource *source);
GLIB_AVAILABLE_IN_ALL
GMainContext *g_source_get_context (GSource *source);
GLIB_AVAILABLE_IN_ALL
void g_source_set_callback (GSource *source,
GSourceFunc func,
gpointer data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
void g_source_set_funcs (GSource *source,
GSourceFuncs *funcs);
GLIB_AVAILABLE_IN_ALL
gboolean g_source_is_destroyed (GSource *source);
GLIB_AVAILABLE_IN_ALL
void g_source_set_name (GSource *source,
const char *name);
GLIB_AVAILABLE_IN_ALL
const char * g_source_get_name (GSource *source);
GLIB_AVAILABLE_IN_ALL
void g_source_set_name_by_id (guint tag,
const char *name);
GLIB_AVAILABLE_IN_2_36
void g_source_set_ready_time (GSource *source,
gint64 ready_time);
GLIB_AVAILABLE_IN_2_36
gint64 g_source_get_ready_time (GSource *source);
#ifdef G_OS_UNIX
GLIB_AVAILABLE_IN_2_36
gpointer g_source_add_unix_fd (GSource *source,
gint fd,
GIOCondition events);
GLIB_AVAILABLE_IN_2_36
void g_source_modify_unix_fd (GSource *source,
gpointer tag,
GIOCondition new_events);
GLIB_AVAILABLE_IN_2_36
void g_source_remove_unix_fd (GSource *source,
gpointer tag);
GLIB_AVAILABLE_IN_2_36
GIOCondition g_source_query_unix_fd (GSource *source,
gpointer tag);
#endif
# 501 "/usr/include/glib-2.0/glib/gmain.h" 3
/* Used to implement g_source_connect_closure and internally*/
GLIB_AVAILABLE_IN_ALL
void g_source_set_callback_indirect (GSource *source,
gpointer callback_data,
GSourceCallbackFuncs *callback_funcs);
GLIB_AVAILABLE_IN_ALL
void g_source_add_poll (GSource *source,
GPollFD *fd);
GLIB_AVAILABLE_IN_ALL
void g_source_remove_poll (GSource *source,
GPollFD *fd);
GLIB_AVAILABLE_IN_ALL
void g_source_add_child_source (GSource *source,
GSource *child_source);
GLIB_AVAILABLE_IN_ALL
void g_source_remove_child_source (GSource *source,
GSource *child_source);
GLIB_DEPRECATED_IN_2_28_FOR(g_source_get_time)
void g_source_get_current_time (GSource *source,
GTimeVal *timeval);
GLIB_AVAILABLE_IN_ALL
gint64 g_source_get_time (GSource *source);
/* void g_source_connect_closure (GSource *source,
GClosure *closure);
*/
/* Specific source types
*/
GLIB_AVAILABLE_IN_ALL
GSource *g_idle_source_new (void);
GLIB_AVAILABLE_IN_ALL
GSource *g_child_watch_source_new (GPid pid);
GLIB_AVAILABLE_IN_ALL
GSource *g_timeout_source_new (guint interval);
GLIB_AVAILABLE_IN_ALL
GSource *g_timeout_source_new_seconds (guint interval);
/* Miscellaneous functions
*/
GLIB_AVAILABLE_IN_ALL
void g_get_current_time (GTimeVal *result);
GLIB_AVAILABLE_IN_ALL
gint64 g_get_monotonic_time (void);
GLIB_AVAILABLE_IN_ALL
gint64 g_get_real_time (void);
/* Source manipulation by ID */
GLIB_AVAILABLE_IN_ALL
gboolean g_source_remove (guint tag);
GLIB_AVAILABLE_IN_ALL
gboolean g_source_remove_by_user_data (gpointer user_data);
GLIB_AVAILABLE_IN_ALL
gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs,
gpointer user_data);
/* Idles, child watchers and timeouts */
GLIB_AVAILABLE_IN_ALL
guint g_timeout_add_full (gint priority,
guint interval,
GSourceFunc function,
gpointer data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
guint g_timeout_add (guint interval,
GSourceFunc function,
gpointer data);
GLIB_AVAILABLE_IN_ALL
guint g_timeout_add_seconds_full (gint priority,
guint interval,
GSourceFunc function,
gpointer data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
guint g_timeout_add_seconds (guint interval,
GSourceFunc function,
gpointer data);
GLIB_AVAILABLE_IN_ALL
guint g_child_watch_add_full (gint priority,
GPid pid,
GChildWatchFunc function,
gpointer data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
guint g_child_watch_add (GPid pid,
GChildWatchFunc function,
gpointer data);
GLIB_AVAILABLE_IN_ALL
guint g_idle_add (GSourceFunc function,
gpointer data);
GLIB_AVAILABLE_IN_ALL
guint g_idle_add_full (gint priority,
GSourceFunc function,
gpointer data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
gboolean g_idle_remove_by_data (gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_main_context_invoke_full (GMainContext *context,
gint priority,
GSourceFunc function,
gpointer data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
void g_main_context_invoke (GMainContext *context,
GSourceFunc function,
gpointer data);
/* Hook for GClosure / GSource integration. Don't touch */
GLIB_VAR GSourceFuncs g_timeout_funcs;
GLIB_VAR GSourceFuncs g_child_watch_funcs;
GLIB_VAR GSourceFuncs g_idle_funcs;
#ifdef G_OS_UNIX
GLIB_VAR GSourceFuncs g_unix_signal_funcs;
GLIB_VAR GSourceFuncs g_unix_fd_source_funcs;
#endif
# 624 "/usr/include/glib-2.0/glib/gmain.h" 3
G_END_DECLS
#endif /* __G_MAIN_H__ */
# 628 "/usr/include/glib-2.0/glib/gmain.h" 3
# 34 "/usr/include/glib-2.0/glib/giochannel.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstring.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/giochannel.h" 3
# 1 "/usr/include/glib-2.0/glib/gstring.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_STRING_H__
#define __G_STRING_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gstring.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gstring.h" 3
# 33 "/usr/include/glib-2.0/glib/gstring.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gunicode.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gstring.h" 3
# 1 "/usr/include/glib-2.0/glib/gunicode.h" 1 3
/* gunicode.h - Unicode manipulation functions
*
* Copyright (C) 1999, 2000 Tom Tromey
* Copyright 2000, 2005 Red Hat, Inc.
*
* The Gnome Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* The Gnome Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the Gnome Library; see the file COPYING.LIB. If not,
* see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_UNICODE_H__
#define __G_UNICODE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 27 "/usr/include/glib-2.0/glib/gunicode.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gunicode.h" 3
# 29 "/usr/include/glib-2.0/glib/gunicode.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gunicode.h" 3
# 30 "/usr/include/glib-2.0/glib/gunicode.h" 3
G_BEGIN_DECLS
/**
* gunichar:
*
* A type which can hold any UTF-32 or UCS-4 character code,
* also known as a Unicode code point.
*
* If you want to produce the UTF-8 representation of a #gunichar,
* use g_ucs4_to_utf8(). See also g_utf8_to_ucs4() for the reverse
* process.
*
* To print/scan values of this type as integer, use
* %G_GINT32_MODIFIER and/or %G_GUINT32_FORMAT.
*
* The notation to express a Unicode code point in running text is
* as a hexadecimal number with four to six digits and uppercase
* letters, prefixed by the string "U+". Leading zeros are omitted,
* unless the code point would have fewer than four hexadecimal digits.
* For example, "U+0041 LATIN CAPITAL LETTER A". To print a code point
* in the U+-notation, use the format string "U+\%04"G_GINT32_FORMAT"X".
* To scan, use the format string "U+\%06"G_GINT32_FORMAT"X".
*
* |[
* gunichar c;
* sscanf ("U+0041", "U+%06"G_GINT32_FORMAT"X", &amp;c)
* g_print ("Read U+%04"G_GINT32_FORMAT"X", c);
* ]|
*/
typedef guint32 gunichar;
/**
* gunichar2:
*
* A type which can hold any UTF-16 code
* point<footnote id="utf16_surrogate_pairs">UTF-16 also has so called
* <firstterm>surrogate pairs</firstterm> to encode characters beyond
* the BMP as pairs of 16bit numbers. Surrogate pairs cannot be stored
* in a single gunichar2 field, but all GLib functions accepting gunichar2
* arrays will correctly interpret surrogate pairs.</footnote>.
*
* To print/scan values of this type to/from text you need to convert
* to/from UTF-8, using g_utf16_to_utf8()/g_utf8_to_utf16().
*
* To print/scan values of this type as integer, use
* %G_GINT16_MODIFIER and/or %G_GUINT16_FORMAT.
*/
typedef guint16 gunichar2;
/**
* GUnicodeType:
* @G_UNICODE_CONTROL: General category "Other, Control" (Cc)
* @G_UNICODE_FORMAT: General category "Other, Format" (Cf)
* @G_UNICODE_UNASSIGNED: General category "Other, Not Assigned" (Cn)
* @G_UNICODE_PRIVATE_USE: General category "Other, Private Use" (Co)
* @G_UNICODE_SURROGATE: General category "Other, Surrogate" (Cs)
* @G_UNICODE_LOWERCASE_LETTER: General category "Letter, Lowercase" (Ll)
* @G_UNICODE_MODIFIER_LETTER: General category "Letter, Modifier" (Lm)
* @G_UNICODE_OTHER_LETTER: General category "Letter, Other" (Lo)
* @G_UNICODE_TITLECASE_LETTER: General category "Letter, Titlecase" (Lt)
* @G_UNICODE_UPPERCASE_LETTER: General category "Letter, Uppercase" (Lu)
* @G_UNICODE_SPACING_MARK: General category "Mark, Spacing" (Mc)
* @G_UNICODE_ENCLOSING_MARK: General category "Mark, Enclosing" (Me)
* @G_UNICODE_NON_SPACING_MARK: General category "Mark, Nonspacing" (Mn)
* @G_UNICODE_DECIMAL_NUMBER: General category "Number, Decimal Digit" (Nd)
* @G_UNICODE_LETTER_NUMBER: General category "Number, Letter" (Nl)
* @G_UNICODE_OTHER_NUMBER: General category "Number, Other" (No)
* @G_UNICODE_CONNECT_PUNCTUATION: General category "Punctuation, Connector" (Pc)
* @G_UNICODE_DASH_PUNCTUATION: General category "Punctuation, Dash" (Pd)
* @G_UNICODE_CLOSE_PUNCTUATION: General category "Punctuation, Close" (Pe)
* @G_UNICODE_FINAL_PUNCTUATION: General category "Punctuation, Final quote" (Pf)
* @G_UNICODE_INITIAL_PUNCTUATION: General category "Punctuation, Initial quote" (Pi)
* @G_UNICODE_OTHER_PUNCTUATION: General category "Punctuation, Other" (Po)
* @G_UNICODE_OPEN_PUNCTUATION: General category "Punctuation, Open" (Ps)
* @G_UNICODE_CURRENCY_SYMBOL: General category "Symbol, Currency" (Sc)
* @G_UNICODE_MODIFIER_SYMBOL: General category "Symbol, Modifier" (Sk)
* @G_UNICODE_MATH_SYMBOL: General category "Symbol, Math" (Sm)
* @G_UNICODE_OTHER_SYMBOL: General category "Symbol, Other" (So)
* @G_UNICODE_LINE_SEPARATOR: General category "Separator, Line" (Zl)
* @G_UNICODE_PARAGRAPH_SEPARATOR: General category "Separator, Paragraph" (Zp)
* @G_UNICODE_SPACE_SEPARATOR: General category "Separator, Space" (Zs)
*
* These are the possible character classifications from the
* Unicode specification.
* See <ulink url="http://www.unicode.org/reports/tr44/#General_Category_Values">Unicode Character Database</unlink>.
*/
typedef enum
{
G_UNICODE_CONTROL,
G_UNICODE_FORMAT,
G_UNICODE_UNASSIGNED,
G_UNICODE_PRIVATE_USE,
G_UNICODE_SURROGATE,
G_UNICODE_LOWERCASE_LETTER,
G_UNICODE_MODIFIER_LETTER,
G_UNICODE_OTHER_LETTER,
G_UNICODE_TITLECASE_LETTER,
G_UNICODE_UPPERCASE_LETTER,
G_UNICODE_SPACING_MARK,
G_UNICODE_ENCLOSING_MARK,
G_UNICODE_NON_SPACING_MARK,
G_UNICODE_DECIMAL_NUMBER,
G_UNICODE_LETTER_NUMBER,
G_UNICODE_OTHER_NUMBER,
G_UNICODE_CONNECT_PUNCTUATION,
G_UNICODE_DASH_PUNCTUATION,
G_UNICODE_CLOSE_PUNCTUATION,
G_UNICODE_FINAL_PUNCTUATION,
G_UNICODE_INITIAL_PUNCTUATION,
G_UNICODE_OTHER_PUNCTUATION,
G_UNICODE_OPEN_PUNCTUATION,
G_UNICODE_CURRENCY_SYMBOL,
G_UNICODE_MODIFIER_SYMBOL,
G_UNICODE_MATH_SYMBOL,
G_UNICODE_OTHER_SYMBOL,
G_UNICODE_LINE_SEPARATOR,
G_UNICODE_PARAGRAPH_SEPARATOR,
G_UNICODE_SPACE_SEPARATOR
} GUnicodeType;
/**
* G_UNICODE_COMBINING_MARK:
*
* Older name for %G_UNICODE_SPACING_MARK.
*
* Deprecated: 2.30: Use %G_UNICODE_SPACING_MARK.
*/
#ifndef G_DISABLE_DEPRECATED
#define G_UNICODE_COMBINING_MARK G_UNICODE_SPACING_MARK
#endif
# 161 "/usr/include/glib-2.0/glib/gunicode.h" 3
/**
* GUnicodeBreakType:
* @G_UNICODE_BREAK_MANDATORY: Mandatory Break (BK)
* @G_UNICODE_BREAK_CARRIAGE_RETURN: Carriage Return (CR)
* @G_UNICODE_BREAK_LINE_FEED: Line Feed (LF)
* @G_UNICODE_BREAK_COMBINING_MARK: Attached Characters and Combining Marks (CM)
* @G_UNICODE_BREAK_SURROGATE: Surrogates (SG)
* @G_UNICODE_BREAK_ZERO_WIDTH_SPACE: Zero Width Space (ZW)
* @G_UNICODE_BREAK_INSEPARABLE: Inseparable (IN)
* @G_UNICODE_BREAK_NON_BREAKING_GLUE: Non-breaking ("Glue") (GL)
* @G_UNICODE_BREAK_CONTINGENT: Contingent Break Opportunity (CB)
* @G_UNICODE_BREAK_SPACE: Space (SP)
* @G_UNICODE_BREAK_AFTER: Break Opportunity After (BA)
* @G_UNICODE_BREAK_BEFORE: Break Opportunity Before (BB)
* @G_UNICODE_BREAK_BEFORE_AND_AFTER: Break Opportunity Before and After (B2)
* @G_UNICODE_BREAK_HYPHEN: Hyphen (HY)
* @G_UNICODE_BREAK_NON_STARTER: Nonstarter (NS)
* @G_UNICODE_BREAK_OPEN_PUNCTUATION: Opening Punctuation (OP)
* @G_UNICODE_BREAK_CLOSE_PUNCTUATION: Closing Punctuation (CL)
* @G_UNICODE_BREAK_QUOTATION: Ambiguous Quotation (QU)
* @G_UNICODE_BREAK_EXCLAMATION: Exclamation/Interrogation (EX)
* @G_UNICODE_BREAK_IDEOGRAPHIC: Ideographic (ID)
* @G_UNICODE_BREAK_NUMERIC: Numeric (NU)
* @G_UNICODE_BREAK_INFIX_SEPARATOR: Infix Separator (Numeric) (IS)
* @G_UNICODE_BREAK_SYMBOL: Symbols Allowing Break After (SY)
* @G_UNICODE_BREAK_ALPHABETIC: Ordinary Alphabetic and Symbol Characters (AL)
* @G_UNICODE_BREAK_PREFIX: Prefix (Numeric) (PR)
* @G_UNICODE_BREAK_POSTFIX: Postfix (Numeric) (PO)
* @G_UNICODE_BREAK_COMPLEX_CONTEXT: Complex Content Dependent (South East Asian) (SA)
* @G_UNICODE_BREAK_AMBIGUOUS: Ambiguous (Alphabetic or Ideographic) (AI)
* @G_UNICODE_BREAK_UNKNOWN: Unknown (XX)
* @G_UNICODE_BREAK_NEXT_LINE: Next Line (NL)
* @G_UNICODE_BREAK_WORD_JOINER: Word Joiner (WJ)
* @G_UNICODE_BREAK_HANGUL_L_JAMO: Hangul L Jamo (JL)
* @G_UNICODE_BREAK_HANGUL_V_JAMO: Hangul V Jamo (JV)
* @G_UNICODE_BREAK_HANGUL_T_JAMO: Hangul T Jamo (JT)
* @G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: Hangul LV Syllable (H2)
* @G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: Hangul LVT Syllable (H3)
* @G_UNICODE_BREAK_CLOSE_PARANTHESIS: Closing Parenthesis (CP). Since 2.28
* @G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: Conditional Japanese Starter (CJ). Since: 2.32
* @G_UNICODE_BREAK_HEBREW_LETTER: Hebrew Letter (HL). Since: 2.32
* @G_UNICODE_BREAK_REGIONAL_INDICATOR: Regional Indicator (RI). Since: 2.36
*
* These are the possible line break classifications.
*
* Since new unicode versions may add new types here, applications should be ready
* to handle unknown values. They may be regarded as %G_UNICODE_BREAK_UNKNOWN.
*
* See <ulink url="http://www.unicode.org/unicode/reports/tr14/">http://www.unicode.org/unicode/reports/tr14/</ulink>.
*/
typedef enum
{
G_UNICODE_BREAK_MANDATORY,
G_UNICODE_BREAK_CARRIAGE_RETURN,
G_UNICODE_BREAK_LINE_FEED,
G_UNICODE_BREAK_COMBINING_MARK,
G_UNICODE_BREAK_SURROGATE,
G_UNICODE_BREAK_ZERO_WIDTH_SPACE,
G_UNICODE_BREAK_INSEPARABLE,
G_UNICODE_BREAK_NON_BREAKING_GLUE,
G_UNICODE_BREAK_CONTINGENT,
G_UNICODE_BREAK_SPACE,
G_UNICODE_BREAK_AFTER,
G_UNICODE_BREAK_BEFORE,
G_UNICODE_BREAK_BEFORE_AND_AFTER,
G_UNICODE_BREAK_HYPHEN,
G_UNICODE_BREAK_NON_STARTER,
G_UNICODE_BREAK_OPEN_PUNCTUATION,
G_UNICODE_BREAK_CLOSE_PUNCTUATION,
G_UNICODE_BREAK_QUOTATION,
G_UNICODE_BREAK_EXCLAMATION,
G_UNICODE_BREAK_IDEOGRAPHIC,
G_UNICODE_BREAK_NUMERIC,
G_UNICODE_BREAK_INFIX_SEPARATOR,
G_UNICODE_BREAK_SYMBOL,
G_UNICODE_BREAK_ALPHABETIC,
G_UNICODE_BREAK_PREFIX,
G_UNICODE_BREAK_POSTFIX,
G_UNICODE_BREAK_COMPLEX_CONTEXT,
G_UNICODE_BREAK_AMBIGUOUS,
G_UNICODE_BREAK_UNKNOWN,
G_UNICODE_BREAK_NEXT_LINE,
G_UNICODE_BREAK_WORD_JOINER,
G_UNICODE_BREAK_HANGUL_L_JAMO,
G_UNICODE_BREAK_HANGUL_V_JAMO,
G_UNICODE_BREAK_HANGUL_T_JAMO,
G_UNICODE_BREAK_HANGUL_LV_SYLLABLE,
G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE,
G_UNICODE_BREAK_CLOSE_PARANTHESIS,
G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER,
G_UNICODE_BREAK_HEBREW_LETTER,
G_UNICODE_BREAK_REGIONAL_INDICATOR
} GUnicodeBreakType;
/**
* GUnicodeScript:
* @G_UNICODE_SCRIPT_INVALID_CODE:
* a value never returned from g_unichar_get_script()
* @G_UNICODE_SCRIPT_COMMON: a character used by multiple different scripts
* @G_UNICODE_SCRIPT_INHERITED: a mark glyph that takes its script from the
* base glyph to which it is attached
* @G_UNICODE_SCRIPT_ARABIC: Arabic
* @G_UNICODE_SCRIPT_ARMENIAN: Armenian
* @G_UNICODE_SCRIPT_BENGALI: Bengali
* @G_UNICODE_SCRIPT_BOPOMOFO: Bopomofo
* @G_UNICODE_SCRIPT_CHEROKEE: Cherokee
* @G_UNICODE_SCRIPT_COPTIC: Coptic
* @G_UNICODE_SCRIPT_CYRILLIC: Cyrillic
* @G_UNICODE_SCRIPT_DESERET: Deseret
* @G_UNICODE_SCRIPT_DEVANAGARI: Devanagari
* @G_UNICODE_SCRIPT_ETHIOPIC: Ethiopic
* @G_UNICODE_SCRIPT_GEORGIAN: Georgian
* @G_UNICODE_SCRIPT_GOTHIC: Gothic
* @G_UNICODE_SCRIPT_GREEK: Greek
* @G_UNICODE_SCRIPT_GUJARATI: Gujarati
* @G_UNICODE_SCRIPT_GURMUKHI: Gurmukhi
* @G_UNICODE_SCRIPT_HAN: Han
* @G_UNICODE_SCRIPT_HANGUL: Hangul
* @G_UNICODE_SCRIPT_HEBREW: Hebrew
* @G_UNICODE_SCRIPT_HIRAGANA: Hiragana
* @G_UNICODE_SCRIPT_KANNADA: Kannada
* @G_UNICODE_SCRIPT_KATAKANA: Katakana
* @G_UNICODE_SCRIPT_KHMER: Khmer
* @G_UNICODE_SCRIPT_LAO: Lao
* @G_UNICODE_SCRIPT_LATIN: Latin
* @G_UNICODE_SCRIPT_MALAYALAM: Malayalam
* @G_UNICODE_SCRIPT_MONGOLIAN: Mongolian
* @G_UNICODE_SCRIPT_MYANMAR: Myanmar
* @G_UNICODE_SCRIPT_OGHAM: Ogham
* @G_UNICODE_SCRIPT_OLD_ITALIC: Old Italic
* @G_UNICODE_SCRIPT_ORIYA: Oriya
* @G_UNICODE_SCRIPT_RUNIC: Runic
* @G_UNICODE_SCRIPT_SINHALA: Sinhala
* @G_UNICODE_SCRIPT_SYRIAC: Syriac
* @G_UNICODE_SCRIPT_TAMIL: Tamil
* @G_UNICODE_SCRIPT_TELUGU: Telugu
* @G_UNICODE_SCRIPT_THAANA: Thaana
* @G_UNICODE_SCRIPT_THAI: Thai
* @G_UNICODE_SCRIPT_TIBETAN: Tibetan
* @G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL:
* Canadian Aboriginal
* @G_UNICODE_SCRIPT_YI: Yi
* @G_UNICODE_SCRIPT_TAGALOG: Tagalog
* @G_UNICODE_SCRIPT_HANUNOO: Hanunoo
* @G_UNICODE_SCRIPT_BUHID: Buhid
* @G_UNICODE_SCRIPT_TAGBANWA: Tagbanwa
* @G_UNICODE_SCRIPT_BRAILLE: Braille
* @G_UNICODE_SCRIPT_CYPRIOT: Cypriot
* @G_UNICODE_SCRIPT_LIMBU: Limbu
* @G_UNICODE_SCRIPT_OSMANYA: Osmanya
* @G_UNICODE_SCRIPT_SHAVIAN: Shavian
* @G_UNICODE_SCRIPT_LINEAR_B: Linear B
* @G_UNICODE_SCRIPT_TAI_LE: Tai Le
* @G_UNICODE_SCRIPT_UGARITIC: Ugaritic
* @G_UNICODE_SCRIPT_NEW_TAI_LUE:
* New Tai Lue
* @G_UNICODE_SCRIPT_BUGINESE: Buginese
* @G_UNICODE_SCRIPT_GLAGOLITIC: Glagolitic
* @G_UNICODE_SCRIPT_TIFINAGH: Tifinagh
* @G_UNICODE_SCRIPT_SYLOTI_NAGRI:
* Syloti Nagri
* @G_UNICODE_SCRIPT_OLD_PERSIAN:
* Old Persian
* @G_UNICODE_SCRIPT_KHAROSHTHI: Kharoshthi
* @G_UNICODE_SCRIPT_UNKNOWN: an unassigned code point
* @G_UNICODE_SCRIPT_BALINESE: Balinese
* @G_UNICODE_SCRIPT_CUNEIFORM: Cuneiform
* @G_UNICODE_SCRIPT_PHOENICIAN: Phoenician
* @G_UNICODE_SCRIPT_PHAGS_PA: Phags-pa
* @G_UNICODE_SCRIPT_NKO: N'Ko
* @G_UNICODE_SCRIPT_KAYAH_LI: Kayah Li. Since 2.16.3
* @G_UNICODE_SCRIPT_LEPCHA: Lepcha. Since 2.16.3
* @G_UNICODE_SCRIPT_REJANG: Rejang. Since 2.16.3
* @G_UNICODE_SCRIPT_SUNDANESE: Sundanese. Since 2.16.3
* @G_UNICODE_SCRIPT_SAURASHTRA: Saurashtra. Since 2.16.3
* @G_UNICODE_SCRIPT_CHAM: Cham. Since 2.16.3
* @G_UNICODE_SCRIPT_OL_CHIKI: Ol Chiki. Since 2.16.3
* @G_UNICODE_SCRIPT_VAI: Vai. Since 2.16.3
* @G_UNICODE_SCRIPT_CARIAN: Carian. Since 2.16.3
* @G_UNICODE_SCRIPT_LYCIAN: Lycian. Since 2.16.3
* @G_UNICODE_SCRIPT_LYDIAN: Lydian. Since 2.16.3
* @G_UNICODE_SCRIPT_AVESTAN: Avestan. Since 2.26
* @G_UNICODE_SCRIPT_BAMUM: Bamum. Since 2.26
* @G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS:
* Egyptian Hieroglpyhs. Since 2.26
* @G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC:
* Imperial Aramaic. Since 2.26
* @G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI:
* Inscriptional Pahlavi. Since 2.26
* @G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN:
* Inscriptional Parthian. Since 2.26
* @G_UNICODE_SCRIPT_JAVANESE: Javanese. Since 2.26
* @G_UNICODE_SCRIPT_KAITHI: Kaithi. Since 2.26
* @G_UNICODE_SCRIPT_LISU: Lisu. Since 2.26
* @G_UNICODE_SCRIPT_MEETEI_MAYEK:
* Meetei Mayek. Since 2.26
* @G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN:
* Old South Arabian. Since 2.26
* @G_UNICODE_SCRIPT_OLD_TURKIC: Old Turkic. Since 2.28
* @G_UNICODE_SCRIPT_SAMARITAN: Samaritan. Since 2.26
* @G_UNICODE_SCRIPT_TAI_THAM: Tai Tham. Since 2.26
* @G_UNICODE_SCRIPT_TAI_VIET: Tai Viet. Since 2.26
* @G_UNICODE_SCRIPT_BATAK: Batak. Since 2.28
* @G_UNICODE_SCRIPT_BRAHMI: Brahmi. Since 2.28
* @G_UNICODE_SCRIPT_MANDAIC: Mandaic. Since 2.28
* @G_UNICODE_SCRIPT_CHAKMA: Chakma. Since: 2.32
* @G_UNICODE_SCRIPT_MEROITIC_CURSIVE: Meroitic Cursive. Since: 2.32
* @G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: Meroitic Hieroglyphs. Since: 2.32
* @G_UNICODE_SCRIPT_MIAO: Miao. Since: 2.32
* @G_UNICODE_SCRIPT_SHARADA: Sharada. Since: 2.32
* @G_UNICODE_SCRIPT_SORA_SOMPENG: Sora Sompeng. Since: 2.32
* @G_UNICODE_SCRIPT_TAKRI: Takri. Since: 2.32
* @G_UNICODE_SCRIPT_BASSA_VAH: Bassa. Since: 2.42
* @G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN: Caucasian Albanian. Since: 2.42
* @G_UNICODE_SCRIPT_DUPLOYAN: Duployan. Since: 2.42
* @G_UNICODE_SCRIPT_ELBASAN: Elbasan. Since: 2.42
* @G_UNICODE_SCRIPT_GRANTHA: Grantha. Since: 2.42
* @G_UNICODE_SCRIPT_KHOJKI: Kjohki. Since: 2.42
* @G_UNICODE_SCRIPT_KHUDAWADI: Khudawadi, Sindhi. Since: 2.42
* @G_UNICODE_SCRIPT_LINEAR_A: Linear A. Since: 2.42
* @G_UNICODE_SCRIPT_MAHAJANI: Mahajani. Since: 2.42
* @G_UNICODE_SCRIPT_MANICHAEAN: Manichaean. Since: 2.42
* @G_UNICODE_SCRIPT_MENDE_KIKAKUI: Mende Kikakui. Since: 2.42
* @G_UNICODE_SCRIPT_MODI: Modi. Since: 2.42
* @G_UNICODE_SCRIPT_MRO: Mro. Since: 2.42
* @G_UNICODE_SCRIPT_NABATAEAN: Nabataean. Since: 2.42
* @G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN: Old North Arabian. Since: 2.42
* @G_UNICODE_SCRIPT_OLD_PERMIC: Old Permic. Since: 2.42
* @G_UNICODE_SCRIPT_PAHAWH_HMONG: Pahawh Hmong. Since: 2.42
* @G_UNICODE_SCRIPT_PALMYRENE: Palmyrene. Since: 2.42
* @G_UNICODE_SCRIPT_PAU_CIN_HAU: Pau Cin Hau. Since: 2.42
* @G_UNICODE_SCRIPT_PSALTER_PAHLAVI: Psalter Pahlavi. Since: 2.42
* @G_UNICODE_SCRIPT_SIDDHAM: Siddham. Since: 2.42
* @G_UNICODE_SCRIPT_TIRHUTA: Tirhuta. Since: 2.42
* @G_UNICODE_SCRIPT_WARANG_CITI: Warang Citi. Since: 2.42
* @G_UNICODE_SCRIPT_AHOM: Ahom. Since: 2.48
* @G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: Anatolian Hieroglyphs. Since: 2.48
* @G_UNICODE_SCRIPT_HATRAN: Hatran. Since: 2.48
* @G_UNICODE_SCRIPT_MULTANI: Multani. Since: 2.48
* @G_UNICODE_SCRIPT_OLD_HUNGARIAN: Old Hungarian. Since: 2.48
* @G_UNICODE_SCRIPT_SIGNWRITING: Signwriting. Since: 2.48
*
* The #GUnicodeScript enumeration identifies different writing
* systems. The values correspond to the names as defined in the
* Unicode standard. The enumeration has been added in GLib 2.14,
* and is interchangeable with #PangoScript.
*
* Note that new types may be added in the future. Applications
* should be ready to handle unknown values.
* See <ulink
* url="http://www.unicode.org/reports/tr24/">Unicode Standard Annex
* #24: Script names</ulink>.
*/
typedef enum
{ /* ISO 15924 code */
G_UNICODE_SCRIPT_INVALID_CODE = -1,
G_UNICODE_SCRIPT_COMMON = 0, /* Zyyy */
G_UNICODE_SCRIPT_INHERITED, /* Zinh (Qaai) */
G_UNICODE_SCRIPT_ARABIC, /* Arab */
G_UNICODE_SCRIPT_ARMENIAN, /* Armn */
G_UNICODE_SCRIPT_BENGALI, /* Beng */
G_UNICODE_SCRIPT_BOPOMOFO, /* Bopo */
G_UNICODE_SCRIPT_CHEROKEE, /* Cher */
G_UNICODE_SCRIPT_COPTIC, /* Copt (Qaac) */
G_UNICODE_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */
G_UNICODE_SCRIPT_DESERET, /* Dsrt */
G_UNICODE_SCRIPT_DEVANAGARI, /* Deva */
G_UNICODE_SCRIPT_ETHIOPIC, /* Ethi */
G_UNICODE_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */
G_UNICODE_SCRIPT_GOTHIC, /* Goth */
G_UNICODE_SCRIPT_GREEK, /* Grek */
G_UNICODE_SCRIPT_GUJARATI, /* Gujr */
G_UNICODE_SCRIPT_GURMUKHI, /* Guru */
G_UNICODE_SCRIPT_HAN, /* Hani */
G_UNICODE_SCRIPT_HANGUL, /* Hang */
G_UNICODE_SCRIPT_HEBREW, /* Hebr */
G_UNICODE_SCRIPT_HIRAGANA, /* Hira */
G_UNICODE_SCRIPT_KANNADA, /* Knda */
G_UNICODE_SCRIPT_KATAKANA, /* Kana */
G_UNICODE_SCRIPT_KHMER, /* Khmr */
G_UNICODE_SCRIPT_LAO, /* Laoo */
G_UNICODE_SCRIPT_LATIN, /* Latn (Latf, Latg) */
G_UNICODE_SCRIPT_MALAYALAM, /* Mlym */
G_UNICODE_SCRIPT_MONGOLIAN, /* Mong */
G_UNICODE_SCRIPT_MYANMAR, /* Mymr */
G_UNICODE_SCRIPT_OGHAM, /* Ogam */
G_UNICODE_SCRIPT_OLD_ITALIC, /* Ital */
G_UNICODE_SCRIPT_ORIYA, /* Orya */
G_UNICODE_SCRIPT_RUNIC, /* Runr */
G_UNICODE_SCRIPT_SINHALA, /* Sinh */
G_UNICODE_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */
G_UNICODE_SCRIPT_TAMIL, /* Taml */
G_UNICODE_SCRIPT_TELUGU, /* Telu */
G_UNICODE_SCRIPT_THAANA, /* Thaa */
G_UNICODE_SCRIPT_THAI, /* Thai */
G_UNICODE_SCRIPT_TIBETAN, /* Tibt */
G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */
G_UNICODE_SCRIPT_YI, /* Yiii */
G_UNICODE_SCRIPT_TAGALOG, /* Tglg */
G_UNICODE_SCRIPT_HANUNOO, /* Hano */
G_UNICODE_SCRIPT_BUHID, /* Buhd */
G_UNICODE_SCRIPT_TAGBANWA, /* Tagb */
/* Unicode-4.0 additions */
G_UNICODE_SCRIPT_BRAILLE, /* Brai */
G_UNICODE_SCRIPT_CYPRIOT, /* Cprt */
G_UNICODE_SCRIPT_LIMBU, /* Limb */
G_UNICODE_SCRIPT_OSMANYA, /* Osma */
G_UNICODE_SCRIPT_SHAVIAN, /* Shaw */
G_UNICODE_SCRIPT_LINEAR_B, /* Linb */
G_UNICODE_SCRIPT_TAI_LE, /* Tale */
G_UNICODE_SCRIPT_UGARITIC, /* Ugar */
/* Unicode-4.1 additions */
G_UNICODE_SCRIPT_NEW_TAI_LUE, /* Talu */
G_UNICODE_SCRIPT_BUGINESE, /* Bugi */
G_UNICODE_SCRIPT_GLAGOLITIC, /* Glag */
G_UNICODE_SCRIPT_TIFINAGH, /* Tfng */
G_UNICODE_SCRIPT_SYLOTI_NAGRI, /* Sylo */
G_UNICODE_SCRIPT_OLD_PERSIAN, /* Xpeo */
G_UNICODE_SCRIPT_KHAROSHTHI, /* Khar */
/* Unicode-5.0 additions */
G_UNICODE_SCRIPT_UNKNOWN, /* Zzzz */
G_UNICODE_SCRIPT_BALINESE, /* Bali */
G_UNICODE_SCRIPT_CUNEIFORM, /* Xsux */
G_UNICODE_SCRIPT_PHOENICIAN, /* Phnx */
G_UNICODE_SCRIPT_PHAGS_PA, /* Phag */
G_UNICODE_SCRIPT_NKO, /* Nkoo */
/* Unicode-5.1 additions */
G_UNICODE_SCRIPT_KAYAH_LI, /* Kali */
G_UNICODE_SCRIPT_LEPCHA, /* Lepc */
G_UNICODE_SCRIPT_REJANG, /* Rjng */
G_UNICODE_SCRIPT_SUNDANESE, /* Sund */
G_UNICODE_SCRIPT_SAURASHTRA, /* Saur */
G_UNICODE_SCRIPT_CHAM, /* Cham */
G_UNICODE_SCRIPT_OL_CHIKI, /* Olck */
G_UNICODE_SCRIPT_VAI, /* Vaii */
G_UNICODE_SCRIPT_CARIAN, /* Cari */
G_UNICODE_SCRIPT_LYCIAN, /* Lyci */
G_UNICODE_SCRIPT_LYDIAN, /* Lydi */
/* Unicode-5.2 additions */
G_UNICODE_SCRIPT_AVESTAN, /* Avst */
G_UNICODE_SCRIPT_BAMUM, /* Bamu */
G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS, /* Egyp */
G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC, /* Armi */
G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI, /* Phli */
G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN, /* Prti */
G_UNICODE_SCRIPT_JAVANESE, /* Java */
G_UNICODE_SCRIPT_KAITHI, /* Kthi */
G_UNICODE_SCRIPT_LISU, /* Lisu */
G_UNICODE_SCRIPT_MEETEI_MAYEK, /* Mtei */
G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN, /* Sarb */
G_UNICODE_SCRIPT_OLD_TURKIC, /* Orkh */
G_UNICODE_SCRIPT_SAMARITAN, /* Samr */
G_UNICODE_SCRIPT_TAI_THAM, /* Lana */
G_UNICODE_SCRIPT_TAI_VIET, /* Tavt */
/* Unicode-6.0 additions */
G_UNICODE_SCRIPT_BATAK, /* Batk */
G_UNICODE_SCRIPT_BRAHMI, /* Brah */
G_UNICODE_SCRIPT_MANDAIC, /* Mand */
/* Unicode-6.1 additions */
G_UNICODE_SCRIPT_CHAKMA, /* Cakm */
G_UNICODE_SCRIPT_MEROITIC_CURSIVE, /* Merc */
G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS, /* Mero */
G_UNICODE_SCRIPT_MIAO, /* Plrd */
G_UNICODE_SCRIPT_SHARADA, /* Shrd */
G_UNICODE_SCRIPT_SORA_SOMPENG, /* Sora */
G_UNICODE_SCRIPT_TAKRI, /* Takr */
/* Unicode 7.0 additions */
G_UNICODE_SCRIPT_BASSA_VAH, /* Bass */
G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN, /* Aghb */
G_UNICODE_SCRIPT_DUPLOYAN, /* Dupl */
G_UNICODE_SCRIPT_ELBASAN, /* Elba */
G_UNICODE_SCRIPT_GRANTHA, /* Gran */
G_UNICODE_SCRIPT_KHOJKI, /* Khoj */
G_UNICODE_SCRIPT_KHUDAWADI, /* Sind */
G_UNICODE_SCRIPT_LINEAR_A, /* Lina */
G_UNICODE_SCRIPT_MAHAJANI, /* Mahj */
G_UNICODE_SCRIPT_MANICHAEAN, /* Manu */
G_UNICODE_SCRIPT_MENDE_KIKAKUI, /* Mend */
G_UNICODE_SCRIPT_MODI, /* Modi */
G_UNICODE_SCRIPT_MRO, /* Mroo */
G_UNICODE_SCRIPT_NABATAEAN, /* Nbat */
G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN, /* Narb */
G_UNICODE_SCRIPT_OLD_PERMIC, /* Perm */
G_UNICODE_SCRIPT_PAHAWH_HMONG, /* Hmng */
G_UNICODE_SCRIPT_PALMYRENE, /* Palm */
G_UNICODE_SCRIPT_PAU_CIN_HAU, /* Pauc */
G_UNICODE_SCRIPT_PSALTER_PAHLAVI, /* Phlp */
G_UNICODE_SCRIPT_SIDDHAM, /* Sidd */
G_UNICODE_SCRIPT_TIRHUTA, /* Tirh */
G_UNICODE_SCRIPT_WARANG_CITI, /* Wara */
/* Unicode 8.0 additions */
G_UNICODE_SCRIPT_AHOM, /* Ahom */
G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS, /* Hluw */
G_UNICODE_SCRIPT_HATRAN, /* Hatr */
G_UNICODE_SCRIPT_MULTANI, /* Mult */
G_UNICODE_SCRIPT_OLD_HUNGARIAN, /* Hung */
G_UNICODE_SCRIPT_SIGNWRITING /* Sgnw */
} GUnicodeScript;
GLIB_AVAILABLE_IN_ALL
guint32 g_unicode_script_to_iso15924 (GUnicodeScript script);
GLIB_AVAILABLE_IN_ALL
GUnicodeScript g_unicode_script_from_iso15924 (guint32 iso15924);
/* These are all analogs of the <ctype.h> functions.
*/
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isalnum (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isalpha (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_iscntrl (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isdigit (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isgraph (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_islower (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isprint (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_ispunct (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isspace (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isupper (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isxdigit (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_istitle (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_isdefined (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_iswide (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_iswide_cjk(gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_iszerowidth(gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_ismark (gunichar c) G_GNUC_CONST;
/* More <ctype.h> functions. These convert between the three cases.
* See the Unicode book to understand title case. */
GLIB_AVAILABLE_IN_ALL
gunichar g_unichar_toupper (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gunichar g_unichar_tolower (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gunichar g_unichar_totitle (gunichar c) G_GNUC_CONST;
/* If C is a digit (according to 'g_unichar_isdigit'), then return its
numeric value. Otherwise return -1. */
GLIB_AVAILABLE_IN_ALL
gint g_unichar_digit_value (gunichar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gint g_unichar_xdigit_value (gunichar c) G_GNUC_CONST;
/* Return the Unicode character type of a given character. */
GLIB_AVAILABLE_IN_ALL
GUnicodeType g_unichar_type (gunichar c) G_GNUC_CONST;
/* Return the line break property for a given character */
GLIB_AVAILABLE_IN_ALL
GUnicodeBreakType g_unichar_break_type (gunichar c) G_GNUC_CONST;
/* Returns the combining class for a given character */
GLIB_AVAILABLE_IN_ALL
gint g_unichar_combining_class (gunichar uc) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_get_mirror_char (gunichar ch,
gunichar *mirrored_ch);
GLIB_AVAILABLE_IN_ALL
GUnicodeScript g_unichar_get_script (gunichar ch) G_GNUC_CONST;
/* Validate a Unicode character */
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_validate (gunichar ch) G_GNUC_CONST;
/* Pairwise canonical compose/decompose */
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_compose (gunichar a,
gunichar b,
gunichar *ch);
GLIB_AVAILABLE_IN_ALL
gboolean g_unichar_decompose (gunichar ch,
gunichar *a,
gunichar *b);
GLIB_AVAILABLE_IN_ALL
gsize g_unichar_fully_decompose (gunichar ch,
gboolean compat,
gunichar *result,
gsize result_len);
/**
* G_UNICHAR_MAX_DECOMPOSITION_LENGTH:
*
* The maximum length (in codepoints) of a compatibility or canonical
* decomposition of a single Unicode character.
*
* This is as defined by Unicode 6.1.
*
* Since: 2.32
*/
#define G_UNICHAR_MAX_DECOMPOSITION_LENGTH 18 /* codepoints */
/* Compute canonical ordering of a string in-place. This rearranges
decomposed characters in the string according to their combining
classes. See the Unicode manual for more information. */
GLIB_AVAILABLE_IN_ALL
void g_unicode_canonical_ordering (gunichar *string,
gsize len);
GLIB_DEPRECATED_IN_2_30
gunichar *g_unicode_canonical_decomposition (gunichar ch,
gsize *result_len) G_GNUC_MALLOC;
/* Array of skip-bytes-per-initial character.
*/
GLIB_VAR const gchar * const g_utf8_skip;
/**
* g_utf8_next_char:
* @p: Pointer to the start of a valid UTF-8 character
*
* Skips to the next character in a UTF-8 string. The string must be
* valid; this macro is as fast as possible, and has no error-checking.
* You would use this macro to iterate over a string character by
* character. The macro returns the start of the next UTF-8 character.
* Before using this macro, use g_utf8_validate() to validate strings
* that may contain invalid UTF-8.
*/
#define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(const guchar *)(p)])
GLIB_AVAILABLE_IN_ALL
gunichar g_utf8_get_char (const gchar *p) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
gunichar g_utf8_get_char_validated (const gchar *p,
gssize max_len) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_offset_to_pointer (const gchar *str,
glong offset) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
glong g_utf8_pointer_to_offset (const gchar *str,
const gchar *pos) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_prev_char (const gchar *p) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_find_next_char (const gchar *p,
const gchar *end) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_find_prev_char (const gchar *str,
const gchar *p) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
glong g_utf8_strlen (const gchar *p,
gssize max) G_GNUC_PURE;
GLIB_AVAILABLE_IN_2_30
gchar *g_utf8_substring (const gchar *str,
glong start_pos,
glong end_pos) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_strncpy (gchar *dest,
const gchar *src,
gsize n);
/* Find the UTF-8 character corresponding to ch, in string p. These
functions are equivalants to strchr and strrchr */
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_strchr (const gchar *p,
gssize len,
gunichar c);
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_strrchr (const gchar *p,
gssize len,
gunichar c);
GLIB_AVAILABLE_IN_ALL
gchar* g_utf8_strreverse (const gchar *str,
gssize len);
GLIB_AVAILABLE_IN_ALL
gunichar2 *g_utf8_to_utf16 (const gchar *str,
glong len,
glong *items_read,
glong *items_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gunichar * g_utf8_to_ucs4 (const gchar *str,
glong len,
glong *items_read,
glong *items_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gunichar * g_utf8_to_ucs4_fast (const gchar *str,
glong len,
glong *items_written) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gunichar * g_utf16_to_ucs4 (const gunichar2 *str,
glong len,
glong *items_read,
glong *items_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_utf16_to_utf8 (const gunichar2 *str,
glong len,
glong *items_read,
glong *items_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gunichar2 *g_ucs4_to_utf16 (const gunichar *str,
glong len,
glong *items_read,
glong *items_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_ucs4_to_utf8 (const gunichar *str,
glong len,
glong *items_read,
glong *items_written,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gint g_unichar_to_utf8 (gunichar c,
gchar *outbuf);
GLIB_AVAILABLE_IN_ALL
gboolean g_utf8_validate (const gchar *str,
gssize max_len,
const gchar **end);
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_strup (const gchar *str,
gssize len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_strdown (const gchar *str,
gssize len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_casefold (const gchar *str,
gssize len) G_GNUC_MALLOC;
/**
* GNormalizeMode:
* @G_NORMALIZE_DEFAULT: standardize differences that do not affect the
* text content, such as the above-mentioned accent representation
* @G_NORMALIZE_NFD: another name for %G_NORMALIZE_DEFAULT
* @G_NORMALIZE_DEFAULT_COMPOSE: like %G_NORMALIZE_DEFAULT, but with
* composed forms rather than a maximally decomposed form
* @G_NORMALIZE_NFC: another name for %G_NORMALIZE_DEFAULT_COMPOSE
* @G_NORMALIZE_ALL: beyond %G_NORMALIZE_DEFAULT also standardize the
* "compatibility" characters in Unicode, such as SUPERSCRIPT THREE
* to the standard forms (in this case DIGIT THREE). Formatting
* information may be lost but for most text operations such
* characters should be considered the same
* @G_NORMALIZE_NFKD: another name for %G_NORMALIZE_ALL
* @G_NORMALIZE_ALL_COMPOSE: like %G_NORMALIZE_ALL, but with composed
* forms rather than a maximally decomposed form
* @G_NORMALIZE_NFKC: another name for %G_NORMALIZE_ALL_COMPOSE
*
* Defines how a Unicode string is transformed in a canonical
* form, standardizing such issues as whether a character with
* an accent is represented as a base character and combining
* accent or as a single precomposed character. Unicode strings
* should generally be normalized before comparing them.
*/
typedef enum {
G_NORMALIZE_DEFAULT,
G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT,
G_NORMALIZE_DEFAULT_COMPOSE,
G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE,
G_NORMALIZE_ALL,
G_NORMALIZE_NFKD = G_NORMALIZE_ALL,
G_NORMALIZE_ALL_COMPOSE,
G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE
} GNormalizeMode;
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_normalize (const gchar *str,
gssize len,
GNormalizeMode mode) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gint g_utf8_collate (const gchar *str1,
const gchar *str2) G_GNUC_PURE;
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_collate_key (const gchar *str,
gssize len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar *g_utf8_collate_key_for_filename (const gchar *str,
gssize len) G_GNUC_MALLOC;
/* private */
gchar *_g_utf8_make_valid (const gchar *name);
G_END_DECLS
#endif /* __G_UNICODE_H__ */
# 875 "/usr/include/glib-2.0/glib/gunicode.h" 3
# 34 "/usr/include/glib-2.0/glib/gstring.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbytes.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/gstring.h" 3
# 35 "/usr/include/glib-2.0/glib/gstring.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gutils.h> /* for G_CAN_INLINE */
#endif /* expanded by -frewrite-includes */
# 35 "/usr/include/glib-2.0/glib/gstring.h" 3
# 36 "/usr/include/glib-2.0/glib/gstring.h" 3
G_BEGIN_DECLS
typedef struct _GString GString;
struct _GString
{
gchar *str;
gsize len;
gsize allocated_len;
};
GLIB_AVAILABLE_IN_ALL
GString* g_string_new (const gchar *init);
GLIB_AVAILABLE_IN_ALL
GString* g_string_new_len (const gchar *init,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_sized_new (gsize dfl_size);
GLIB_AVAILABLE_IN_ALL
gchar* g_string_free (GString *string,
gboolean free_segment);
GLIB_AVAILABLE_IN_2_34
GBytes* g_string_free_to_bytes (GString *string);
GLIB_AVAILABLE_IN_ALL
gboolean g_string_equal (const GString *v,
const GString *v2);
GLIB_AVAILABLE_IN_ALL
guint g_string_hash (const GString *str);
GLIB_AVAILABLE_IN_ALL
GString* g_string_assign (GString *string,
const gchar *rval);
GLIB_AVAILABLE_IN_ALL
GString* g_string_truncate (GString *string,
gsize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_set_size (GString *string,
gsize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_insert_len (GString *string,
gssize pos,
const gchar *val,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_append (GString *string,
const gchar *val);
GLIB_AVAILABLE_IN_ALL
GString* g_string_append_len (GString *string,
const gchar *val,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_append_c (GString *string,
gchar c);
GLIB_AVAILABLE_IN_ALL
GString* g_string_append_unichar (GString *string,
gunichar wc);
GLIB_AVAILABLE_IN_ALL
GString* g_string_prepend (GString *string,
const gchar *val);
GLIB_AVAILABLE_IN_ALL
GString* g_string_prepend_c (GString *string,
gchar c);
GLIB_AVAILABLE_IN_ALL
GString* g_string_prepend_unichar (GString *string,
gunichar wc);
GLIB_AVAILABLE_IN_ALL
GString* g_string_prepend_len (GString *string,
const gchar *val,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_insert (GString *string,
gssize pos,
const gchar *val);
GLIB_AVAILABLE_IN_ALL
GString* g_string_insert_c (GString *string,
gssize pos,
gchar c);
GLIB_AVAILABLE_IN_ALL
GString* g_string_insert_unichar (GString *string,
gssize pos,
gunichar wc);
GLIB_AVAILABLE_IN_ALL
GString* g_string_overwrite (GString *string,
gsize pos,
const gchar *val);
GLIB_AVAILABLE_IN_ALL
GString* g_string_overwrite_len (GString *string,
gsize pos,
const gchar *val,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_erase (GString *string,
gssize pos,
gssize len);
GLIB_AVAILABLE_IN_ALL
GString* g_string_ascii_down (GString *string);
GLIB_AVAILABLE_IN_ALL
GString* g_string_ascii_up (GString *string);
GLIB_AVAILABLE_IN_ALL
void g_string_vprintf (GString *string,
const gchar *format,
va_list args)
G_GNUC_PRINTF(2, 0);
GLIB_AVAILABLE_IN_ALL
void g_string_printf (GString *string,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
GLIB_AVAILABLE_IN_ALL
void g_string_append_vprintf (GString *string,
const gchar *format,
va_list args)
G_GNUC_PRINTF(2, 0);
GLIB_AVAILABLE_IN_ALL
void g_string_append_printf (GString *string,
const gchar *format,
...) G_GNUC_PRINTF (2, 3);
GLIB_AVAILABLE_IN_ALL
GString* g_string_append_uri_escaped (GString *string,
const gchar *unescaped,
const gchar *reserved_chars_allowed,
gboolean allow_utf8);
/* -- optimize g_strig_append_c --- */
#ifdef G_CAN_INLINE
static inline GString*
g_string_append_c_inline (GString *gstring,
gchar c)
{
if (gstring->len + 1 < gstring->allocated_len)
{
gstring->str[gstring->len++] = c;
gstring->str[gstring->len] = 0;
}
else
g_string_insert_c (gstring, -1, c);
return gstring;
}
#define g_string_append_c(gstr,c) g_string_append_c_inline (gstr, c)
#endif /* G_CAN_INLINE */
# 175 "/usr/include/glib-2.0/glib/gstring.h" 3
GLIB_DEPRECATED
GString *g_string_down (GString *string);
GLIB_DEPRECATED
GString *g_string_up (GString *string);
#ifndef G_DISABLE_DEPRECATED
#define g_string_sprintf g_string_printf
#define g_string_sprintfa g_string_append_printf
#endif
# 186 "/usr/include/glib-2.0/glib/gstring.h" 3
G_END_DECLS
#endif /* __G_STRING_H__ */
# 190 "/usr/include/glib-2.0/glib/gstring.h" 3
# 35 "/usr/include/glib-2.0/glib/giochannel.h" 2 3
G_BEGIN_DECLS
/* GIOChannel
*/
typedef struct _GIOChannel GIOChannel;
typedef struct _GIOFuncs GIOFuncs;
typedef enum
{
G_IO_ERROR_NONE,
G_IO_ERROR_AGAIN,
G_IO_ERROR_INVAL,
G_IO_ERROR_UNKNOWN
} GIOError;
#define G_IO_CHANNEL_ERROR g_io_channel_error_quark()
typedef enum
{
/* Derived from errno */
G_IO_CHANNEL_ERROR_FBIG,
G_IO_CHANNEL_ERROR_INVAL,
G_IO_CHANNEL_ERROR_IO,
G_IO_CHANNEL_ERROR_ISDIR,
G_IO_CHANNEL_ERROR_NOSPC,
G_IO_CHANNEL_ERROR_NXIO,
G_IO_CHANNEL_ERROR_OVERFLOW,
G_IO_CHANNEL_ERROR_PIPE,
/* Other */
G_IO_CHANNEL_ERROR_FAILED
} GIOChannelError;
typedef enum
{
G_IO_STATUS_ERROR,
G_IO_STATUS_NORMAL,
G_IO_STATUS_EOF,
G_IO_STATUS_AGAIN
} GIOStatus;
typedef enum
{
G_SEEK_CUR,
G_SEEK_SET,
G_SEEK_END
} GSeekType;
typedef enum
{
G_IO_FLAG_APPEND = 1 << 0,
G_IO_FLAG_NONBLOCK = 1 << 1,
G_IO_FLAG_IS_READABLE = 1 << 2, /* Read only flag */
G_IO_FLAG_IS_WRITABLE = 1 << 3, /* Read only flag */
G_IO_FLAG_IS_WRITEABLE = 1 << 3, /* Misspelling in 2.29.10 and earlier */
G_IO_FLAG_IS_SEEKABLE = 1 << 4, /* Read only flag */
G_IO_FLAG_MASK = (1 << 5) - 1,
G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK,
G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK
} GIOFlags;
struct _GIOChannel
{
/*< private >*/
gint ref_count;
GIOFuncs *funcs;
gchar *encoding;
GIConv read_cd;
GIConv write_cd;
gchar *line_term; /* String which indicates the end of a line of text */
guint line_term_len; /* So we can have null in the line term */
gsize buf_size;
GString *read_buf; /* Raw data from the channel */
GString *encoded_read_buf; /* Channel data converted to UTF-8 */
GString *write_buf; /* Data ready to be written to the file */
gchar partial_write_buf[6]; /* UTF-8 partial characters, null terminated */
/* Group the flags together, immediately after partial_write_buf, to save memory */
guint use_buffer : 1; /* The encoding uses the buffers */
guint do_encode : 1; /* The encoding uses the GIConv coverters */
guint close_on_unref : 1; /* Close the channel on final unref */
guint is_readable : 1; /* Cached GIOFlag */
guint is_writeable : 1; /* ditto */
guint is_seekable : 1; /* ditto */
gpointer reserved1;
gpointer reserved2;
};
typedef gboolean (*GIOFunc) (GIOChannel *source,
GIOCondition condition,
gpointer data);
struct _GIOFuncs
{
GIOStatus (*io_read) (GIOChannel *channel,
gchar *buf,
gsize count,
gsize *bytes_read,
GError **err);
GIOStatus (*io_write) (GIOChannel *channel,
const gchar *buf,
gsize count,
gsize *bytes_written,
GError **err);
GIOStatus (*io_seek) (GIOChannel *channel,
gint64 offset,
GSeekType type,
GError **err);
GIOStatus (*io_close) (GIOChannel *channel,
GError **err);
GSource* (*io_create_watch) (GIOChannel *channel,
GIOCondition condition);
void (*io_free) (GIOChannel *channel);
GIOStatus (*io_set_flags) (GIOChannel *channel,
GIOFlags flags,
GError **err);
GIOFlags (*io_get_flags) (GIOChannel *channel);
};
GLIB_AVAILABLE_IN_ALL
void g_io_channel_init (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
GIOChannel *g_io_channel_ref (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
void g_io_channel_unref (GIOChannel *channel);
GLIB_DEPRECATED_FOR(g_io_channel_read_chars)
GIOError g_io_channel_read (GIOChannel *channel,
gchar *buf,
gsize count,
gsize *bytes_read);
GLIB_DEPRECATED_FOR(g_io_channel_write_chars)
GIOError g_io_channel_write (GIOChannel *channel,
const gchar *buf,
gsize count,
gsize *bytes_written);
GLIB_DEPRECATED_FOR(g_io_channel_seek_position)
GIOError g_io_channel_seek (GIOChannel *channel,
gint64 offset,
GSeekType type);
GLIB_DEPRECATED_FOR(g_io_channel_shutdown)
void g_io_channel_close (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_shutdown (GIOChannel *channel,
gboolean flush,
GError **err);
GLIB_AVAILABLE_IN_ALL
guint g_io_add_watch_full (GIOChannel *channel,
gint priority,
GIOCondition condition,
GIOFunc func,
gpointer user_data,
GDestroyNotify notify);
GLIB_AVAILABLE_IN_ALL
GSource * g_io_create_watch (GIOChannel *channel,
GIOCondition condition);
GLIB_AVAILABLE_IN_ALL
guint g_io_add_watch (GIOChannel *channel,
GIOCondition condition,
GIOFunc func,
gpointer user_data);
/* character encoding conversion involved functions.
*/
GLIB_AVAILABLE_IN_ALL
void g_io_channel_set_buffer_size (GIOChannel *channel,
gsize size);
GLIB_AVAILABLE_IN_ALL
gsize g_io_channel_get_buffer_size (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_set_flags (GIOChannel *channel,
GIOFlags flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOFlags g_io_channel_get_flags (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
void g_io_channel_set_line_term (GIOChannel *channel,
const gchar *line_term,
gint length);
GLIB_AVAILABLE_IN_ALL
const gchar * g_io_channel_get_line_term (GIOChannel *channel,
gint *length);
GLIB_AVAILABLE_IN_ALL
void g_io_channel_set_buffered (GIOChannel *channel,
gboolean buffered);
GLIB_AVAILABLE_IN_ALL
gboolean g_io_channel_get_buffered (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_set_encoding (GIOChannel *channel,
const gchar *encoding,
GError **error);
GLIB_AVAILABLE_IN_ALL
const gchar * g_io_channel_get_encoding (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
void g_io_channel_set_close_on_unref (GIOChannel *channel,
gboolean do_close);
GLIB_AVAILABLE_IN_ALL
gboolean g_io_channel_get_close_on_unref (GIOChannel *channel);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_flush (GIOChannel *channel,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_read_line (GIOChannel *channel,
gchar **str_return,
gsize *length,
gsize *terminator_pos,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_read_line_string (GIOChannel *channel,
GString *buffer,
gsize *terminator_pos,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_read_to_end (GIOChannel *channel,
gchar **str_return,
gsize *length,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_read_chars (GIOChannel *channel,
gchar *buf,
gsize count,
gsize *bytes_read,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_read_unichar (GIOChannel *channel,
gunichar *thechar,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_write_chars (GIOChannel *channel,
const gchar *buf,
gssize count,
gsize *bytes_written,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_write_unichar (GIOChannel *channel,
gunichar thechar,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOStatus g_io_channel_seek_position (GIOChannel *channel,
gint64 offset,
GSeekType type,
GError **error);
GLIB_AVAILABLE_IN_ALL
GIOChannel* g_io_channel_new_file (const gchar *filename,
const gchar *mode,
GError **error);
/* Error handling */
GLIB_AVAILABLE_IN_ALL
GQuark g_io_channel_error_quark (void);
GLIB_AVAILABLE_IN_ALL
GIOChannelError g_io_channel_error_from_errno (gint en);
/* On Unix, IO channels created with this function for any file
* descriptor or socket.
*
* On Win32, this can be used either for files opened with the MSVCRT
* (the Microsoft run-time C library) _open() or _pipe, including file
* descriptors 0, 1 and 2 (corresponding to stdin, stdout and stderr),
* or for Winsock SOCKETs. If the parameter is a legal file
* descriptor, it is assumed to be such, otherwise it should be a
* SOCKET. This relies on SOCKETs and file descriptors not
* overlapping. If you want to be certain, call either
* g_io_channel_win32_new_fd() or g_io_channel_win32_new_socket()
* instead as appropriate.
*
* The term file descriptor as used in the context of Win32 refers to
* the emulated Unix-like file descriptors MSVCRT provides. The native
* corresponding concept is file HANDLE. There isn't as of yet a way to
* get GIOChannels for Win32 file HANDLEs.
*/
GLIB_AVAILABLE_IN_ALL
GIOChannel* g_io_channel_unix_new (int fd);
GLIB_AVAILABLE_IN_ALL
gint g_io_channel_unix_get_fd (GIOChannel *channel);
/* Hook for GClosure / GSource integration. Don't touch */
GLIB_VAR GSourceFuncs g_io_watch_funcs;
#ifdef G_OS_WIN32
/* You can use this "pseudo file descriptor" in a GPollFD to add
* polling for Windows messages. GTK applications should not do that.
*/
#define G_WIN32_MSG_HANDLE 19981206
/* Use this to get a GPollFD from a GIOChannel, so that you can call
* g_io_channel_win32_poll(). After calling this you should only use
* g_io_channel_read() to read from the GIOChannel, i.e. never read()
* from the underlying file descriptor. For SOCKETs, it is possible to call
* recv().
*/
GLIB_AVAILABLE_IN_ALL
void g_io_channel_win32_make_pollfd (GIOChannel *channel,
GIOCondition condition,
GPollFD *fd);
/* This can be used to wait a until at least one of the channels is readable.
* On Unix you would do a select() on the file descriptors of the channels.
*/
GLIB_AVAILABLE_IN_ALL
gint g_io_channel_win32_poll (GPollFD *fds,
gint n_fds,
gint timeout_);
/* Create an IO channel for Windows messages for window handle hwnd. */
#if GLIB_SIZEOF_VOID_P == 8
/* We use gsize here so that it is still an integer type and not a
* pointer, like the guint in the traditional prototype. We can't use
* intptr_t as that is not portable enough.
*/
GLIB_AVAILABLE_IN_ALL
GIOChannel *g_io_channel_win32_new_messages (gsize hwnd);
#else
# 365 "/usr/include/glib-2.0/glib/giochannel.h" 3
GLIB_AVAILABLE_IN_ALL
GIOChannel *g_io_channel_win32_new_messages (guint hwnd);
#endif
# 368 "/usr/include/glib-2.0/glib/giochannel.h" 3
/* Create an IO channel for C runtime (emulated Unix-like) file
* descriptors. After calling g_io_add_watch() on a IO channel
* returned by this function, you shouldn't call read() on the file
* descriptor. This is because adding polling for a file descriptor is
* implemented on Win32 by starting a thread that sits blocked in a
* read() from the file descriptor most of the time. All reads from
* the file descriptor should be done by this internal GLib
* thread. Your code should call only g_io_channel_read_chars().
*/
GLIB_AVAILABLE_IN_ALL
GIOChannel* g_io_channel_win32_new_fd (gint fd);
/* Get the C runtime file descriptor of a channel. */
GLIB_AVAILABLE_IN_ALL
gint g_io_channel_win32_get_fd (GIOChannel *channel);
/* Create an IO channel for a winsock socket. The parameter should be
* a SOCKET. Contrary to IO channels for file descriptors (on *Win32),
* you can use normal recv() or recvfrom() on sockets even if GLib
* is polling them.
*/
GLIB_AVAILABLE_IN_ALL
GIOChannel *g_io_channel_win32_new_socket (gint socket);
GLIB_DEPRECATED_FOR(g_io_channel_win32_new_socket)
GIOChannel *g_io_channel_win32_new_stream_socket (gint socket);
GLIB_AVAILABLE_IN_ALL
void g_io_channel_win32_set_debug (GIOChannel *channel,
gboolean flag);
#endif
# 401 "/usr/include/glib-2.0/glib/giochannel.h" 3
#ifndef __GTK_DOC_IGNORE__
#ifdef G_OS_WIN32
#define g_io_channel_new_file g_io_channel_new_file_utf8
GLIB_AVAILABLE_IN_ALL
GIOChannel *g_io_channel_new_file_utf8 (const gchar *filename,
const gchar *mode,
GError **error);
#endif
# 411 "/usr/include/glib-2.0/glib/giochannel.h" 3
#endif /* __GTK_DOC_IGNORE__ */
# 412 "/usr/include/glib-2.0/glib/giochannel.h" 3
G_END_DECLS
#endif /* __G_IOCHANNEL_H__ */
# 416 "/usr/include/glib-2.0/glib/giochannel.h" 3
# 55 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gkeyfile.h>
#endif /* expanded by -frewrite-includes */
# 55 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gkeyfile.h" 1 3
/* gkeyfile.h - desktop entry file parser
*
* Copyright 2004 Red Hat, Inc.
*
* Ray Strode <halfline@hawaii.rr.com>
*
* GLib is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* GLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GLib; see the file COPYING.LIB. If not,
* see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_KEY_FILE_H__
#define __G_KEY_FILE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 28 "/usr/include/glib-2.0/glib/gkeyfile.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbytes.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gkeyfile.h" 3
# 30 "/usr/include/glib-2.0/glib/gkeyfile.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/glib-2.0/glib/gkeyfile.h" 3
# 31 "/usr/include/glib-2.0/glib/gkeyfile.h" 3
G_BEGIN_DECLS
typedef enum
{
G_KEY_FILE_ERROR_UNKNOWN_ENCODING,
G_KEY_FILE_ERROR_PARSE,
G_KEY_FILE_ERROR_NOT_FOUND,
G_KEY_FILE_ERROR_KEY_NOT_FOUND,
G_KEY_FILE_ERROR_GROUP_NOT_FOUND,
G_KEY_FILE_ERROR_INVALID_VALUE
} GKeyFileError;
#define G_KEY_FILE_ERROR g_key_file_error_quark()
GLIB_AVAILABLE_IN_ALL
GQuark g_key_file_error_quark (void);
typedef struct _GKeyFile GKeyFile;
typedef enum
{
G_KEY_FILE_NONE = 0,
G_KEY_FILE_KEEP_COMMENTS = 1 << 0,
G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1
} GKeyFileFlags;
GLIB_AVAILABLE_IN_ALL
GKeyFile *g_key_file_new (void);
GLIB_AVAILABLE_IN_ALL
GKeyFile *g_key_file_ref (GKeyFile *key_file);
GLIB_AVAILABLE_IN_ALL
void g_key_file_unref (GKeyFile *key_file);
GLIB_AVAILABLE_IN_ALL
void g_key_file_free (GKeyFile *key_file);
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_list_separator (GKeyFile *key_file,
gchar separator);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_load_from_file (GKeyFile *key_file,
const gchar *file,
GKeyFileFlags flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_load_from_data (GKeyFile *key_file,
const gchar *data,
gsize length,
GKeyFileFlags flags,
GError **error);
GLIB_AVAILABLE_IN_2_50
gboolean g_key_file_load_from_bytes (GKeyFile *key_file,
GBytes *bytes,
GKeyFileFlags flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_load_from_dirs (GKeyFile *key_file,
const gchar *file,
const gchar **search_dirs,
gchar **full_path,
GKeyFileFlags flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file,
const gchar *file,
gchar **full_path,
GKeyFileFlags flags,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_key_file_to_data (GKeyFile *key_file,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_2_40
gboolean g_key_file_save_to_file (GKeyFile *key_file,
const gchar *filename,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_key_file_get_start_group (GKeyFile *key_file) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar **g_key_file_get_groups (GKeyFile *key_file,
gsize *length) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar **g_key_file_get_keys (GKeyFile *key_file,
const gchar *group_name,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_has_group (GKeyFile *key_file,
const gchar *group_name);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_has_key (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_key_file_get_value (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_value (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *value);
GLIB_AVAILABLE_IN_ALL
gchar *g_key_file_get_string (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_string (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *string);
GLIB_AVAILABLE_IN_ALL
gchar *g_key_file_get_locale_string (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *locale,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_locale_string (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *locale,
const gchar *string);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_get_boolean (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_boolean (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gboolean value);
GLIB_AVAILABLE_IN_ALL
gint g_key_file_get_integer (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_integer (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gint value);
GLIB_AVAILABLE_IN_ALL
gint64 g_key_file_get_int64 (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_int64 (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gint64 value);
GLIB_AVAILABLE_IN_ALL
guint64 g_key_file_get_uint64 (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_uint64 (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
guint64 value);
GLIB_AVAILABLE_IN_ALL
gdouble g_key_file_get_double (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_double (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gdouble value);
GLIB_AVAILABLE_IN_ALL
gchar **g_key_file_get_string_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_string_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar * const list[],
gsize length);
GLIB_AVAILABLE_IN_ALL
gchar **g_key_file_get_locale_string_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *locale,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_locale_string_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *locale,
const gchar * const list[],
gsize length);
GLIB_AVAILABLE_IN_ALL
gboolean *g_key_file_get_boolean_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_boolean_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gboolean list[],
gsize length);
GLIB_AVAILABLE_IN_ALL
gint *g_key_file_get_integer_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_double_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gdouble list[],
gsize length);
GLIB_AVAILABLE_IN_ALL
gdouble *g_key_file_get_double_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gsize *length,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_key_file_set_integer_list (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
gint list[],
gsize length);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_set_comment (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
const gchar *comment,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_key_file_get_comment (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_remove_comment (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_remove_key (GKeyFile *key_file,
const gchar *group_name,
const gchar *key,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_key_file_remove_group (GKeyFile *key_file,
const gchar *group_name,
GError **error);
/* Defines for handling freedesktop.org Desktop files */
#define G_KEY_FILE_DESKTOP_GROUP "Desktop Entry"
#define G_KEY_FILE_DESKTOP_KEY_TYPE "Type"
#define G_KEY_FILE_DESKTOP_KEY_VERSION "Version"
#define G_KEY_FILE_DESKTOP_KEY_NAME "Name"
#define G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME "GenericName"
#define G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY "NoDisplay"
#define G_KEY_FILE_DESKTOP_KEY_COMMENT "Comment"
#define G_KEY_FILE_DESKTOP_KEY_ICON "Icon"
#define G_KEY_FILE_DESKTOP_KEY_HIDDEN "Hidden"
#define G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN "OnlyShowIn"
#define G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN "NotShowIn"
#define G_KEY_FILE_DESKTOP_KEY_TRY_EXEC "TryExec"
#define G_KEY_FILE_DESKTOP_KEY_EXEC "Exec"
#define G_KEY_FILE_DESKTOP_KEY_PATH "Path"
#define G_KEY_FILE_DESKTOP_KEY_TERMINAL "Terminal"
#define G_KEY_FILE_DESKTOP_KEY_MIME_TYPE "MimeType"
#define G_KEY_FILE_DESKTOP_KEY_CATEGORIES "Categories"
#define G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY "StartupNotify"
#define G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS "StartupWMClass"
#define G_KEY_FILE_DESKTOP_KEY_URL "URL"
#define G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE "DBusActivatable"
#define G_KEY_FILE_DESKTOP_KEY_ACTIONS "Actions"
#define G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN "X-GNOME-Gettext-Domain"
#define G_KEY_FILE_DESKTOP_KEY_FULLNAME "X-GNOME-FullName"
#define G_KEY_FILE_DESKTOP_KEY_KEYWORDS "Keywords"
#define G_KEY_FILE_DESKTOP_TYPE_APPLICATION "Application"
#define G_KEY_FILE_DESKTOP_TYPE_LINK "Link"
#define G_KEY_FILE_DESKTOP_TYPE_DIRECTORY "Directory"
G_END_DECLS
#endif /* __G_KEY_FILE_H__ */
# 330 "/usr/include/glib-2.0/glib/gkeyfile.h" 3
# 56 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/glist.h>
#endif /* expanded by -frewrite-includes */
# 56 "/usr/include/glib-2.0/glib.h" 3
# 57 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmacros.h>
#endif /* expanded by -frewrite-includes */
# 57 "/usr/include/glib-2.0/glib.h" 3
# 58 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmain.h>
#endif /* expanded by -frewrite-includes */
# 58 "/usr/include/glib-2.0/glib.h" 3
# 59 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmappedfile.h>
#endif /* expanded by -frewrite-includes */
# 59 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gmappedfile.h" 1 3
/* GLIB - Library of useful routines for C programming
* gmappedfile.h: Simplified wrapper around the mmap function
*
* Copyright 2005 Matthias Clasen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_MAPPED_FILE_H__
#define __G_MAPPED_FILE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gmappedfile.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbytes.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gmappedfile.h" 3
# 28 "/usr/include/glib-2.0/glib/gmappedfile.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gmappedfile.h" 3
# 29 "/usr/include/glib-2.0/glib/gmappedfile.h" 3
G_BEGIN_DECLS
typedef struct _GMappedFile GMappedFile;
GLIB_AVAILABLE_IN_ALL
GMappedFile *g_mapped_file_new (const gchar *filename,
gboolean writable,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
GMappedFile *g_mapped_file_new_from_fd (gint fd,
gboolean writable,
GError **error) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gsize g_mapped_file_get_length (GMappedFile *file);
GLIB_AVAILABLE_IN_ALL
gchar *g_mapped_file_get_contents (GMappedFile *file);
GLIB_AVAILABLE_IN_2_34
GBytes * g_mapped_file_get_bytes (GMappedFile *file);
GLIB_AVAILABLE_IN_ALL
GMappedFile *g_mapped_file_ref (GMappedFile *file);
GLIB_AVAILABLE_IN_ALL
void g_mapped_file_unref (GMappedFile *file);
GLIB_DEPRECATED_FOR(g_mapped_file_unref)
void g_mapped_file_free (GMappedFile *file);
G_END_DECLS
#endif /* __G_MAPPED_FILE_H__ */
# 59 "/usr/include/glib-2.0/glib/gmappedfile.h" 3
# 60 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmarkup.h>
#endif /* expanded by -frewrite-includes */
# 60 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gmarkup.h" 1 3
/* gmarkup.h - Simple XML-like string parser/writer
*
* Copyright 2000 Red Hat, Inc.
*
* GLib is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* GLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GLib; see the file COPYING.LIB. If not,
* see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_MARKUP_H__
#define __G_MARKUP_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 26 "/usr/include/glib-2.0/glib/gmarkup.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gmarkup.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility pop
# 28 "/usr/include/glib-2.0/glib/gmarkup.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gmarkup.h" 3
# 30 "/usr/include/glib-2.0/glib/gmarkup.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gslist.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/glib-2.0/glib/gmarkup.h" 3
# 31 "/usr/include/glib-2.0/glib/gmarkup.h" 3
G_BEGIN_DECLS
/**
* GMarkupError:
* @G_MARKUP_ERROR_BAD_UTF8: text being parsed was not valid UTF-8
* @G_MARKUP_ERROR_EMPTY: document contained nothing, or only whitespace
* @G_MARKUP_ERROR_PARSE: document was ill-formed
* @G_MARKUP_ERROR_UNKNOWN_ELEMENT: error should be set by #GMarkupParser
* functions; element wasn't known
* @G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: error should be set by #GMarkupParser
* functions; attribute wasn't known
* @G_MARKUP_ERROR_INVALID_CONTENT: error should be set by #GMarkupParser
* functions; content was invalid
* @G_MARKUP_ERROR_MISSING_ATTRIBUTE: error should be set by #GMarkupParser
* functions; a required attribute was missing
*
* Error codes returned by markup parsing.
*/
typedef enum
{
G_MARKUP_ERROR_BAD_UTF8,
G_MARKUP_ERROR_EMPTY,
G_MARKUP_ERROR_PARSE,
/* The following are primarily intended for specific GMarkupParser
* implementations to set.
*/
G_MARKUP_ERROR_UNKNOWN_ELEMENT,
G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE,
G_MARKUP_ERROR_INVALID_CONTENT,
G_MARKUP_ERROR_MISSING_ATTRIBUTE
} GMarkupError;
/**
* G_MARKUP_ERROR:
*
* Error domain for markup parsing.
* Errors in this domain will be from the #GMarkupError enumeration.
* See #GError for information on error domains.
*/
#define G_MARKUP_ERROR g_markup_error_quark ()
GLIB_AVAILABLE_IN_ALL
GQuark g_markup_error_quark (void);
/**
* GMarkupParseFlags:
* @G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: flag you should not use
* @G_MARKUP_TREAT_CDATA_AS_TEXT: When this flag is set, CDATA marked
* sections are not passed literally to the @passthrough function of
* the parser. Instead, the content of the section (without the
* `<![CDATA[` and `]]>`) is
* passed to the @text function. This flag was added in GLib 2.12
* @G_MARKUP_PREFIX_ERROR_POSITION: Normally errors caught by GMarkup
* itself have line/column information prefixed to them to let the
* caller know the location of the error. When this flag is set the
* location information is also prefixed to errors generated by the
* #GMarkupParser implementation functions
* @G_MARKUP_IGNORE_QUALIFIED: Ignore (don't report) qualified
* attributes and tags, along with their contents. A qualified
* attribute or tag is one that contains ':' in its name (ie: is in
* another namespace). Since: 2.40.
*
* Flags that affect the behaviour of the parser.
*/
typedef enum
{
G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0,
G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1,
G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2,
G_MARKUP_IGNORE_QUALIFIED = 1 << 3
} GMarkupParseFlags;
/**
* GMarkupParseContext:
*
* A parse context is used to parse a stream of bytes that
* you expect to contain marked-up text.
*
* See g_markup_parse_context_new(), #GMarkupParser, and so
* on for more details.
*/
typedef struct _GMarkupParseContext GMarkupParseContext;
typedef struct _GMarkupParser GMarkupParser;
/**
* GMarkupParser:
* @start_element: Callback to invoke when the opening tag of an element
* is seen. The callback's @attribute_names and @attribute_values parameters
* are %NULL-terminated.
* @end_element: Callback to invoke when the closing tag of an element
* is seen. Note that this is also called for empty tags like
* `<empty/>`.
* @text: Callback to invoke when some text is seen (text is always
* inside an element). Note that the text of an element may be spread
* over multiple calls of this function. If the
* %G_MARKUP_TREAT_CDATA_AS_TEXT flag is set, this function is also
* called for the content of CDATA marked sections.
* @passthrough: Callback to invoke for comments, processing instructions
* and doctype declarations; if you're re-writing the parsed document,
* write the passthrough text back out in the same position. If the
* %G_MARKUP_TREAT_CDATA_AS_TEXT flag is not set, this function is also
* called for CDATA marked sections.
* @error: Callback to invoke when an error occurs.
*
* Any of the fields in #GMarkupParser can be %NULL, in which case they
* will be ignored. Except for the @error function, any of these callbacks
* can set an error; in particular the %G_MARKUP_ERROR_UNKNOWN_ELEMENT,
* %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, and %G_MARKUP_ERROR_INVALID_CONTENT
* errors are intended to be set from these callbacks. If you set an error
* from a callback, g_markup_parse_context_parse() will report that error
* back to its caller.
*/
struct _GMarkupParser
{
/* Called for open tags <foo bar="baz"> */
void (*start_element) (GMarkupParseContext *context,
const gchar *element_name,
const gchar **attribute_names,
const gchar **attribute_values,
gpointer user_data,
GError **error);
/* Called for close tags </foo> */
void (*end_element) (GMarkupParseContext *context,
const gchar *element_name,
gpointer user_data,
GError **error);
/* Called for character data */
/* text is not nul-terminated */
void (*text) (GMarkupParseContext *context,
const gchar *text,
gsize text_len,
gpointer user_data,
GError **error);
/* Called for strings that should be re-saved verbatim in this same
* position, but are not otherwise interpretable. At the moment
* this includes comments and processing instructions.
*/
/* text is not nul-terminated. */
void (*passthrough) (GMarkupParseContext *context,
const gchar *passthrough_text,
gsize text_len,
gpointer user_data,
GError **error);
/* Called on error, including one set by other
* methods in the vtable. The GError should not be freed.
*/
void (*error) (GMarkupParseContext *context,
GError *error,
gpointer user_data);
};
GLIB_AVAILABLE_IN_ALL
GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser,
GMarkupParseFlags flags,
gpointer user_data,
GDestroyNotify user_data_dnotify);
GLIB_AVAILABLE_IN_2_36
GMarkupParseContext *g_markup_parse_context_ref (GMarkupParseContext *context);
GLIB_AVAILABLE_IN_2_36
void g_markup_parse_context_unref (GMarkupParseContext *context);
GLIB_AVAILABLE_IN_ALL
void g_markup_parse_context_free (GMarkupParseContext *context);
GLIB_AVAILABLE_IN_ALL
gboolean g_markup_parse_context_parse (GMarkupParseContext *context,
const gchar *text,
gssize text_len,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_markup_parse_context_push (GMarkupParseContext *context,
const GMarkupParser *parser,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
gpointer g_markup_parse_context_pop (GMarkupParseContext *context);
GLIB_AVAILABLE_IN_ALL
gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context,
GError **error);
GLIB_AVAILABLE_IN_ALL
const gchar * g_markup_parse_context_get_element (GMarkupParseContext *context);
GLIB_AVAILABLE_IN_ALL
const GSList * g_markup_parse_context_get_element_stack (GMarkupParseContext *context);
/* For user-constructed error messages, has no precise semantics */
GLIB_AVAILABLE_IN_ALL
void g_markup_parse_context_get_position (GMarkupParseContext *context,
gint *line_number,
gint *char_number);
GLIB_AVAILABLE_IN_ALL
gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context);
/* useful when saving */
GLIB_AVAILABLE_IN_ALL
gchar* g_markup_escape_text (const gchar *text,
gssize length);
GLIB_AVAILABLE_IN_ALL
gchar *g_markup_printf_escaped (const char *format,
...) G_GNUC_PRINTF (1, 2);
GLIB_AVAILABLE_IN_ALL
gchar *g_markup_vprintf_escaped (const char *format,
va_list args) G_GNUC_PRINTF(1, 0);
typedef enum
{
G_MARKUP_COLLECT_INVALID,
G_MARKUP_COLLECT_STRING,
G_MARKUP_COLLECT_STRDUP,
G_MARKUP_COLLECT_BOOLEAN,
G_MARKUP_COLLECT_TRISTATE,
G_MARKUP_COLLECT_OPTIONAL = (1 << 16)
} GMarkupCollectType;
/* useful from start_element */
GLIB_AVAILABLE_IN_ALL
gboolean g_markup_collect_attributes (const gchar *element_name,
const gchar **attribute_names,
const gchar **attribute_values,
GError **error,
GMarkupCollectType first_type,
const gchar *first_attr,
...);
G_END_DECLS
#endif /* __G_MARKUP_H__ */
# 263 "/usr/include/glib-2.0/glib/gmarkup.h" 3
# 61 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmem.h>
#endif /* expanded by -frewrite-includes */
# 61 "/usr/include/glib-2.0/glib.h" 3
# 62 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmessages.h>
#endif /* expanded by -frewrite-includes */
# 62 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gmessages.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_MESSAGES_H__
#define __G_MESSAGES_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gmessages.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gmessages.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility pop
# 33 "/usr/include/glib-2.0/glib/gmessages.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gmessages.h" 3
# 34 "/usr/include/glib-2.0/glib/gmessages.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmacros.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/gmessages.h" 3
# 35 "/usr/include/glib-2.0/glib/gmessages.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gvariant.h>
#endif /* expanded by -frewrite-includes */
# 35 "/usr/include/glib-2.0/glib/gmessages.h" 3
# 1 "/usr/include/glib-2.0/glib/gvariant.h" 1 3
/*
* Copyright © 2007, 2008 Ryan Lortie
* Copyright © 2009, 2010 Codethink Limited
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_VARIANT_H__
#define __G_VARIANT_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 27 "/usr/include/glib-2.0/glib/gvariant.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gvarianttype.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gvariant.h" 3
# 1 "/usr/include/glib-2.0/glib/gvarianttype.h" 1 3
/*
* Copyright © 2007, 2008 Ryan Lortie
* Copyright © 2009, 2010 Codethink Limited
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the licence, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_VARIANT_TYPE_H__
#define __G_VARIANT_TYPE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 27 "/usr/include/glib-2.0/glib/gvarianttype.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gvarianttype.h" 3
# 29 "/usr/include/glib-2.0/glib/gvarianttype.h" 3
G_BEGIN_DECLS
/**
* GVariantType:
*
* A type in the GVariant type system.
*
* Two types may not be compared by value; use g_variant_type_equal() or
* g_variant_type_is_subtype_of(). May be copied using
* g_variant_type_copy() and freed using g_variant_type_free().
**/
typedef struct _GVariantType GVariantType;
/**
* G_VARIANT_TYPE_BOOLEAN:
*
* The type of a value that can be either %TRUE or %FALSE.
**/
#define G_VARIANT_TYPE_BOOLEAN ((const GVariantType *) "b")
/**
* G_VARIANT_TYPE_BYTE:
*
* The type of an integer value that can range from 0 to 255.
**/
#define G_VARIANT_TYPE_BYTE ((const GVariantType *) "y")
/**
* G_VARIANT_TYPE_INT16:
*
* The type of an integer value that can range from -32768 to 32767.
**/
#define G_VARIANT_TYPE_INT16 ((const GVariantType *) "n")
/**
* G_VARIANT_TYPE_UINT16:
*
* The type of an integer value that can range from 0 to 65535.
* There were about this many people living in Toronto in the 1870s.
**/
#define G_VARIANT_TYPE_UINT16 ((const GVariantType *) "q")
/**
* G_VARIANT_TYPE_INT32:
*
* The type of an integer value that can range from -2147483648 to
* 2147483647.
**/
#define G_VARIANT_TYPE_INT32 ((const GVariantType *) "i")
/**
* G_VARIANT_TYPE_UINT32:
*
* The type of an integer value that can range from 0 to 4294967295.
* That's one number for everyone who was around in the late 1970s.
**/
#define G_VARIANT_TYPE_UINT32 ((const GVariantType *) "u")
/**
* G_VARIANT_TYPE_INT64:
*
* The type of an integer value that can range from
* -9223372036854775808 to 9223372036854775807.
**/
#define G_VARIANT_TYPE_INT64 ((const GVariantType *) "x")
/**
* G_VARIANT_TYPE_UINT64:
*
* The type of an integer value that can range from 0 to
* 18446744073709551616. That's a really big number, but a Rubik's
* cube can have a bit more than twice as many possible positions.
**/
#define G_VARIANT_TYPE_UINT64 ((const GVariantType *) "t")
/**
* G_VARIANT_TYPE_DOUBLE:
*
* The type of a double precision IEEE754 floating point number.
* These guys go up to about 1.80e308 (plus and minus) but miss out on
* some numbers in between. In any case, that's far greater than the
* estimated number of fundamental particles in the observable
* universe.
**/
#define G_VARIANT_TYPE_DOUBLE ((const GVariantType *) "d")
/**
* G_VARIANT_TYPE_STRING:
*
* The type of a string. "" is a string. %NULL is not a string.
**/
#define G_VARIANT_TYPE_STRING ((const GVariantType *) "s")
/**
* G_VARIANT_TYPE_OBJECT_PATH:
*
* The type of a D-Bus object reference. These are strings of a
* specific format used to identify objects at a given destination on
* the bus.
*
* If you are not interacting with D-Bus, then there is no reason to make
* use of this type. If you are, then the D-Bus specification contains a
* precise description of valid object paths.
**/
#define G_VARIANT_TYPE_OBJECT_PATH ((const GVariantType *) "o")
/**
* G_VARIANT_TYPE_SIGNATURE:
*
* The type of a D-Bus type signature. These are strings of a specific
* format used as type signatures for D-Bus methods and messages.
*
* If you are not interacting with D-Bus, then there is no reason to make
* use of this type. If you are, then the D-Bus specification contains a
* precise description of valid signature strings.
**/
#define G_VARIANT_TYPE_SIGNATURE ((const GVariantType *) "g")
/**
* G_VARIANT_TYPE_VARIANT:
*
* The type of a box that contains any other value (including another
* variant).
**/
#define G_VARIANT_TYPE_VARIANT ((const GVariantType *) "v")
/**
* G_VARIANT_TYPE_HANDLE:
*
* The type of a 32bit signed integer value, that by convention, is used
* as an index into an array of file descriptors that are sent alongside
* a D-Bus message.
*
* If you are not interacting with D-Bus, then there is no reason to make
* use of this type.
**/
#define G_VARIANT_TYPE_HANDLE ((const GVariantType *) "h")
/**
* G_VARIANT_TYPE_UNIT:
*
* The empty tuple type. Has only one instance. Known also as "triv"
* or "void".
**/
#define G_VARIANT_TYPE_UNIT ((const GVariantType *) "()")
/**
* G_VARIANT_TYPE_ANY:
*
* An indefinite type that is a supertype of every type (including
* itself).
**/
#define G_VARIANT_TYPE_ANY ((const GVariantType *) "*")
/**
* G_VARIANT_TYPE_BASIC:
*
* An indefinite type that is a supertype of every basic (ie:
* non-container) type.
**/
#define G_VARIANT_TYPE_BASIC ((const GVariantType *) "?")
/**
* G_VARIANT_TYPE_MAYBE:
*
* An indefinite type that is a supertype of every maybe type.
**/
#define G_VARIANT_TYPE_MAYBE ((const GVariantType *) "m*")
/**
* G_VARIANT_TYPE_ARRAY:
*
* An indefinite type that is a supertype of every array type.
**/
#define G_VARIANT_TYPE_ARRAY ((const GVariantType *) "a*")
/**
* G_VARIANT_TYPE_TUPLE:
*
* An indefinite type that is a supertype of every tuple type,
* regardless of the number of items in the tuple.
**/
#define G_VARIANT_TYPE_TUPLE ((const GVariantType *) "r")
/**
* G_VARIANT_TYPE_DICT_ENTRY:
*
* An indefinite type that is a supertype of every dictionary entry
* type.
**/
#define G_VARIANT_TYPE_DICT_ENTRY ((const GVariantType *) "{?*}")
/**
* G_VARIANT_TYPE_DICTIONARY:
*
* An indefinite type that is a supertype of every dictionary type --
* that is, any array type that has an element type equal to any
* dictionary entry type.
**/
#define G_VARIANT_TYPE_DICTIONARY ((const GVariantType *) "a{?*}")
/**
* G_VARIANT_TYPE_STRING_ARRAY:
*
* The type of an array of strings.
**/
#define G_VARIANT_TYPE_STRING_ARRAY ((const GVariantType *) "as")
/**
* G_VARIANT_TYPE_OBJECT_PATH_ARRAY:
*
* The type of an array of object paths.
**/
#define G_VARIANT_TYPE_OBJECT_PATH_ARRAY ((const GVariantType *) "ao")
/**
* G_VARIANT_TYPE_BYTESTRING:
*
* The type of an array of bytes. This type is commonly used to pass
* around strings that may not be valid utf8. In that case, the
* convention is that the nul terminator character should be included as
* the last character in the array.
**/
#define G_VARIANT_TYPE_BYTESTRING ((const GVariantType *) "ay")
/**
* G_VARIANT_TYPE_BYTESTRING_ARRAY:
*
* The type of an array of byte strings (an array of arrays of bytes).
**/
#define G_VARIANT_TYPE_BYTESTRING_ARRAY ((const GVariantType *) "aay")
/**
* G_VARIANT_TYPE_VARDICT:
*
* The type of a dictionary mapping strings to variants (the ubiquitous
* "a{sv}" type).
*
* Since: 2.30
**/
#define G_VARIANT_TYPE_VARDICT ((const GVariantType *) "a{sv}")
/**
* G_VARIANT_TYPE:
* @type_string: a well-formed #GVariantType type string
*
* Converts a string to a const #GVariantType. Depending on the
* current debugging level, this function may perform a runtime check
* to ensure that @string is a valid GVariant type string.
*
* It is always a programmer error to use this macro with an invalid
* type string. If in doubt, use g_variant_type_string_is_valid() to
* check if the string is valid.
*
* Since 2.24
**/
#ifndef G_DISABLE_CHECKS
# define G_VARIANT_TYPE(type_string) (g_variant_type_checked_ ((type_string)))
#else
# 290 "/usr/include/glib-2.0/glib/gvarianttype.h" 3
# define G_VARIANT_TYPE(type_string) ((const GVariantType *) (type_string))
#endif
# 292 "/usr/include/glib-2.0/glib/gvarianttype.h" 3
/* type string checking */
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_string_is_valid (const gchar *type_string);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_string_scan (const gchar *string,
const gchar *limit,
const gchar **endptr);
/* create/destroy */
GLIB_AVAILABLE_IN_ALL
void g_variant_type_free (GVariantType *type);
GLIB_AVAILABLE_IN_ALL
GVariantType * g_variant_type_copy (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
GVariantType * g_variant_type_new (const gchar *type_string);
/* getters */
GLIB_AVAILABLE_IN_ALL
gsize g_variant_type_get_string_length (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
const gchar * g_variant_type_peek_string (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gchar * g_variant_type_dup_string (const GVariantType *type);
/* classification */
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_definite (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_container (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_basic (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_maybe (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_array (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_tuple (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_dict_entry (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_variant (const GVariantType *type);
/* for hash tables */
GLIB_AVAILABLE_IN_ALL
guint g_variant_type_hash (gconstpointer type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_equal (gconstpointer type1,
gconstpointer type2);
/* subtypes */
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_type_is_subtype_of (const GVariantType *type,
const GVariantType *supertype);
/* type iterator interface */
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_type_element (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_type_first (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_type_next (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gsize g_variant_type_n_items (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_type_key (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_type_value (const GVariantType *type);
/* constructors */
GLIB_AVAILABLE_IN_ALL
GVariantType * g_variant_type_new_array (const GVariantType *element);
GLIB_AVAILABLE_IN_ALL
GVariantType * g_variant_type_new_maybe (const GVariantType *element);
GLIB_AVAILABLE_IN_ALL
GVariantType * g_variant_type_new_tuple (const GVariantType * const *items,
gint length);
GLIB_AVAILABLE_IN_ALL
GVariantType * g_variant_type_new_dict_entry (const GVariantType *key,
const GVariantType *value);
/*< private >*/
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_type_checked_ (const gchar *);
G_END_DECLS
#endif /* __G_VARIANT_TYPE_H__ */
# 380 "/usr/include/glib-2.0/glib/gvarianttype.h" 3
# 29 "/usr/include/glib-2.0/glib/gvariant.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstring.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gvariant.h" 3
# 30 "/usr/include/glib-2.0/glib/gvariant.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gbytes.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/glib-2.0/glib/gvariant.h" 3
# 31 "/usr/include/glib-2.0/glib/gvariant.h" 3
G_BEGIN_DECLS
typedef struct _GVariant GVariant;
typedef enum
{
G_VARIANT_CLASS_BOOLEAN = 'b',
G_VARIANT_CLASS_BYTE = 'y',
G_VARIANT_CLASS_INT16 = 'n',
G_VARIANT_CLASS_UINT16 = 'q',
G_VARIANT_CLASS_INT32 = 'i',
G_VARIANT_CLASS_UINT32 = 'u',
G_VARIANT_CLASS_INT64 = 'x',
G_VARIANT_CLASS_UINT64 = 't',
G_VARIANT_CLASS_HANDLE = 'h',
G_VARIANT_CLASS_DOUBLE = 'd',
G_VARIANT_CLASS_STRING = 's',
G_VARIANT_CLASS_OBJECT_PATH = 'o',
G_VARIANT_CLASS_SIGNATURE = 'g',
G_VARIANT_CLASS_VARIANT = 'v',
G_VARIANT_CLASS_MAYBE = 'm',
G_VARIANT_CLASS_ARRAY = 'a',
G_VARIANT_CLASS_TUPLE = '(',
G_VARIANT_CLASS_DICT_ENTRY = '{'
} GVariantClass;
GLIB_AVAILABLE_IN_ALL
void g_variant_unref (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_ref (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_ref_sink (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_is_floating (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_take_ref (GVariant *value);
GLIB_AVAILABLE_IN_ALL
const GVariantType * g_variant_get_type (GVariant *value);
GLIB_AVAILABLE_IN_ALL
const gchar * g_variant_get_type_string (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_is_of_type (GVariant *value,
const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_is_container (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariantClass g_variant_classify (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_boolean (gboolean value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_byte (guchar value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_int16 (gint16 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_uint16 (guint16 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_int32 (gint32 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_uint32 (guint32 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_int64 (gint64 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_uint64 (guint64 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_handle (gint32 value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_double (gdouble value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_string (const gchar *string);
GLIB_AVAILABLE_IN_2_38
GVariant * g_variant_new_take_string (gchar *string);
GLIB_AVAILABLE_IN_2_38
GVariant * g_variant_new_printf (const gchar *format_string,
...) G_GNUC_PRINTF (1, 2);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_object_path (const gchar *object_path);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_is_object_path (const gchar *string);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_signature (const gchar *signature);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_is_signature (const gchar *string);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_variant (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_strv (const gchar * const *strv,
gssize length);
GLIB_AVAILABLE_IN_2_30
GVariant * g_variant_new_objv (const gchar * const *strv,
gssize length);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_bytestring (const gchar *string);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_bytestring_array (const gchar * const *strv,
gssize length);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_fixed_array (const GVariantType *element_type,
gconstpointer elements,
gsize n_elements,
gsize element_size);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_get_boolean (GVariant *value);
GLIB_AVAILABLE_IN_ALL
guchar g_variant_get_byte (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gint16 g_variant_get_int16 (GVariant *value);
GLIB_AVAILABLE_IN_ALL
guint16 g_variant_get_uint16 (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gint32 g_variant_get_int32 (GVariant *value);
GLIB_AVAILABLE_IN_ALL
guint32 g_variant_get_uint32 (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gint64 g_variant_get_int64 (GVariant *value);
GLIB_AVAILABLE_IN_ALL
guint64 g_variant_get_uint64 (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gint32 g_variant_get_handle (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gdouble g_variant_get_double (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_get_variant (GVariant *value);
GLIB_AVAILABLE_IN_ALL
const gchar * g_variant_get_string (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
gchar * g_variant_dup_string (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
const gchar ** g_variant_get_strv (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
gchar ** g_variant_dup_strv (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_2_30
const gchar ** g_variant_get_objv (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
gchar ** g_variant_dup_objv (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
const gchar * g_variant_get_bytestring (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gchar * g_variant_dup_bytestring (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
const gchar ** g_variant_get_bytestring_array (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
gchar ** g_variant_dup_bytestring_array (GVariant *value,
gsize *length);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_maybe (const GVariantType *child_type,
GVariant *child);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_array (const GVariantType *child_type,
GVariant * const *children,
gsize n_children);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_tuple (GVariant * const *children,
gsize n_children);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_dict_entry (GVariant *key,
GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_get_maybe (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gsize g_variant_n_children (GVariant *value);
GLIB_AVAILABLE_IN_ALL
void g_variant_get_child (GVariant *value,
gsize index_,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_get_child_value (GVariant *value,
gsize index_);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_lookup (GVariant *dictionary,
const gchar *key,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_lookup_value (GVariant *dictionary,
const gchar *key,
const GVariantType *expected_type);
GLIB_AVAILABLE_IN_ALL
gconstpointer g_variant_get_fixed_array (GVariant *value,
gsize *n_elements,
gsize element_size);
GLIB_AVAILABLE_IN_ALL
gsize g_variant_get_size (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gconstpointer g_variant_get_data (GVariant *value);
GLIB_AVAILABLE_IN_2_36
GBytes * g_variant_get_data_as_bytes (GVariant *value);
GLIB_AVAILABLE_IN_ALL
void g_variant_store (GVariant *value,
gpointer data);
GLIB_AVAILABLE_IN_ALL
gchar * g_variant_print (GVariant *value,
gboolean type_annotate);
GLIB_AVAILABLE_IN_ALL
GString * g_variant_print_string (GVariant *value,
GString *string,
gboolean type_annotate);
GLIB_AVAILABLE_IN_ALL
guint g_variant_hash (gconstpointer value);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_equal (gconstpointer one,
gconstpointer two);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_get_normal_form (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_is_normal_form (GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_byteswap (GVariant *value);
GLIB_AVAILABLE_IN_2_36
GVariant * g_variant_new_from_bytes (const GVariantType *type,
GBytes *bytes,
gboolean trusted);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_from_data (const GVariantType *type,
gconstpointer data,
gsize size,
gboolean trusted,
GDestroyNotify notify,
gpointer user_data);
typedef struct _GVariantIter GVariantIter;
struct _GVariantIter {
/*< private >*/
gsize x[16];
};
GLIB_AVAILABLE_IN_ALL
GVariantIter * g_variant_iter_new (GVariant *value);
GLIB_AVAILABLE_IN_ALL
gsize g_variant_iter_init (GVariantIter *iter,
GVariant *value);
GLIB_AVAILABLE_IN_ALL
GVariantIter * g_variant_iter_copy (GVariantIter *iter);
GLIB_AVAILABLE_IN_ALL
gsize g_variant_iter_n_children (GVariantIter *iter);
GLIB_AVAILABLE_IN_ALL
void g_variant_iter_free (GVariantIter *iter);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_iter_next_value (GVariantIter *iter);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_iter_next (GVariantIter *iter,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_ALL
gboolean g_variant_iter_loop (GVariantIter *iter,
const gchar *format_string,
...);
typedef struct _GVariantBuilder GVariantBuilder;
struct _GVariantBuilder {
/*< private >*/
union
{
struct {
gsize partial_magic;
const GVariantType *type;
gsize y[14];
} s;
gsize x[16];
} u;
};
typedef enum
{
G_VARIANT_PARSE_ERROR_FAILED,
G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED,
G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE,
G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED,
G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END,
G_VARIANT_PARSE_ERROR_INVALID_CHARACTER,
G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING,
G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH,
G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE,
G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING,
G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE,
G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE,
G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG,
G_VARIANT_PARSE_ERROR_TYPE_ERROR,
G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN,
G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD,
G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
G_VARIANT_PARSE_ERROR_VALUE_EXPECTED
} GVariantParseError;
#define G_VARIANT_PARSE_ERROR (g_variant_parse_error_quark ())
GLIB_DEPRECATED_IN_2_38_FOR(g_variant_parse_error_quark)
GQuark g_variant_parser_get_error_quark (void);
GLIB_AVAILABLE_IN_ALL
GQuark g_variant_parse_error_quark (void);
/**
* G_VARIANT_BUILDER_INIT:
* @variant_type: a const GVariantType*
*
* A stack-allocated #GVariantBuilder must be initialized if it is
* used together with g_auto() to avoid warnings or crashes if
* function returns before g_variant_builder_init() is called on the
* builder. This macro can be used as initializer instead of an
* explicit zeroing a variable when declaring it and a following
* g_variant_builder_init(), but it cannot be assigned to a variable.
*
* The passed @variant_type should be a static GVariantType to avoid
* lifetime issues, as copying the @variant_type does not happen in
* the G_VARIANT_BUILDER_INIT() call, but rather in functions that
* make sure that #GVariantBuilder is valid.
*
* |[
* g_auto(GVariantBuilder) builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_BYTESTRING);
* ]|
*
* Since: 2.50
*/
#define G_VARIANT_BUILDER_INIT(variant_type) { { { 2942751021u, variant_type, { 0, } } } }
GLIB_AVAILABLE_IN_ALL
GVariantBuilder * g_variant_builder_new (const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_unref (GVariantBuilder *builder);
GLIB_AVAILABLE_IN_ALL
GVariantBuilder * g_variant_builder_ref (GVariantBuilder *builder);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_init (GVariantBuilder *builder,
const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_builder_end (GVariantBuilder *builder);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_clear (GVariantBuilder *builder);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_open (GVariantBuilder *builder,
const GVariantType *type);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_close (GVariantBuilder *builder);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_add_value (GVariantBuilder *builder,
GVariant *value);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_add (GVariantBuilder *builder,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_ALL
void g_variant_builder_add_parsed (GVariantBuilder *builder,
const gchar *format,
...);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new (const gchar *format_string,
...);
GLIB_AVAILABLE_IN_ALL
void g_variant_get (GVariant *value,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_va (const gchar *format_string,
const gchar **endptr,
va_list *app);
GLIB_AVAILABLE_IN_ALL
void g_variant_get_va (GVariant *value,
const gchar *format_string,
const gchar **endptr,
va_list *app);
GLIB_AVAILABLE_IN_2_34
gboolean g_variant_check_format_string (GVariant *value,
const gchar *format_string,
gboolean copy_only);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_parse (const GVariantType *type,
const gchar *text,
const gchar *limit,
const gchar **endptr,
GError **error);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_parsed (const gchar *format,
...);
GLIB_AVAILABLE_IN_ALL
GVariant * g_variant_new_parsed_va (const gchar *format,
va_list *app);
GLIB_AVAILABLE_IN_2_40
gchar * g_variant_parse_error_print_context (GError *error,
const gchar *source_str);
GLIB_AVAILABLE_IN_ALL
gint g_variant_compare (gconstpointer one,
gconstpointer two);
typedef struct _GVariantDict GVariantDict;
struct _GVariantDict {
/*< private >*/
union
{
struct {
GVariant *asv;
gsize partial_magic;
gsize y[14];
} s;
gsize x[16];
} u;
};
/**
* G_VARIANT_DICT_INIT:
* @asv: (nullable): a GVariant*
*
* A stack-allocated #GVariantDict must be initialized if it is used
* together with g_auto() to avoid warnings or crashes if function
* returns before g_variant_dict_init() is called on the builder.
* This macro can be used as initializer instead of an explicit
* zeroing a variable when declaring it and a following
* g_variant_dict_init(), but it cannot be assigned to a variable.
*
* The passed @asv has to live long enough for #GVariantDict to gather
* the entries from, as the gathering does not happen in the
* G_VARIANT_DICT_INIT() call, but rather in functions that make sure
* that #GVariantDict is valid. In context where the initialization
* value has to be a constant expression, the only possible value of
* @asv is %NULL. It is still possible to call g_variant_dict_init()
* safely with a different @asv right after the variable was
* initialized with G_VARIANT_DICT_INIT().
*
* |[
* g_autoptr(GVariant) variant = get_asv_variant ();
* g_auto(GVariantDict) dict = G_VARIANT_DICT_INIT (variant);
* ]|
*
* Since: 2.50
*/
#define G_VARIANT_DICT_INIT(asv) { { { asv, 3488698669u, { 0, } } } }
GLIB_AVAILABLE_IN_2_40
GVariantDict * g_variant_dict_new (GVariant *from_asv);
GLIB_AVAILABLE_IN_2_40
void g_variant_dict_init (GVariantDict *dict,
GVariant *from_asv);
GLIB_AVAILABLE_IN_2_40
gboolean g_variant_dict_lookup (GVariantDict *dict,
const gchar *key,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_2_40
GVariant * g_variant_dict_lookup_value (GVariantDict *dict,
const gchar *key,
const GVariantType *expected_type);
GLIB_AVAILABLE_IN_2_40
gboolean g_variant_dict_contains (GVariantDict *dict,
const gchar *key);
GLIB_AVAILABLE_IN_2_40
void g_variant_dict_insert (GVariantDict *dict,
const gchar *key,
const gchar *format_string,
...);
GLIB_AVAILABLE_IN_2_40
void g_variant_dict_insert_value (GVariantDict *dict,
const gchar *key,
GVariant *value);
GLIB_AVAILABLE_IN_2_40
gboolean g_variant_dict_remove (GVariantDict *dict,
const gchar *key);
GLIB_AVAILABLE_IN_2_40
void g_variant_dict_clear (GVariantDict *dict);
GLIB_AVAILABLE_IN_2_40
GVariant * g_variant_dict_end (GVariantDict *dict);
GLIB_AVAILABLE_IN_2_40
GVariantDict * g_variant_dict_ref (GVariantDict *dict);
GLIB_AVAILABLE_IN_2_40
void g_variant_dict_unref (GVariantDict *dict);
G_END_DECLS
#endif /* __G_VARIANT_H__ */
# 522 "/usr/include/glib-2.0/glib/gvariant.h" 3
# 36 "/usr/include/glib-2.0/glib/gmessages.h" 2 3
G_BEGIN_DECLS
/* calculate a string size, guaranteed to fit format + args.
*/
GLIB_AVAILABLE_IN_ALL
gsize g_printf_string_upper_bound (const gchar* format,
va_list args) G_GNUC_PRINTF(1, 0);
/* Log level shift offset for user defined
* log levels (0-7 are used by GLib).
*/
#define G_LOG_LEVEL_USER_SHIFT (8)
/* Glib log levels and flags.
*/
typedef enum
{
/* log flags */
G_LOG_FLAG_RECURSION = 1 << 0,
G_LOG_FLAG_FATAL = 1 << 1,
/* GLib log levels */
G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */
G_LOG_LEVEL_CRITICAL = 1 << 3,
G_LOG_LEVEL_WARNING = 1 << 4,
G_LOG_LEVEL_MESSAGE = 1 << 5,
G_LOG_LEVEL_INFO = 1 << 6,
G_LOG_LEVEL_DEBUG = 1 << 7,
G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL)
} GLogLevelFlags;
/* GLib log levels that are considered fatal by default */
#define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
typedef void (*GLogFunc) (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data);
/* Logging mechanism
*/
GLIB_AVAILABLE_IN_ALL
guint g_log_set_handler (const gchar *log_domain,
GLogLevelFlags log_levels,
GLogFunc log_func,
gpointer user_data);
GLIB_AVAILABLE_IN_2_46
guint g_log_set_handler_full (const gchar *log_domain,
GLogLevelFlags log_levels,
GLogFunc log_func,
gpointer user_data,
GDestroyNotify destroy);
GLIB_AVAILABLE_IN_ALL
void g_log_remove_handler (const gchar *log_domain,
guint handler_id);
GLIB_AVAILABLE_IN_ALL
void g_log_default_handler (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer unused_data);
GLIB_AVAILABLE_IN_ALL
GLogFunc g_log_set_default_handler (GLogFunc log_func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_log (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *format,
...) G_GNUC_PRINTF (3, 4);
GLIB_AVAILABLE_IN_ALL
void g_logv (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *format,
va_list args) G_GNUC_PRINTF(3, 0);
GLIB_AVAILABLE_IN_ALL
GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain,
GLogLevelFlags fatal_mask);
GLIB_AVAILABLE_IN_ALL
GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask);
/* Structured logging mechanism. */
/**
* GLogWriterOutput:
* @G_LOG_WRITER_HANDLED: Log writer has handled the log entry.
* @G_LOG_WRITER_UNHANDLED: Log writer could not handle the log entry.
*
* Return values from #GLogWriterFuncs to indicate whether the given log entry
* was successfully handled by the writer, or whether there was an error in
* handling it (and hence a fallback writer should be used).
*
* If a #GLogWriterFunc ignores a log entry, it should return
* %G_LOG_WRITER_HANDLED.
*
* Since: 2.50
*/
typedef enum
{
G_LOG_WRITER_HANDLED = 1,
G_LOG_WRITER_UNHANDLED = 0,
} GLogWriterOutput;
/**
* GLogField:
* @key: field name (UTF-8 string)
* @value: field value (arbitrary bytes)
* @length: length of @value, in bytes, or -1 if it is nul-terminated
*
* Structure representing a single field in a structured log entry. See
* g_log_structured() for details.
*
* Log fields may contain arbitrary values, including binary with embedded nul
* bytes. If the field contains a string, the string must be UTF-8 encoded and
* have a trailing nul byte. Otherwise, @length must be set to a non-negative
* value.
*
* Since: 2.50
*/
typedef struct _GLogField GLogField;
struct _GLogField
{
const gchar *key;
gconstpointer value;
gssize length;
};
/**
* GLogWriterFunc:
* @log_level: log level of the message
* @fields: (array length=n_fields): fields forming the message
* @n_fields: number of @fields
* @user_data: user data passed to g_log_set_writer_func()
*
* Writer function for log entries. A log entry is a collection of one or more
* #GLogFields, using the standard [field names from journal
* specification](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html).
* See g_log_structured() for more information.
*
* Writer functions must ignore fields which they do not recognise, unless they
* can write arbitrary binary output, as field values may be arbitrary binary.
*
* @log_level is guaranteed to be included in @fields as the `PRIORITY` field,
* but is provided separately for convenience of deciding whether or where to
* output the log entry.
*
* Returns: %G_LOG_WRITER_HANDLED if the log entry was handled successfully;
* %G_LOG_WRITER_UNHANDLED otherwise
* Since: 2.50
*/
typedef GLogWriterOutput (*GLogWriterFunc) (GLogLevelFlags log_level,
const GLogField *fields,
gsize n_fields,
gpointer user_data);
GLIB_AVAILABLE_IN_2_50
void g_log_structured (const gchar *log_domain,
GLogLevelFlags log_level,
...);
GLIB_AVAILABLE_IN_2_50
void g_log_structured_array (GLogLevelFlags log_level,
const GLogField *fields,
gsize n_fields);
GLIB_AVAILABLE_IN_2_50
void g_log_variant (const gchar *log_domain,
GLogLevelFlags log_level,
GVariant *fields);
GLIB_AVAILABLE_IN_2_50
void g_log_set_writer_func (GLogWriterFunc func,
gpointer user_data,
GDestroyNotify user_data_free);
GLIB_AVAILABLE_IN_2_50
gboolean g_log_writer_supports_color (gint output_fd);
GLIB_AVAILABLE_IN_2_50
gboolean g_log_writer_is_journald (gint output_fd);
GLIB_AVAILABLE_IN_2_50
gchar *g_log_writer_format_fields (GLogLevelFlags log_level,
const GLogField *fields,
gsize n_fields,
gboolean use_color);
GLIB_AVAILABLE_IN_2_50
GLogWriterOutput g_log_writer_journald (GLogLevelFlags log_level,
const GLogField *fields,
gsize n_fields,
gpointer user_data);
GLIB_AVAILABLE_IN_2_50
GLogWriterOutput g_log_writer_standard_streams (GLogLevelFlags log_level,
const GLogField *fields,
gsize n_fields,
gpointer user_data);
GLIB_AVAILABLE_IN_2_50
GLogWriterOutput g_log_writer_default (GLogLevelFlags log_level,
const GLogField *fields,
gsize n_fields,
gpointer user_data);
/**
* G_DEBUG_HERE:
*
* A convenience form of g_log_structured(), recommended to be added to
* functions when debugging. It prints the current monotonic time and the code
* location using %G_STRLOC.
*
* Since: 2.50
*/
#define G_DEBUG_HERE() \
g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", "%" G_GINT64_FORMAT ": %s", \
g_get_monotonic_time (), G_STRLOC)
/* internal */
void _g_log_fallback_handler (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer unused_data);
/* Internal functions, used to implement the following macros */
GLIB_AVAILABLE_IN_ALL
void g_return_if_fail_warning (const char *log_domain,
const char *pretty_function,
const char *expression) G_ANALYZER_NORETURN;
GLIB_AVAILABLE_IN_ALL
void g_warn_message (const char *domain,
const char *file,
int line,
const char *func,
const char *warnexpr) G_ANALYZER_NORETURN;
GLIB_DEPRECATED
void g_assert_warning (const char *log_domain,
const char *file,
const int line,
const char *pretty_function,
const char *expression) G_GNUC_NORETURN;
#ifndef G_LOG_DOMAIN
#define G_LOG_DOMAIN ((gchar*) 0)
#endif /* G_LOG_DOMAIN */
# 282 "/usr/include/glib-2.0/glib/gmessages.h" 3
#if defined(G_HAVE_ISO_VARARGS) && !G_ANALYZER_ANALYZING
#ifdef G_LOG_USE_STRUCTURED
#define g_error(...) G_STMT_START { \
g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", __VA_ARGS__); \
for (;;) ; \
} G_STMT_END
#define g_message(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", __VA_ARGS__)
#define g_critical(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", __VA_ARGS__)
#define g_warning(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", __VA_ARGS__)
#define g_info(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", __VA_ARGS__)
#define g_debug(...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", __VA_ARGS__)
#else
# 319 "/usr/include/glib-2.0/glib/gmessages.h" 3
/* for(;;) ; so that GCC knows that control doesn't go past g_error().
* Put space before ending semicolon to avoid C++ build warnings.
*/
#define g_error(...) G_STMT_START { \
g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_ERROR, \
__VA_ARGS__); \
for (;;) ; \
} G_STMT_END
#define g_message(...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_MESSAGE, \
__VA_ARGS__)
#define g_critical(...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_CRITICAL, \
__VA_ARGS__)
#define g_warning(...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_WARNING, \
__VA_ARGS__)
#define g_info(...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_INFO, \
__VA_ARGS__)
#define g_debug(...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_DEBUG, \
__VA_ARGS__)
#endif
# 344 "/usr/include/glib-2.0/glib/gmessages.h" 3
#elif defined(G_HAVE_GNUC_VARARGS) && !G_ANALYZER_ANALYZING
# 345 "/usr/include/glib-2.0/glib/gmessages.h" 3
#ifdef G_LOG_USE_STRUCTURED
#define g_error(format...) G_STMT_START { \
g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", format); \
for (;;) ; \
} G_STMT_END
#define g_message(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", format)
#define g_critical(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", format)
#define g_warning(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", format)
#define g_info(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", format)
#define g_debug(format...) g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \
"CODE_FILE", __FILE__, \
"CODE_LINE", G_STRINGIFY (__LINE__), \
"CODE_FUNC", G_STRFUNC, \
"MESSAGE", format)
#else
# 380 "/usr/include/glib-2.0/glib/gmessages.h" 3
#define g_error(format...) G_STMT_START { \
g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_ERROR, \
format); \
for (;;) ; \
} G_STMT_END
#define g_message(format...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_MESSAGE, \
format)
#define g_critical(format...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_CRITICAL, \
format)
#define g_warning(format...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_WARNING, \
format)
#define g_info(format...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_INFO, \
format)
#define g_debug(format...) g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_DEBUG, \
format)
#endif
# 403 "/usr/include/glib-2.0/glib/gmessages.h" 3
#else /* no varargs macros */
# 404 "/usr/include/glib-2.0/glib/gmessages.h" 3
static void g_error (const gchar *format, ...) G_GNUC_NORETURN G_ANALYZER_NORETURN;
static void g_critical (const gchar *format, ...) G_ANALYZER_NORETURN;
static void
g_error (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args);
va_end (args);
for(;;) ;
}
static void
g_message (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format, args);
va_end (args);
}
static void
g_critical (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format, args);
va_end (args);
}
static void
g_warning (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format, args);
va_end (args);
}
static void
g_info (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format, args);
va_end (args);
}
static void
g_debug (const gchar *format,
...)
{
va_list args;
va_start (args, format);
g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args);
va_end (args);
}
#endif /* !__GNUC__ */
# 464 "/usr/include/glib-2.0/glib/gmessages.h" 3
/**
* GPrintFunc:
* @string: the message to output
*
* Specifies the type of the print handler functions.
* These are called with the complete formatted string to output.
*/
typedef void (*GPrintFunc) (const gchar *string);
GLIB_AVAILABLE_IN_ALL
void g_print (const gchar *format,
...) G_GNUC_PRINTF (1, 2);
GLIB_AVAILABLE_IN_ALL
GPrintFunc g_set_print_handler (GPrintFunc func);
GLIB_AVAILABLE_IN_ALL
void g_printerr (const gchar *format,
...) G_GNUC_PRINTF (1, 2);
GLIB_AVAILABLE_IN_ALL
GPrintFunc g_set_printerr_handler (GPrintFunc func);
/**
* g_warn_if_reached:
*
* Logs a warning.
*
* Since: 2.16
*/
#define g_warn_if_reached() \
do { \
g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); \
} while (0)
/**
* g_warn_if_fail:
* @expr: the expression to check
*
* Logs a warning if the expression is not true.
*
* Since: 2.16
*/
#define g_warn_if_fail(expr) \
do { \
if G_LIKELY (expr) ; \
else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, #expr); \
} while (0)
#ifdef G_DISABLE_CHECKS
/**
* g_return_if_fail:
* @expr: the expression to check
*
* Verifies that the expression @expr, usually representing a precondition,
* evaluates to %TRUE. If the function returns a value, use
* g_return_val_if_fail() instead.
*
* If @expr evaluates to %FALSE, the current function should be considered to
* have undefined behaviour (a programmer error). The only correct solution
* to such an error is to change the module that is calling the current
* function, so that it avoids this incorrect call.
*
* To make this undefined behaviour visible, if @expr evaluates to %FALSE,
* the result is usually that a critical message is logged and the current
* function returns.
*
* If G_DISABLE_CHECKS is defined then the check is not performed. You
* should therefore not depend on any side effects of @expr.
*/
#define g_return_if_fail(expr) G_STMT_START{ (void)0; }G_STMT_END
/**
* g_return_val_if_fail:
* @expr: the expression to check
* @val: the value to return from the current function
* if the expression is not true
*
* Verifies that the expression @expr, usually representing a precondition,
* evaluates to %TRUE. If the function does not return a value, use
* g_return_if_fail() instead.
*
* If @expr evaluates to %FALSE, the current function should be considered to
* have undefined behaviour (a programmer error). The only correct solution
* to such an error is to change the module that is calling the current
* function, so that it avoids this incorrect call.
*
* To make this undefined behaviour visible, if @expr evaluates to %FALSE,
* the result is usually that a critical message is logged and @val is
* returned from the current function.
*
* If G_DISABLE_CHECKS is defined then the check is not performed. You
* should therefore not depend on any side effects of @expr.
*/
#define g_return_val_if_fail(expr,val) G_STMT_START{ (void)0; }G_STMT_END
/**
* g_return_if_reached:
*
* Logs a critical message and returns from the current function.
* This can only be used in functions which do not return a value.
*/
#define g_return_if_reached() G_STMT_START{ return; }G_STMT_END
/**
* g_return_val_if_reached:
* @val: the value to return from the current function
*
* Logs a critical message and returns @val.
*/
#define g_return_val_if_reached(val) G_STMT_START{ return (val); }G_STMT_END
#else /* !G_DISABLE_CHECKS */
# 575 "/usr/include/glib-2.0/glib/gmessages.h" 3
#define g_return_if_fail(expr) G_STMT_START{ \
if G_LIKELY(expr) { } else \
{ \
g_return_if_fail_warning (G_LOG_DOMAIN, \
G_STRFUNC, \
#expr); \
return; \
}; }G_STMT_END
#define g_return_val_if_fail(expr,val) G_STMT_START{ \
if G_LIKELY(expr) { } else \
{ \
g_return_if_fail_warning (G_LOG_DOMAIN, \
G_STRFUNC, \
#expr); \
return (val); \
}; }G_STMT_END
#define g_return_if_reached() G_STMT_START{ \
g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_CRITICAL, \
"file %s: line %d (%s): should not be reached", \
__FILE__, \
__LINE__, \
G_STRFUNC); \
return; }G_STMT_END
#define g_return_val_if_reached(val) G_STMT_START{ \
g_log (G_LOG_DOMAIN, \
G_LOG_LEVEL_CRITICAL, \
"file %s: line %d (%s): should not be reached", \
__FILE__, \
__LINE__, \
G_STRFUNC); \
return (val); }G_STMT_END
#endif /* !G_DISABLE_CHECKS */
# 613 "/usr/include/glib-2.0/glib/gmessages.h" 3
G_END_DECLS
#endif /* __G_MESSAGES_H__ */
# 617 "/usr/include/glib-2.0/glib/gmessages.h" 3
# 63 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gnode.h>
#endif /* expanded by -frewrite-includes */
# 63 "/usr/include/glib-2.0/glib.h" 3
# 64 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/goption.h>
#endif /* expanded by -frewrite-includes */
# 64 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/goption.h" 1 3
/* goption.h - Option parser
*
* Copyright (C) 2004 Anders Carlsson <andersca@gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_OPTION_H__
#define __G_OPTION_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 25 "/usr/include/glib-2.0/glib/goption.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/goption.h" 3
# 27 "/usr/include/glib-2.0/glib/goption.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gquark.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/goption.h" 3
# 28 "/usr/include/glib-2.0/glib/goption.h" 3
G_BEGIN_DECLS
/**
* GOptionContext:
*
* A `GOptionContext` struct defines which options
* are accepted by the commandline option parser. The struct has only private
* fields and should not be directly accessed.
*/
typedef struct _GOptionContext GOptionContext;
/**
* GOptionGroup:
*
* A `GOptionGroup` struct defines the options in a single
* group. The struct has only private fields and should not be directly accessed.
*
* All options in a group share the same translation function. Libraries which
* need to parse commandline options are expected to provide a function for
* getting a `GOptionGroup` holding their options, which
* the application can then add to its #GOptionContext.
*/
typedef struct _GOptionGroup GOptionGroup;
typedef struct _GOptionEntry GOptionEntry;
/**
* GOptionFlags:
* @G_OPTION_FLAG_NONE: No flags. Since: 2.42.
* @G_OPTION_FLAG_HIDDEN: The option doesn't appear in `--help` output.
* @G_OPTION_FLAG_IN_MAIN: The option appears in the main section of the
* `--help` output, even if it is defined in a group.
* @G_OPTION_FLAG_REVERSE: For options of the %G_OPTION_ARG_NONE kind, this
* flag indicates that the sense of the option is reversed.
* @G_OPTION_FLAG_NO_ARG: For options of the %G_OPTION_ARG_CALLBACK kind,
* this flag indicates that the callback does not take any argument
* (like a %G_OPTION_ARG_NONE option). Since 2.8
* @G_OPTION_FLAG_FILENAME: For options of the %G_OPTION_ARG_CALLBACK
* kind, this flag indicates that the argument should be passed to the
* callback in the GLib filename encoding rather than UTF-8. Since 2.8
* @G_OPTION_FLAG_OPTIONAL_ARG: For options of the %G_OPTION_ARG_CALLBACK
* kind, this flag indicates that the argument supply is optional.
* If no argument is given then data of %GOptionParseFunc will be
* set to NULL. Since 2.8
* @G_OPTION_FLAG_NOALIAS: This flag turns off the automatic conflict
* resolution which prefixes long option names with `groupname-` if
* there is a conflict. This option should only be used in situations
* where aliasing is necessary to model some legacy commandline interface.
* It is not safe to use this option, unless all option groups are under
* your direct control. Since 2.8.
*
* Flags which modify individual options.
*/
typedef enum
{
G_OPTION_FLAG_NONE = 0,
G_OPTION_FLAG_HIDDEN = 1 << 0,
G_OPTION_FLAG_IN_MAIN = 1 << 1,
G_OPTION_FLAG_REVERSE = 1 << 2,
G_OPTION_FLAG_NO_ARG = 1 << 3,
G_OPTION_FLAG_FILENAME = 1 << 4,
G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5,
G_OPTION_FLAG_NOALIAS = 1 << 6
} GOptionFlags;
/**
* GOptionArg:
* @G_OPTION_ARG_NONE: No extra argument. This is useful for simple flags.
* @G_OPTION_ARG_STRING: The option takes a string argument.
* @G_OPTION_ARG_INT: The option takes an integer argument.
* @G_OPTION_ARG_CALLBACK: The option provides a callback (of type
* #GOptionArgFunc) to parse the extra argument.
* @G_OPTION_ARG_FILENAME: The option takes a filename as argument.
* @G_OPTION_ARG_STRING_ARRAY: The option takes a string argument, multiple
* uses of the option are collected into an array of strings.
* @G_OPTION_ARG_FILENAME_ARRAY: The option takes a filename as argument,
* multiple uses of the option are collected into an array of strings.
* @G_OPTION_ARG_DOUBLE: The option takes a double argument. The argument
* can be formatted either for the user's locale or for the "C" locale.
* Since 2.12
* @G_OPTION_ARG_INT64: The option takes a 64-bit integer. Like
* %G_OPTION_ARG_INT but for larger numbers. The number can be in
* decimal base, or in hexadecimal (when prefixed with `0x`, for
* example, `0xffffffff`). Since 2.12
*
* The #GOptionArg enum values determine which type of extra argument the
* options expect to find. If an option expects an extra argument, it can
* be specified in several ways; with a short option: `-x arg`, with a long
* option: `--name arg` or combined in a single argument: `--name=arg`.
*/
typedef enum
{
G_OPTION_ARG_NONE,
G_OPTION_ARG_STRING,
G_OPTION_ARG_INT,
G_OPTION_ARG_CALLBACK,
G_OPTION_ARG_FILENAME,
G_OPTION_ARG_STRING_ARRAY,
G_OPTION_ARG_FILENAME_ARRAY,
G_OPTION_ARG_DOUBLE,
G_OPTION_ARG_INT64
} GOptionArg;
/**
* GOptionArgFunc:
* @option_name: The name of the option being parsed. This will be either a
* single dash followed by a single letter (for a short name) or two dashes
* followed by a long option name.
* @value: The value to be parsed.
* @data: User data added to the #GOptionGroup containing the option when it
* was created with g_option_group_new()
* @error: A return location for errors. The error code %G_OPTION_ERROR_FAILED
* is intended to be used for errors in #GOptionArgFunc callbacks.
*
* The type of function to be passed as callback for %G_OPTION_ARG_CALLBACK
* options.
*
* Returns: %TRUE if the option was successfully parsed, %FALSE if an error
* occurred, in which case @error should be set with g_set_error()
*/
typedef gboolean (*GOptionArgFunc) (const gchar *option_name,
const gchar *value,
gpointer data,
GError **error);
/**
* GOptionParseFunc:
* @context: The active #GOptionContext
* @group: The group to which the function belongs
* @data: User data added to the #GOptionGroup containing the option when it
* was created with g_option_group_new()
* @error: A return location for error details
*
* The type of function that can be called before and after parsing.
*
* Returns: %TRUE if the function completed successfully, %FALSE if an error
* occurred, in which case @error should be set with g_set_error()
*/
typedef gboolean (*GOptionParseFunc) (GOptionContext *context,
GOptionGroup *group,
gpointer data,
GError **error);
/**
* GOptionErrorFunc:
* @context: The active #GOptionContext
* @group: The group to which the function belongs
* @data: User data added to the #GOptionGroup containing the option when it
* was created with g_option_group_new()
* @error: The #GError containing details about the parse error
*
* The type of function to be used as callback when a parse error occurs.
*/
typedef void (*GOptionErrorFunc) (GOptionContext *context,
GOptionGroup *group,
gpointer data,
GError **error);
/**
* G_OPTION_ERROR:
*
* Error domain for option parsing. Errors in this domain will
* be from the #GOptionError enumeration. See #GError for information on
* error domains.
*/
#define G_OPTION_ERROR (g_option_error_quark ())
/**
* GOptionError:
* @G_OPTION_ERROR_UNKNOWN_OPTION: An option was not known to the parser.
* This error will only be reported, if the parser hasn't been instructed
* to ignore unknown options, see g_option_context_set_ignore_unknown_options().
* @G_OPTION_ERROR_BAD_VALUE: A value couldn't be parsed.
* @G_OPTION_ERROR_FAILED: A #GOptionArgFunc callback failed.
*
* Error codes returned by option parsing.
*/
typedef enum
{
G_OPTION_ERROR_UNKNOWN_OPTION,
G_OPTION_ERROR_BAD_VALUE,
G_OPTION_ERROR_FAILED
} GOptionError;
GLIB_AVAILABLE_IN_ALL
GQuark g_option_error_quark (void);
/**
* GOptionEntry:
* @long_name: The long name of an option can be used to specify it
* in a commandline as `--long_name`. Every option must have a
* long name. To resolve conflicts if multiple option groups contain
* the same long name, it is also possible to specify the option as
* `--groupname-long_name`.
* @short_name: If an option has a short name, it can be specified
* `-short_name` in a commandline. @short_name must be a printable
* ASCII character different from '-', or zero if the option has no
* short name.
* @flags: Flags from #GOptionFlags
* @arg: The type of the option, as a #GOptionArg
* @arg_data: If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data
* must point to a #GOptionArgFunc callback function, which will be
* called to handle the extra argument. Otherwise, @arg_data is a
* pointer to a location to store the value, the required type of
* the location depends on the @arg type:
* - %G_OPTION_ARG_NONE: %gboolean
* - %G_OPTION_ARG_STRING: %gchar*
* - %G_OPTION_ARG_INT: %gint
* - %G_OPTION_ARG_FILENAME: %gchar*
* - %G_OPTION_ARG_STRING_ARRAY: %gchar**
* - %G_OPTION_ARG_FILENAME_ARRAY: %gchar**
* - %G_OPTION_ARG_DOUBLE: %gdouble
* If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME,
* the location will contain a newly allocated string if the option
* was given. That string needs to be freed by the callee using g_free().
* Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or
* %G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev().
* @description: the description for the option in `--help`
* output. The @description is translated using the @translate_func
* of the group, see g_option_group_set_translation_domain().
* @arg_description: The placeholder to use for the extra argument parsed
* by the option in `--help` output. The @arg_description is translated
* using the @translate_func of the group, see
* g_option_group_set_translation_domain().
*
* A GOptionEntry struct defines a single option. To have an effect, they
* must be added to a #GOptionGroup with g_option_context_add_main_entries()
* or g_option_group_add_entries().
*/
struct _GOptionEntry
{
const gchar *long_name;
gchar short_name;
gint flags;
GOptionArg arg;
gpointer arg_data;
const gchar *description;
const gchar *arg_description;
};
/**
* G_OPTION_REMAINING:
*
* If a long option in the main group has this name, it is not treated as a
* regular option. Instead it collects all non-option arguments which would
* otherwise be left in `argv`. The option must be of type
* %G_OPTION_ARG_CALLBACK, %G_OPTION_ARG_STRING_ARRAY
* or %G_OPTION_ARG_FILENAME_ARRAY.
*
*
* Using #G_OPTION_REMAINING instead of simply scanning `argv`
* for leftover arguments has the advantage that GOption takes care of
* necessary encoding conversions for strings or filenames.
*
* Since: 2.6
*/
#define G_OPTION_REMAINING ""
GLIB_AVAILABLE_IN_ALL
GOptionContext *g_option_context_new (const gchar *parameter_string);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_summary (GOptionContext *context,
const gchar *summary);
GLIB_AVAILABLE_IN_ALL
const gchar * g_option_context_get_summary (GOptionContext *context);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_description (GOptionContext *context,
const gchar *description);
GLIB_AVAILABLE_IN_ALL
const gchar * g_option_context_get_description (GOptionContext *context);
GLIB_AVAILABLE_IN_ALL
void g_option_context_free (GOptionContext *context);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_help_enabled (GOptionContext *context,
gboolean help_enabled);
GLIB_AVAILABLE_IN_ALL
gboolean g_option_context_get_help_enabled (GOptionContext *context);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_ignore_unknown_options (GOptionContext *context,
gboolean ignore_unknown);
GLIB_AVAILABLE_IN_ALL
gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context);
GLIB_AVAILABLE_IN_2_44
void g_option_context_set_strict_posix (GOptionContext *context,
gboolean strict_posix);
GLIB_AVAILABLE_IN_2_44
gboolean g_option_context_get_strict_posix (GOptionContext *context);
GLIB_AVAILABLE_IN_ALL
void g_option_context_add_main_entries (GOptionContext *context,
const GOptionEntry *entries,
const gchar *translation_domain);
GLIB_AVAILABLE_IN_ALL
gboolean g_option_context_parse (GOptionContext *context,
gint *argc,
gchar ***argv,
GError **error);
GLIB_AVAILABLE_IN_2_40
gboolean g_option_context_parse_strv (GOptionContext *context,
gchar ***arguments,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_translate_func (GOptionContext *context,
GTranslateFunc func,
gpointer data,
GDestroyNotify destroy_notify);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_translation_domain (GOptionContext *context,
const gchar *domain);
GLIB_AVAILABLE_IN_ALL
void g_option_context_add_group (GOptionContext *context,
GOptionGroup *group);
GLIB_AVAILABLE_IN_ALL
void g_option_context_set_main_group (GOptionContext *context,
GOptionGroup *group);
GLIB_AVAILABLE_IN_ALL
GOptionGroup *g_option_context_get_main_group (GOptionContext *context);
GLIB_AVAILABLE_IN_ALL
gchar *g_option_context_get_help (GOptionContext *context,
gboolean main_help,
GOptionGroup *group);
GLIB_AVAILABLE_IN_ALL
GOptionGroup *g_option_group_new (const gchar *name,
const gchar *description,
const gchar *help_description,
gpointer user_data,
GDestroyNotify destroy);
GLIB_AVAILABLE_IN_ALL
void g_option_group_set_parse_hooks (GOptionGroup *group,
GOptionParseFunc pre_parse_func,
GOptionParseFunc post_parse_func);
GLIB_AVAILABLE_IN_ALL
void g_option_group_set_error_hook (GOptionGroup *group,
GOptionErrorFunc error_func);
GLIB_DEPRECATED_IN_2_44
void g_option_group_free (GOptionGroup *group);
GLIB_AVAILABLE_IN_2_44
GOptionGroup *g_option_group_ref (GOptionGroup *group);
GLIB_AVAILABLE_IN_2_44
void g_option_group_unref (GOptionGroup *group);
GLIB_AVAILABLE_IN_ALL
void g_option_group_add_entries (GOptionGroup *group,
const GOptionEntry *entries);
GLIB_AVAILABLE_IN_ALL
void g_option_group_set_translate_func (GOptionGroup *group,
GTranslateFunc func,
gpointer data,
GDestroyNotify destroy_notify);
GLIB_AVAILABLE_IN_ALL
void g_option_group_set_translation_domain (GOptionGroup *group,
const gchar *domain);
G_END_DECLS
#endif /* __G_OPTION_H__ */
# 388 "/usr/include/glib-2.0/glib/goption.h" 3
# 65 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gpattern.h>
#endif /* expanded by -frewrite-includes */
# 65 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gpattern.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_PATTERN_H__
#define __G_PATTERN_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 24 "/usr/include/glib-2.0/glib/gpattern.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/glib-2.0/glib/gpattern.h" 3
# 26 "/usr/include/glib-2.0/glib/gpattern.h" 3
G_BEGIN_DECLS
typedef struct _GPatternSpec GPatternSpec;
GLIB_AVAILABLE_IN_ALL
GPatternSpec* g_pattern_spec_new (const gchar *pattern);
GLIB_AVAILABLE_IN_ALL
void g_pattern_spec_free (GPatternSpec *pspec);
GLIB_AVAILABLE_IN_ALL
gboolean g_pattern_spec_equal (GPatternSpec *pspec1,
GPatternSpec *pspec2);
GLIB_AVAILABLE_IN_ALL
gboolean g_pattern_match (GPatternSpec *pspec,
guint string_length,
const gchar *string,
const gchar *string_reversed);
GLIB_AVAILABLE_IN_ALL
gboolean g_pattern_match_string (GPatternSpec *pspec,
const gchar *string);
GLIB_AVAILABLE_IN_ALL
gboolean g_pattern_match_simple (const gchar *pattern,
const gchar *string);
G_END_DECLS
#endif /* __G_PATTERN_H__ */
# 54 "/usr/include/glib-2.0/glib/gpattern.h" 3
# 66 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gpoll.h>
#endif /* expanded by -frewrite-includes */
# 66 "/usr/include/glib-2.0/glib.h" 3
# 67 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gprimes.h>
#endif /* expanded by -frewrite-includes */
# 67 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gprimes.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_PRIMES_H__
#define __G_PRIMES_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gprimes.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gprimes.h" 3
# 33 "/usr/include/glib-2.0/glib/gprimes.h" 3
G_BEGIN_DECLS
/* Prime numbers.
*/
/* This function returns prime numbers spaced by approximately 1.5-2.0
* and is for use in resizing data structures which prefer
* prime-valued sizes. The closest spaced prime function returns the
* next largest prime, or the highest it knows about which is about
* MAXINT/4.
*/
GLIB_AVAILABLE_IN_ALL
guint g_spaced_primes_closest (guint num) G_GNUC_CONST;
G_END_DECLS
#endif /* __G_PRIMES_H__ */
# 51 "/usr/include/glib-2.0/glib/gprimes.h" 3
# 68 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gqsort.h>
#endif /* expanded by -frewrite-includes */
# 68 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gqsort.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_QSORT_H__
#define __G_QSORT_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gqsort.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gqsort.h" 3
# 33 "/usr/include/glib-2.0/glib/gqsort.h" 3
G_BEGIN_DECLS
GLIB_AVAILABLE_IN_ALL
void g_qsort_with_data (gconstpointer pbase,
gint total_elems,
gsize size,
GCompareDataFunc compare_func,
gpointer user_data);
G_END_DECLS
#endif /* __G_QSORT_H__ */
# 46 "/usr/include/glib-2.0/glib/gqsort.h" 3
# 69 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gquark.h>
#endif /* expanded by -frewrite-includes */
# 69 "/usr/include/glib-2.0/glib.h" 3
# 70 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gqueue.h>
#endif /* expanded by -frewrite-includes */
# 70 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gqueue.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_QUEUE_H__
#define __G_QUEUE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gqueue.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/glist.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gqueue.h" 3
# 33 "/usr/include/glib-2.0/glib/gqueue.h" 3
G_BEGIN_DECLS
typedef struct _GQueue GQueue;
/**
* GQueue:
* @head: a pointer to the first element of the queue
* @tail: a pointer to the last element of the queue
* @length: the number of elements in the queue
*
* Contains the public fields of a
* [Queue][glib-Double-ended-Queues].
*/
struct _GQueue
{
GList *head;
GList *tail;
guint length;
};
/**
* G_QUEUE_INIT:
*
* A statically-allocated #GQueue must be initialized with this
* macro before it can be used. This macro can be used to initialize
* a variable, but it cannot be assigned to a variable. In that case
* you have to use g_queue_init().
*
* |[
* GQueue my_queue = G_QUEUE_INIT;
* ]|
*
* Since: 2.14
*/
#define G_QUEUE_INIT { NULL, NULL, 0 }
/* Queues
*/
GLIB_AVAILABLE_IN_ALL
GQueue* g_queue_new (void);
GLIB_AVAILABLE_IN_ALL
void g_queue_free (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_queue_free_full (GQueue *queue,
GDestroyNotify free_func);
GLIB_AVAILABLE_IN_ALL
void g_queue_init (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_queue_clear (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
gboolean g_queue_is_empty (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
guint g_queue_get_length (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_queue_reverse (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
GQueue * g_queue_copy (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
void g_queue_foreach (GQueue *queue,
GFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
GList * g_queue_find (GQueue *queue,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
GList * g_queue_find_custom (GQueue *queue,
gconstpointer data,
GCompareFunc func);
GLIB_AVAILABLE_IN_ALL
void g_queue_sort (GQueue *queue,
GCompareDataFunc compare_func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_queue_push_head (GQueue *queue,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_queue_push_tail (GQueue *queue,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_queue_push_nth (GQueue *queue,
gpointer data,
gint n);
GLIB_AVAILABLE_IN_ALL
gpointer g_queue_pop_head (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_queue_pop_tail (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_queue_pop_nth (GQueue *queue,
guint n);
GLIB_AVAILABLE_IN_ALL
gpointer g_queue_peek_head (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_queue_peek_tail (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
gpointer g_queue_peek_nth (GQueue *queue,
guint n);
GLIB_AVAILABLE_IN_ALL
gint g_queue_index (GQueue *queue,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
gboolean g_queue_remove (GQueue *queue,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
guint g_queue_remove_all (GQueue *queue,
gconstpointer data);
GLIB_AVAILABLE_IN_ALL
void g_queue_insert_before (GQueue *queue,
GList *sibling,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_queue_insert_after (GQueue *queue,
GList *sibling,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_queue_insert_sorted (GQueue *queue,
gpointer data,
GCompareDataFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_queue_push_head_link (GQueue *queue,
GList *link_);
GLIB_AVAILABLE_IN_ALL
void g_queue_push_tail_link (GQueue *queue,
GList *link_);
GLIB_AVAILABLE_IN_ALL
void g_queue_push_nth_link (GQueue *queue,
gint n,
GList *link_);
GLIB_AVAILABLE_IN_ALL
GList* g_queue_pop_head_link (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
GList* g_queue_pop_tail_link (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
GList* g_queue_pop_nth_link (GQueue *queue,
guint n);
GLIB_AVAILABLE_IN_ALL
GList* g_queue_peek_head_link (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
GList* g_queue_peek_tail_link (GQueue *queue);
GLIB_AVAILABLE_IN_ALL
GList* g_queue_peek_nth_link (GQueue *queue,
guint n);
GLIB_AVAILABLE_IN_ALL
gint g_queue_link_index (GQueue *queue,
GList *link_);
GLIB_AVAILABLE_IN_ALL
void g_queue_unlink (GQueue *queue,
GList *link_);
GLIB_AVAILABLE_IN_ALL
void g_queue_delete_link (GQueue *queue,
GList *link_);
G_END_DECLS
#endif /* __G_QUEUE_H__ */
# 191 "/usr/include/glib-2.0/glib/gqueue.h" 3
# 71 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/grand.h>
#endif /* expanded by -frewrite-includes */
# 71 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/grand.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_RAND_H__
#define __G_RAND_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/grand.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/grand.h" 3
# 33 "/usr/include/glib-2.0/glib/grand.h" 3
G_BEGIN_DECLS
typedef struct _GRand GRand;
/* GRand - a good and fast random number generator: Mersenne Twister
* see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for more info.
* The range functions return a value in the intervall [begin, end).
* int -> [0..2^32-1]
* int_range -> [begin..end-1]
* double -> [0..1)
* double_range -> [begin..end)
*/
GLIB_AVAILABLE_IN_ALL
GRand* g_rand_new_with_seed (guint32 seed);
GLIB_AVAILABLE_IN_ALL
GRand* g_rand_new_with_seed_array (const guint32 *seed,
guint seed_length);
GLIB_AVAILABLE_IN_ALL
GRand* g_rand_new (void);
GLIB_AVAILABLE_IN_ALL
void g_rand_free (GRand *rand_);
GLIB_AVAILABLE_IN_ALL
GRand* g_rand_copy (GRand *rand_);
GLIB_AVAILABLE_IN_ALL
void g_rand_set_seed (GRand *rand_,
guint32 seed);
GLIB_AVAILABLE_IN_ALL
void g_rand_set_seed_array (GRand *rand_,
const guint32 *seed,
guint seed_length);
#define g_rand_boolean(rand_) ((g_rand_int (rand_) & (1 << 15)) != 0)
GLIB_AVAILABLE_IN_ALL
guint32 g_rand_int (GRand *rand_);
GLIB_AVAILABLE_IN_ALL
gint32 g_rand_int_range (GRand *rand_,
gint32 begin,
gint32 end);
GLIB_AVAILABLE_IN_ALL
gdouble g_rand_double (GRand *rand_);
GLIB_AVAILABLE_IN_ALL
gdouble g_rand_double_range (GRand *rand_,
gdouble begin,
gdouble end);
GLIB_AVAILABLE_IN_ALL
void g_random_set_seed (guint32 seed);
#define g_random_boolean() ((g_random_int () & (1 << 15)) != 0)
GLIB_AVAILABLE_IN_ALL
guint32 g_random_int (void);
GLIB_AVAILABLE_IN_ALL
gint32 g_random_int_range (gint32 begin,
gint32 end);
GLIB_AVAILABLE_IN_ALL
gdouble g_random_double (void);
GLIB_AVAILABLE_IN_ALL
gdouble g_random_double_range (gdouble begin,
gdouble end);
G_END_DECLS
#endif /* __G_RAND_H__ */
# 100 "/usr/include/glib-2.0/glib/grand.h" 3
# 72 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gregex.h>
#endif /* expanded by -frewrite-includes */
# 72 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gregex.h" 1 3
/* GRegex -- regular expression API wrapper around PCRE.
*
* Copyright (C) 1999, 2000 Scott Wimer
* Copyright (C) 2004, Matthias Clasen <mclasen@redhat.com>
* Copyright (C) 2005 - 2007, Marco Barisione <marco@barisione.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef __G_REGEX_H__
#define __G_REGEX_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 28 "/usr/include/glib-2.0/glib/gregex.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gregex.h" 3
# 30 "/usr/include/glib-2.0/glib/gregex.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstring.h>
#endif /* expanded by -frewrite-includes */
# 30 "/usr/include/glib-2.0/glib/gregex.h" 3
# 31 "/usr/include/glib-2.0/glib/gregex.h" 3
G_BEGIN_DECLS
/**
* GRegexError:
* @G_REGEX_ERROR_COMPILE: Compilation of the regular expression failed.
* @G_REGEX_ERROR_OPTIMIZE: Optimization of the regular expression failed.
* @G_REGEX_ERROR_REPLACE: Replacement failed due to an ill-formed replacement
* string.
* @G_REGEX_ERROR_MATCH: The match process failed.
* @G_REGEX_ERROR_INTERNAL: Internal error of the regular expression engine.
* Since 2.16
* @G_REGEX_ERROR_STRAY_BACKSLASH: "\\" at end of pattern. Since 2.16
* @G_REGEX_ERROR_MISSING_CONTROL_CHAR: "\\c" at end of pattern. Since 2.16
* @G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: Unrecognized character follows "\\".
* Since 2.16
* @G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: Numbers out of order in "{}"
* quantifier. Since 2.16
* @G_REGEX_ERROR_QUANTIFIER_TOO_BIG: Number too big in "{}" quantifier.
* Since 2.16
* @G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: Missing terminating "]" for
* character class. Since 2.16
* @G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: Invalid escape sequence
* in character class. Since 2.16
* @G_REGEX_ERROR_RANGE_OUT_OF_ORDER: Range out of order in character class.
* Since 2.16
* @G_REGEX_ERROR_NOTHING_TO_REPEAT: Nothing to repeat. Since 2.16
* @G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: Unrecognized character after "(?",
* "(?<" or "(?P". Since 2.16
* @G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: POSIX named classes are
* supported only within a class. Since 2.16
* @G_REGEX_ERROR_UNMATCHED_PARENTHESIS: Missing terminating ")" or ")"
* without opening "(". Since 2.16
* @G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: Reference to non-existent
* subpattern. Since 2.16
* @G_REGEX_ERROR_UNTERMINATED_COMMENT: Missing terminating ")" after comment.
* Since 2.16
* @G_REGEX_ERROR_EXPRESSION_TOO_LARGE: Regular expression too large.
* Since 2.16
* @G_REGEX_ERROR_MEMORY_ERROR: Failed to get memory. Since 2.16
* @G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: Lookbehind assertion is not
* fixed length. Since 2.16
* @G_REGEX_ERROR_MALFORMED_CONDITION: Malformed number or name after "(?(".
* Since 2.16
* @G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: Conditional group contains
* more than two branches. Since 2.16
* @G_REGEX_ERROR_ASSERTION_EXPECTED: Assertion expected after "(?(".
* Since 2.16
* @G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: Unknown POSIX class name.
* Since 2.16
* @G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: POSIX collating
* elements are not supported. Since 2.16
* @G_REGEX_ERROR_HEX_CODE_TOO_LARGE: Character value in "\\x{...}" sequence
* is too large. Since 2.16
* @G_REGEX_ERROR_INVALID_CONDITION: Invalid condition "(?(0)". Since 2.16
* @G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: \\C not allowed in
* lookbehind assertion. Since 2.16
* @G_REGEX_ERROR_INFINITE_LOOP: Recursive call could loop indefinitely.
* Since 2.16
* @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: Missing terminator
* in subpattern name. Since 2.16
* @G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: Two named subpatterns have
* the same name. Since 2.16
* @G_REGEX_ERROR_MALFORMED_PROPERTY: Malformed "\\P" or "\\p" sequence.
* Since 2.16
* @G_REGEX_ERROR_UNKNOWN_PROPERTY: Unknown property name after "\\P" or
* "\\p". Since 2.16
* @G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: Subpattern name is too long
* (maximum 32 characters). Since 2.16
* @G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: Too many named subpatterns (maximum
* 10,000). Since 2.16
* @G_REGEX_ERROR_INVALID_OCTAL_VALUE: Octal value is greater than "\\377".
* Since 2.16
* @G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: "DEFINE" group contains more
* than one branch. Since 2.16
* @G_REGEX_ERROR_DEFINE_REPETION: Repeating a "DEFINE" group is not allowed.
* This error is never raised. Since: 2.16 Deprecated: 2.34
* @G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: Inconsistent newline options.
* Since 2.16
* @G_REGEX_ERROR_MISSING_BACK_REFERENCE: "\\g" is not followed by a braced,
* angle-bracketed, or quoted name or number, or by a plain number. Since: 2.16
* @G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: relative reference must not be zero. Since: 2.34
* @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: the backtracing
* control verb used does not allow an argument. Since: 2.34
* @G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: unknown backtracing
* control verb. Since: 2.34
* @G_REGEX_ERROR_NUMBER_TOO_BIG: number is too big in escape sequence. Since: 2.34
* @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: Missing subpattern name. Since: 2.34
* @G_REGEX_ERROR_MISSING_DIGIT: Missing digit. Since 2.34
* @G_REGEX_ERROR_INVALID_DATA_CHARACTER: In JavaScript compatibility mode,
* "[" is an invalid data character. Since: 2.34
* @G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: different names for subpatterns of the
* same number are not allowed. Since: 2.34
* @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: the backtracing control
* verb requires an argument. Since: 2.34
* @G_REGEX_ERROR_INVALID_CONTROL_CHAR: "\\c" must be followed by an ASCII
* character. Since: 2.34
* @G_REGEX_ERROR_MISSING_NAME: "\\k" is not followed by a braced, angle-bracketed, or
* quoted name. Since: 2.34
* @G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: "\\N" is not supported in a class. Since: 2.34
* @G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: too many forward references. Since: 2.34
* @G_REGEX_ERROR_NAME_TOO_LONG: the name is too long in "(*MARK)", "(*PRUNE)",
* "(*SKIP)", or "(*THEN)". Since: 2.34
* @G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: the character value in the \\u sequence is
* too large. Since: 2.34
*
* Error codes returned by regular expressions functions.
*
* Since: 2.14
*/
typedef enum
{
G_REGEX_ERROR_COMPILE,
G_REGEX_ERROR_OPTIMIZE,
G_REGEX_ERROR_REPLACE,
G_REGEX_ERROR_MATCH,
G_REGEX_ERROR_INTERNAL,
/* These are the error codes from PCRE + 100 */
G_REGEX_ERROR_STRAY_BACKSLASH = 101,
G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102,
G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103,
G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104,
G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105,
G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106,
G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107,
G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108,
G_REGEX_ERROR_NOTHING_TO_REPEAT = 109,
G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112,
G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113,
G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114,
G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115,
G_REGEX_ERROR_UNTERMINATED_COMMENT = 118,
G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120,
G_REGEX_ERROR_MEMORY_ERROR = 121,
G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125,
G_REGEX_ERROR_MALFORMED_CONDITION = 126,
G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127,
G_REGEX_ERROR_ASSERTION_EXPECTED = 128,
G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130,
G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131,
G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134,
G_REGEX_ERROR_INVALID_CONDITION = 135,
G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136,
G_REGEX_ERROR_INFINITE_LOOP = 140,
G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142,
G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143,
G_REGEX_ERROR_MALFORMED_PROPERTY = 146,
G_REGEX_ERROR_UNKNOWN_PROPERTY = 147,
G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148,
G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149,
G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151,
G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154,
G_REGEX_ERROR_DEFINE_REPETION = 155,
G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156,
G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157,
G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE = 158,
G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN = 159,
G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB = 160,
G_REGEX_ERROR_NUMBER_TOO_BIG = 161,
G_REGEX_ERROR_MISSING_SUBPATTERN_NAME = 162,
G_REGEX_ERROR_MISSING_DIGIT = 163,
G_REGEX_ERROR_INVALID_DATA_CHARACTER = 164,
G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME = 165,
G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED = 166,
G_REGEX_ERROR_INVALID_CONTROL_CHAR = 168,
G_REGEX_ERROR_MISSING_NAME = 169,
G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS = 171,
G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES = 172,
G_REGEX_ERROR_NAME_TOO_LONG = 175,
G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE = 176
} GRegexError;
/**
* G_REGEX_ERROR:
*
* Error domain for regular expressions. Errors in this domain will be
* from the #GRegexError enumeration. See #GError for information on
* error domains.
*
* Since: 2.14
*/
#define G_REGEX_ERROR g_regex_error_quark ()
GLIB_AVAILABLE_IN_ALL
GQuark g_regex_error_quark (void);
/**
* GRegexCompileFlags:
* @G_REGEX_CASELESS: Letters in the pattern match both upper- and
* lowercase letters. This option can be changed within a pattern
* by a "(?i)" option setting.
* @G_REGEX_MULTILINE: By default, GRegex treats the strings as consisting
* of a single line of characters (even if it actually contains
* newlines). The "start of line" metacharacter ("^") matches only
* at the start of the string, while the "end of line" metacharacter
* ("$") matches only at the end of the string, or before a terminating
* newline (unless #G_REGEX_DOLLAR_ENDONLY is set). When
* #G_REGEX_MULTILINE is set, the "start of line" and "end of line"
* constructs match immediately following or immediately before any
* newline in the string, respectively, as well as at the very start
* and end. This can be changed within a pattern by a "(?m)" option
* setting.
* @G_REGEX_DOTALL: A dot metacharater (".") in the pattern matches all
* characters, including newlines. Without it, newlines are excluded.
* This option can be changed within a pattern by a ("?s") option setting.
* @G_REGEX_EXTENDED: Whitespace data characters in the pattern are
* totally ignored except when escaped or inside a character class.
* Whitespace does not include the VT character (code 11). In addition,
* characters between an unescaped "#" outside a character class and
* the next newline character, inclusive, are also ignored. This can
* be changed within a pattern by a "(?x)" option setting.
* @G_REGEX_ANCHORED: The pattern is forced to be "anchored", that is,
* it is constrained to match only at the first matching point in the
* string that is being searched. This effect can also be achieved by
* appropriate constructs in the pattern itself such as the "^"
* metacharater.
* @G_REGEX_DOLLAR_ENDONLY: A dollar metacharacter ("$") in the pattern
* matches only at the end of the string. Without this option, a
* dollar also matches immediately before the final character if
* it is a newline (but not before any other newlines). This option
* is ignored if #G_REGEX_MULTILINE is set.
* @G_REGEX_UNGREEDY: Inverts the "greediness" of the quantifiers so that
* they are not greedy by default, but become greedy if followed by "?".
* It can also be set by a "(?U)" option setting within the pattern.
* @G_REGEX_RAW: Usually strings must be valid UTF-8 strings, using this
* flag they are considered as a raw sequence of bytes.
* @G_REGEX_NO_AUTO_CAPTURE: Disables the use of numbered capturing
* parentheses in the pattern. Any opening parenthesis that is not
* followed by "?" behaves as if it were followed by "?:" but named
* parentheses can still be used for capturing (and they acquire numbers
* in the usual way).
* @G_REGEX_OPTIMIZE: Optimize the regular expression. If the pattern will
* be used many times, then it may be worth the effort to optimize it
* to improve the speed of matches.
* @G_REGEX_FIRSTLINE: Limits an unanchored pattern to match before (or at) the
* first newline. Since: 2.34
* @G_REGEX_DUPNAMES: Names used to identify capturing subpatterns need not
* be unique. This can be helpful for certain types of pattern when it
* is known that only one instance of the named subpattern can ever be
* matched.
* @G_REGEX_NEWLINE_CR: Usually any newline character or character sequence is
* recognized. If this option is set, the only recognized newline character
* is '\r'.
* @G_REGEX_NEWLINE_LF: Usually any newline character or character sequence is
* recognized. If this option is set, the only recognized newline character
* is '\n'.
* @G_REGEX_NEWLINE_CRLF: Usually any newline character or character sequence is
* recognized. If this option is set, the only recognized newline character
* sequence is '\r\n'.
* @G_REGEX_NEWLINE_ANYCRLF: Usually any newline character or character sequence
* is recognized. If this option is set, the only recognized newline character
* sequences are '\r', '\n', and '\r\n'. Since: 2.34
* @G_REGEX_BSR_ANYCRLF: Usually any newline character or character sequence
* is recognised. If this option is set, then "\R" only recognizes the newline
* characters '\r', '\n' and '\r\n'. Since: 2.34
* @G_REGEX_JAVASCRIPT_COMPAT: Changes behaviour so that it is compatible with
* JavaScript rather than PCRE. Since: 2.34
*
* Flags specifying compile-time options.
*
* Since: 2.14
*/
/* Remember to update G_REGEX_COMPILE_MASK in gregex.c after
* adding a new flag.
*/
typedef enum
{
G_REGEX_CASELESS = 1 << 0,
G_REGEX_MULTILINE = 1 << 1,
G_REGEX_DOTALL = 1 << 2,
G_REGEX_EXTENDED = 1 << 3,
G_REGEX_ANCHORED = 1 << 4,
G_REGEX_DOLLAR_ENDONLY = 1 << 5,
G_REGEX_UNGREEDY = 1 << 9,
G_REGEX_RAW = 1 << 11,
G_REGEX_NO_AUTO_CAPTURE = 1 << 12,
G_REGEX_OPTIMIZE = 1 << 13,
G_REGEX_FIRSTLINE = 1 << 18,
G_REGEX_DUPNAMES = 1 << 19,
G_REGEX_NEWLINE_CR = 1 << 20,
G_REGEX_NEWLINE_LF = 1 << 21,
G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF,
G_REGEX_NEWLINE_ANYCRLF = G_REGEX_NEWLINE_CR | 1 << 22,
G_REGEX_BSR_ANYCRLF = 1 << 23,
G_REGEX_JAVASCRIPT_COMPAT = 1 << 25
} GRegexCompileFlags;
/**
* GRegexMatchFlags:
* @G_REGEX_MATCH_ANCHORED: The pattern is forced to be "anchored", that is,
* it is constrained to match only at the first matching point in the
* string that is being searched. This effect can also be achieved by
* appropriate constructs in the pattern itself such as the "^"
* metacharater.
* @G_REGEX_MATCH_NOTBOL: Specifies that first character of the string is
* not the beginning of a line, so the circumflex metacharacter should
* not match before it. Setting this without #G_REGEX_MULTILINE (at
* compile time) causes circumflex never to match. This option affects
* only the behaviour of the circumflex metacharacter, it does not
* affect "\A".
* @G_REGEX_MATCH_NOTEOL: Specifies that the end of the subject string is
* not the end of a line, so the dollar metacharacter should not match
* it nor (except in multiline mode) a newline immediately before it.
* Setting this without #G_REGEX_MULTILINE (at compile time) causes
* dollar never to match. This option affects only the behaviour of
* the dollar metacharacter, it does not affect "\Z" or "\z".
* @G_REGEX_MATCH_NOTEMPTY: An empty string is not considered to be a valid
* match if this option is set. If there are alternatives in the pattern,
* they are tried. If all the alternatives match the empty string, the
* entire match fails. For example, if the pattern "a?b?" is applied to
* a string not beginning with "a" or "b", it matches the empty string
* at the start of the string. With this flag set, this match is not
* valid, so GRegex searches further into the string for occurrences
* of "a" or "b".
* @G_REGEX_MATCH_PARTIAL: Turns on the partial matching feature, for more
* documentation on partial matching see g_match_info_is_partial_match().
* @G_REGEX_MATCH_NEWLINE_CR: Overrides the newline definition set when
* creating a new #GRegex, setting the '\r' character as line terminator.
* @G_REGEX_MATCH_NEWLINE_LF: Overrides the newline definition set when
* creating a new #GRegex, setting the '\n' character as line terminator.
* @G_REGEX_MATCH_NEWLINE_CRLF: Overrides the newline definition set when
* creating a new #GRegex, setting the '\r\n' characters sequence as line terminator.
* @G_REGEX_MATCH_NEWLINE_ANY: Overrides the newline definition set when
* creating a new #GRegex, any Unicode newline sequence
* is recognised as a newline. These are '\r', '\n' and '\rn', and the
* single characters U+000B LINE TABULATION, U+000C FORM FEED (FF),
* U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and
* U+2029 PARAGRAPH SEPARATOR.
* @G_REGEX_MATCH_NEWLINE_ANYCRLF: Overrides the newline definition set when
* creating a new #GRegex; any '\r', '\n', or '\r\n' character sequence
* is recognized as a newline. Since: 2.34
* @G_REGEX_MATCH_BSR_ANYCRLF: Overrides the newline definition for "\R" set when
* creating a new #GRegex; only '\r', '\n', or '\r\n' character sequences
* are recognized as a newline by "\R". Since: 2.34
* @G_REGEX_MATCH_BSR_ANY: Overrides the newline definition for "\R" set when
* creating a new #GRegex; any Unicode newline character or character sequence
* are recognized as a newline by "\R". These are '\r', '\n' and '\rn', and the
* single characters U+000B LINE TABULATION, U+000C FORM FEED (FF),
* U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and
* U+2029 PARAGRAPH SEPARATOR. Since: 2.34
* @G_REGEX_MATCH_PARTIAL_SOFT: An alias for #G_REGEX_MATCH_PARTIAL. Since: 2.34
* @G_REGEX_MATCH_PARTIAL_HARD: Turns on the partial matching feature. In contrast to
* to #G_REGEX_MATCH_PARTIAL_SOFT, this stops matching as soon as a partial match
* is found, without continuing to search for a possible complete match. See
* g_match_info_is_partial_match() for more information. Since: 2.34
* @G_REGEX_MATCH_NOTEMPTY_ATSTART: Like #G_REGEX_MATCH_NOTEMPTY, but only applied to
* the start of the matched string. For anchored
* patterns this can only happen for pattern containing "\K". Since: 2.34
*
* Flags specifying match-time options.
*
* Since: 2.14
*/
/* Remember to update G_REGEX_MATCH_MASK in gregex.c after
* adding a new flag. */
typedef enum
{
G_REGEX_MATCH_ANCHORED = 1 << 4,
G_REGEX_MATCH_NOTBOL = 1 << 7,
G_REGEX_MATCH_NOTEOL = 1 << 8,
G_REGEX_MATCH_NOTEMPTY = 1 << 10,
G_REGEX_MATCH_PARTIAL = 1 << 15,
G_REGEX_MATCH_NEWLINE_CR = 1 << 20,
G_REGEX_MATCH_NEWLINE_LF = 1 << 21,
G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF,
G_REGEX_MATCH_NEWLINE_ANY = 1 << 22,
G_REGEX_MATCH_NEWLINE_ANYCRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_ANY,
G_REGEX_MATCH_BSR_ANYCRLF = 1 << 23,
G_REGEX_MATCH_BSR_ANY = 1 << 24,
G_REGEX_MATCH_PARTIAL_SOFT = G_REGEX_MATCH_PARTIAL,
G_REGEX_MATCH_PARTIAL_HARD = 1 << 27,
G_REGEX_MATCH_NOTEMPTY_ATSTART = 1 << 28
} GRegexMatchFlags;
/**
* GRegex:
*
* A GRegex is the "compiled" form of a regular expression pattern.
* This structure is opaque and its fields cannot be accessed directly.
*
* Since: 2.14
*/
typedef struct _GRegex GRegex;
/**
* GMatchInfo:
*
* A GMatchInfo is an opaque struct used to return information about
* matches.
*/
typedef struct _GMatchInfo GMatchInfo;
/**
* GRegexEvalCallback:
* @match_info: the #GMatchInfo generated by the match.
* Use g_match_info_get_regex() and g_match_info_get_string() if you
* need the #GRegex or the matched string.
* @result: a #GString containing the new string
* @user_data: user data passed to g_regex_replace_eval()
*
* Specifies the type of the function passed to g_regex_replace_eval().
* It is called for each occurrence of the pattern in the string passed
* to g_regex_replace_eval(), and it should append the replacement to
* @result.
*
* Returns: %FALSE to continue the replacement process, %TRUE to stop it
*
* Since: 2.14
*/
typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info,
GString *result,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
GRegex *g_regex_new (const gchar *pattern,
GRegexCompileFlags compile_options,
GRegexMatchFlags match_options,
GError **error);
GLIB_AVAILABLE_IN_ALL
GRegex *g_regex_ref (GRegex *regex);
GLIB_AVAILABLE_IN_ALL
void g_regex_unref (GRegex *regex);
GLIB_AVAILABLE_IN_ALL
const gchar *g_regex_get_pattern (const GRegex *regex);
GLIB_AVAILABLE_IN_ALL
gint g_regex_get_max_backref (const GRegex *regex);
GLIB_AVAILABLE_IN_ALL
gint g_regex_get_capture_count (const GRegex *regex);
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_get_has_cr_or_lf (const GRegex *regex);
GLIB_AVAILABLE_IN_2_38
gint g_regex_get_max_lookbehind (const GRegex *regex);
GLIB_AVAILABLE_IN_ALL
gint g_regex_get_string_number (const GRegex *regex,
const gchar *name);
GLIB_AVAILABLE_IN_ALL
gchar *g_regex_escape_string (const gchar *string,
gint length);
GLIB_AVAILABLE_IN_ALL
gchar *g_regex_escape_nul (const gchar *string,
gint length);
GLIB_AVAILABLE_IN_ALL
GRegexCompileFlags g_regex_get_compile_flags (const GRegex *regex);
GLIB_AVAILABLE_IN_ALL
GRegexMatchFlags g_regex_get_match_flags (const GRegex *regex);
/* Matching. */
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_match_simple (const gchar *pattern,
const gchar *string,
GRegexCompileFlags compile_options,
GRegexMatchFlags match_options);
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_match (const GRegex *regex,
const gchar *string,
GRegexMatchFlags match_options,
GMatchInfo **match_info);
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_match_full (const GRegex *regex,
const gchar *string,
gssize string_len,
gint start_position,
GRegexMatchFlags match_options,
GMatchInfo **match_info,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_match_all (const GRegex *regex,
const gchar *string,
GRegexMatchFlags match_options,
GMatchInfo **match_info);
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_match_all_full (const GRegex *regex,
const gchar *string,
gssize string_len,
gint start_position,
GRegexMatchFlags match_options,
GMatchInfo **match_info,
GError **error);
/* String splitting. */
GLIB_AVAILABLE_IN_ALL
gchar **g_regex_split_simple (const gchar *pattern,
const gchar *string,
GRegexCompileFlags compile_options,
GRegexMatchFlags match_options);
GLIB_AVAILABLE_IN_ALL
gchar **g_regex_split (const GRegex *regex,
const gchar *string,
GRegexMatchFlags match_options);
GLIB_AVAILABLE_IN_ALL
gchar **g_regex_split_full (const GRegex *regex,
const gchar *string,
gssize string_len,
gint start_position,
GRegexMatchFlags match_options,
gint max_tokens,
GError **error);
/* String replacement. */
GLIB_AVAILABLE_IN_ALL
gchar *g_regex_replace (const GRegex *regex,
const gchar *string,
gssize string_len,
gint start_position,
const gchar *replacement,
GRegexMatchFlags match_options,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_regex_replace_literal (const GRegex *regex,
const gchar *string,
gssize string_len,
gint start_position,
const gchar *replacement,
GRegexMatchFlags match_options,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_regex_replace_eval (const GRegex *regex,
const gchar *string,
gssize string_len,
gint start_position,
GRegexMatchFlags match_options,
GRegexEvalCallback eval,
gpointer user_data,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_regex_check_replacement (const gchar *replacement,
gboolean *has_references,
GError **error);
/* Match info */
GLIB_AVAILABLE_IN_ALL
GRegex *g_match_info_get_regex (const GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
const gchar *g_match_info_get_string (const GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
GMatchInfo *g_match_info_ref (GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
void g_match_info_unref (GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
void g_match_info_free (GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
gboolean g_match_info_next (GMatchInfo *match_info,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_match_info_matches (const GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
gint g_match_info_get_match_count (const GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
gboolean g_match_info_is_partial_match (const GMatchInfo *match_info);
GLIB_AVAILABLE_IN_ALL
gchar *g_match_info_expand_references(const GMatchInfo *match_info,
const gchar *string_to_expand,
GError **error);
GLIB_AVAILABLE_IN_ALL
gchar *g_match_info_fetch (const GMatchInfo *match_info,
gint match_num);
GLIB_AVAILABLE_IN_ALL
gboolean g_match_info_fetch_pos (const GMatchInfo *match_info,
gint match_num,
gint *start_pos,
gint *end_pos);
GLIB_AVAILABLE_IN_ALL
gchar *g_match_info_fetch_named (const GMatchInfo *match_info,
const gchar *name);
GLIB_AVAILABLE_IN_ALL
gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info,
const gchar *name,
gint *start_pos,
gint *end_pos);
GLIB_AVAILABLE_IN_ALL
gchar **g_match_info_fetch_all (const GMatchInfo *match_info);
G_END_DECLS
#endif /* __G_REGEX_H__ */
# 611 "/usr/include/glib-2.0/glib/gregex.h" 3
# 73 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gscanner.h>
#endif /* expanded by -frewrite-includes */
# 73 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gscanner.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_SCANNER_H__
#define __G_SCANNER_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gscanner.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gdataset.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gscanner.h" 3
# 33 "/usr/include/glib-2.0/glib/gscanner.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/ghash.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gscanner.h" 3
# 34 "/usr/include/glib-2.0/glib/gscanner.h" 3
G_BEGIN_DECLS
typedef struct _GScanner GScanner;
typedef struct _GScannerConfig GScannerConfig;
typedef union _GTokenValue GTokenValue;
typedef void (*GScannerMsgFunc) (GScanner *scanner,
gchar *message,
gboolean error);
/* GScanner: Flexible lexical scanner for general purpose.
*/
/* Character sets */
#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define G_CSET_a_2_z "abcdefghijklmnopqrstuvwxyz"
#define G_CSET_DIGITS "0123456789"
#define G_CSET_LATINC "\300\301\302\303\304\305\306"\
"\307\310\311\312\313\314\315\316\317\320"\
"\321\322\323\324\325\326"\
"\330\331\332\333\334\335\336"
#define G_CSET_LATINS "\337\340\341\342\343\344\345\346"\
"\347\350\351\352\353\354\355\356\357\360"\
"\361\362\363\364\365\366"\
"\370\371\372\373\374\375\376\377"
/* Error types */
typedef enum
{
G_ERR_UNKNOWN,
G_ERR_UNEXP_EOF,
G_ERR_UNEXP_EOF_IN_STRING,
G_ERR_UNEXP_EOF_IN_COMMENT,
G_ERR_NON_DIGIT_IN_CONST,
G_ERR_DIGIT_RADIX,
G_ERR_FLOAT_RADIX,
G_ERR_FLOAT_MALFORMED
} GErrorType;
/* Token types */
typedef enum
{
G_TOKEN_EOF = 0,
G_TOKEN_LEFT_PAREN = '(',
G_TOKEN_RIGHT_PAREN = ')',
G_TOKEN_LEFT_CURLY = '{',
G_TOKEN_RIGHT_CURLY = '}',
G_TOKEN_LEFT_BRACE = '[',
G_TOKEN_RIGHT_BRACE = ']',
G_TOKEN_EQUAL_SIGN = '=',
G_TOKEN_COMMA = ',',
G_TOKEN_NONE = 256,
G_TOKEN_ERROR,
G_TOKEN_CHAR,
G_TOKEN_BINARY,
G_TOKEN_OCTAL,
G_TOKEN_INT,
G_TOKEN_HEX,
G_TOKEN_FLOAT,
G_TOKEN_STRING,
G_TOKEN_SYMBOL,
G_TOKEN_IDENTIFIER,
G_TOKEN_IDENTIFIER_NULL,
G_TOKEN_COMMENT_SINGLE,
G_TOKEN_COMMENT_MULTI,
/*< private >*/
G_TOKEN_LAST
} GTokenType;
union _GTokenValue
{
gpointer v_symbol;
gchar *v_identifier;
gulong v_binary;
gulong v_octal;
gulong v_int;
guint64 v_int64;
gdouble v_float;
gulong v_hex;
gchar *v_string;
gchar *v_comment;
guchar v_char;
guint v_error;
};
struct _GScannerConfig
{
/* Character sets
*/
gchar *cset_skip_characters; /* default: " \t\n" */
gchar *cset_identifier_first;
gchar *cset_identifier_nth;
gchar *cpair_comment_single; /* default: "#\n" */
/* Should symbol lookup work case sensitive?
*/
guint case_sensitive : 1;
/* Boolean values to be adjusted "on the fly"
* to configure scanning behaviour.
*/
guint skip_comment_multi : 1; /* C like comment */
guint skip_comment_single : 1; /* single line comment */
guint scan_comment_multi : 1; /* scan multi line comments? */
guint scan_identifier : 1;
guint scan_identifier_1char : 1;
guint scan_identifier_NULL : 1;
guint scan_symbols : 1;
guint scan_binary : 1;
guint scan_octal : 1;
guint scan_float : 1;
guint scan_hex : 1; /* '0x0ff0' */
guint scan_hex_dollar : 1; /* '$0ff0' */
guint scan_string_sq : 1; /* string: 'anything' */
guint scan_string_dq : 1; /* string: "\\-escapes!\n" */
guint numbers_2_int : 1; /* bin, octal, hex => int */
guint int_2_float : 1; /* int => G_TOKEN_FLOAT? */
guint identifier_2_string : 1;
guint char_2_token : 1; /* return G_TOKEN_CHAR? */
guint symbol_2_token : 1;
guint scope_0_fallback : 1; /* try scope 0 on lookups? */
guint store_int64 : 1; /* use value.v_int64 rather than v_int */
/*< private >*/
guint padding_dummy;
};
struct _GScanner
{
/* unused fields */
gpointer user_data;
guint max_parse_errors;
/* g_scanner_error() increments this field */
guint parse_errors;
/* name of input stream, featured by the default message handler */
const gchar *input_name;
/* quarked data */
GData *qdata;
/* link into the scanner configuration */
GScannerConfig *config;
/* fields filled in after g_scanner_get_next_token() */
GTokenType token;
GTokenValue value;
guint line;
guint position;
/* fields filled in after g_scanner_peek_next_token() */
GTokenType next_token;
GTokenValue next_value;
guint next_line;
guint next_position;
/*< private >*/
/* to be considered private */
GHashTable *symbol_table;
gint input_fd;
const gchar *text;
const gchar *text_end;
gchar *buffer;
guint scope_id;
/*< public >*/
/* handler function for _warn and _error */
GScannerMsgFunc msg_handler;
};
GLIB_AVAILABLE_IN_ALL
GScanner* g_scanner_new (const GScannerConfig *config_templ);
GLIB_AVAILABLE_IN_ALL
void g_scanner_destroy (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
void g_scanner_input_file (GScanner *scanner,
gint input_fd);
GLIB_AVAILABLE_IN_ALL
void g_scanner_sync_file_offset (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
void g_scanner_input_text (GScanner *scanner,
const gchar *text,
guint text_len);
GLIB_AVAILABLE_IN_ALL
GTokenType g_scanner_get_next_token (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
GTokenType g_scanner_peek_next_token (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
GTokenType g_scanner_cur_token (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
GTokenValue g_scanner_cur_value (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
guint g_scanner_cur_line (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
guint g_scanner_cur_position (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
gboolean g_scanner_eof (GScanner *scanner);
GLIB_AVAILABLE_IN_ALL
guint g_scanner_set_scope (GScanner *scanner,
guint scope_id);
GLIB_AVAILABLE_IN_ALL
void g_scanner_scope_add_symbol (GScanner *scanner,
guint scope_id,
const gchar *symbol,
gpointer value);
GLIB_AVAILABLE_IN_ALL
void g_scanner_scope_remove_symbol (GScanner *scanner,
guint scope_id,
const gchar *symbol);
GLIB_AVAILABLE_IN_ALL
gpointer g_scanner_scope_lookup_symbol (GScanner *scanner,
guint scope_id,
const gchar *symbol);
GLIB_AVAILABLE_IN_ALL
void g_scanner_scope_foreach_symbol (GScanner *scanner,
guint scope_id,
GHFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
gpointer g_scanner_lookup_symbol (GScanner *scanner,
const gchar *symbol);
GLIB_AVAILABLE_IN_ALL
void g_scanner_unexp_token (GScanner *scanner,
GTokenType expected_token,
const gchar *identifier_spec,
const gchar *symbol_spec,
const gchar *symbol_name,
const gchar *message,
gint is_error);
GLIB_AVAILABLE_IN_ALL
void g_scanner_error (GScanner *scanner,
const gchar *format,
...) G_GNUC_PRINTF (2,3);
GLIB_AVAILABLE_IN_ALL
void g_scanner_warn (GScanner *scanner,
const gchar *format,
...) G_GNUC_PRINTF (2,3);
#ifndef G_DISABLE_DEPRECATED
/* keep downward source compatibility */
#define g_scanner_add_symbol( scanner, symbol, value ) G_STMT_START { \
g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \
} G_STMT_END
#define g_scanner_remove_symbol( scanner, symbol ) G_STMT_START { \
g_scanner_scope_remove_symbol ((scanner), 0, (symbol)); \
} G_STMT_END
#define g_scanner_foreach_symbol( scanner, func, data ) G_STMT_START { \
g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \
} G_STMT_END
/* The following two functions are deprecated and will be removed in
* the next major release. They do no good. */
#define g_scanner_freeze_symbol_table(scanner) ((void)0)
#define g_scanner_thaw_symbol_table(scanner) ((void)0)
#endif /* G_DISABLE_DEPRECATED */
# 300 "/usr/include/glib-2.0/glib/gscanner.h" 3
G_END_DECLS
#endif /* __G_SCANNER_H__ */
# 304 "/usr/include/glib-2.0/glib/gscanner.h" 3
# 74 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gsequence.h>
#endif /* expanded by -frewrite-includes */
# 74 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gsequence.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
* Soeren Sandmann (sandmann@daimi.au.dk)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_SEQUENCE_H__
#define __G_SEQUENCE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 25 "/usr/include/glib-2.0/glib/gsequence.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/gsequence.h" 3
# 27 "/usr/include/glib-2.0/glib/gsequence.h" 3
G_BEGIN_DECLS
typedef struct _GSequence GSequence;
typedef struct _GSequenceNode GSequenceIter;
typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
GSequenceIter *b,
gpointer data);
/* GSequence */
GLIB_AVAILABLE_IN_ALL
GSequence * g_sequence_new (GDestroyNotify data_destroy);
GLIB_AVAILABLE_IN_ALL
void g_sequence_free (GSequence *seq);
GLIB_AVAILABLE_IN_ALL
gint g_sequence_get_length (GSequence *seq);
GLIB_AVAILABLE_IN_ALL
void g_sequence_foreach (GSequence *seq,
GFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_foreach_range (GSequenceIter *begin,
GSequenceIter *end,
GFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_sort (GSequence *seq,
GCompareDataFunc cmp_func,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_sort_iter (GSequence *seq,
GSequenceIterCompareFunc cmp_func,
gpointer cmp_data);
GLIB_AVAILABLE_IN_2_48
gboolean g_sequence_is_empty (GSequence *seq);
/* Getting iters */
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_get_begin_iter (GSequence *seq);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_get_end_iter (GSequence *seq);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq,
gint pos);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_append (GSequence *seq,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_prepend (GSequence *seq,
gpointer data);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_insert_before (GSequenceIter *iter,
gpointer data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_move (GSequenceIter *src,
GSequenceIter *dest);
GLIB_AVAILABLE_IN_ALL
void g_sequence_swap (GSequenceIter *a,
GSequenceIter *b);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_insert_sorted (GSequence *seq,
gpointer data,
GCompareDataFunc cmp_func,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq,
gpointer data,
GSequenceIterCompareFunc iter_cmp,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_sort_changed (GSequenceIter *iter,
GCompareDataFunc cmp_func,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_sort_changed_iter (GSequenceIter *iter,
GSequenceIterCompareFunc iter_cmp,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
void g_sequence_remove (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
void g_sequence_remove_range (GSequenceIter *begin,
GSequenceIter *end);
GLIB_AVAILABLE_IN_ALL
void g_sequence_move_range (GSequenceIter *dest,
GSequenceIter *begin,
GSequenceIter *end);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_search (GSequence *seq,
gpointer data,
GCompareDataFunc cmp_func,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_search_iter (GSequence *seq,
gpointer data,
GSequenceIterCompareFunc iter_cmp,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_lookup (GSequence *seq,
gpointer data,
GCompareDataFunc cmp_func,
gpointer cmp_data);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_lookup_iter (GSequence *seq,
gpointer data,
GSequenceIterCompareFunc iter_cmp,
gpointer cmp_data);
/* Dereferencing */
GLIB_AVAILABLE_IN_ALL
gpointer g_sequence_get (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
void g_sequence_set (GSequenceIter *iter,
gpointer data);
/* Operations on GSequenceIter * */
GLIB_AVAILABLE_IN_ALL
gboolean g_sequence_iter_is_begin (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
gboolean g_sequence_iter_is_end (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_iter_next (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
gint g_sequence_iter_get_position (GSequenceIter *iter);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_iter_move (GSequenceIter *iter,
gint delta);
GLIB_AVAILABLE_IN_ALL
GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter);
/* Search */
GLIB_AVAILABLE_IN_ALL
gint g_sequence_iter_compare (GSequenceIter *a,
GSequenceIter *b);
GLIB_AVAILABLE_IN_ALL
GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin,
GSequenceIter *end);
G_END_DECLS
#endif /* __G_SEQUENCE_H__ */
# 174 "/usr/include/glib-2.0/glib/gsequence.h" 3
# 75 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gshell.h>
#endif /* expanded by -frewrite-includes */
# 75 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gshell.h" 1 3
/* gshell.h - Shell-related utilities
*
* Copyright 2000 Red Hat, Inc.
*
* GLib is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* GLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GLib; see the file COPYING.LIB. If not, write
* to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __G_SHELL_H__
#define __G_SHELL_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 27 "/usr/include/glib-2.0/glib/gshell.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gshell.h" 3
# 29 "/usr/include/glib-2.0/glib/gshell.h" 3
G_BEGIN_DECLS
#define G_SHELL_ERROR g_shell_error_quark ()
typedef enum
{
/* mismatched or otherwise mangled quoting */
G_SHELL_ERROR_BAD_QUOTING,
/* string to be parsed was empty */
G_SHELL_ERROR_EMPTY_STRING,
G_SHELL_ERROR_FAILED
} GShellError;
GLIB_AVAILABLE_IN_ALL
GQuark g_shell_error_quark (void);
GLIB_AVAILABLE_IN_ALL
gchar* g_shell_quote (const gchar *unquoted_string);
GLIB_AVAILABLE_IN_ALL
gchar* g_shell_unquote (const gchar *quoted_string,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_shell_parse_argv (const gchar *command_line,
gint *argcp,
gchar ***argvp,
GError **error);
G_END_DECLS
#endif /* __G_SHELL_H__ */
# 60 "/usr/include/glib-2.0/glib/gshell.h" 3
# 76 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gslice.h>
#endif /* expanded by -frewrite-includes */
# 76 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gslice.h" 1 3
/* GLIB sliced memory - fast threaded memory chunk allocator
* Copyright (C) 2005 Tim Janik
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_SLICE_H__
#define __G_SLICE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 24 "/usr/include/glib-2.0/glib/gslice.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 25 "/usr/include/glib-2.0/glib/gslice.h" 3
# 26 "/usr/include/glib-2.0/glib/gslice.h" 3
G_BEGIN_DECLS
/* slices - fast allocation/release of small memory blocks
*/
GLIB_AVAILABLE_IN_ALL
gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
gpointer g_slice_copy (gsize block_size,
gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
GLIB_AVAILABLE_IN_ALL
void g_slice_free1 (gsize block_size,
gpointer mem_block);
GLIB_AVAILABLE_IN_ALL
void g_slice_free_chain_with_offset (gsize block_size,
gpointer mem_chain,
gsize next_offset);
#define g_slice_new(type) ((type*) g_slice_alloc (sizeof (type)))
#define g_slice_new0(type) ((type*) g_slice_alloc0 (sizeof (type)))
/* MemoryBlockType *
* g_slice_dup (MemoryBlockType,
* MemoryBlockType *mem_block);
* g_slice_free (MemoryBlockType,
* MemoryBlockType *mem_block);
* g_slice_free_chain (MemoryBlockType,
* MemoryBlockType *first_chain_block,
* memory_block_next_field);
* pseudo prototypes for the macro
* definitions following below.
*/
/* we go through extra hoops to ensure type safety */
#define g_slice_dup(type, mem) \
(1 ? (type*) g_slice_copy (sizeof (type), (mem)) \
: ((void) ((type*) 0 == (mem)), (type*) 0))
#define g_slice_free(type, mem) \
G_STMT_START { \
if (1) g_slice_free1 (sizeof (type), (mem)); \
else (void) ((type*) 0 == (mem)); \
} G_STMT_END
#define g_slice_free_chain(type, mem_chain, next) \
G_STMT_START { \
if (1) g_slice_free_chain_with_offset (sizeof (type), \
(mem_chain), G_STRUCT_OFFSET (type, next)); \
else (void) ((type*) 0 == (mem_chain)); \
} G_STMT_END
/* --- internal debugging API --- */
typedef enum {
G_SLICE_CONFIG_ALWAYS_MALLOC = 1,
G_SLICE_CONFIG_BYPASS_MAGAZINES,
G_SLICE_CONFIG_WORKING_SET_MSECS,
G_SLICE_CONFIG_COLOR_INCREMENT,
G_SLICE_CONFIG_CHUNK_SIZES,
G_SLICE_CONFIG_CONTENTION_COUNTER
} GSliceConfig;
GLIB_DEPRECATED_IN_2_34
void g_slice_set_config (GSliceConfig ckey, gint64 value);
GLIB_DEPRECATED_IN_2_34
gint64 g_slice_get_config (GSliceConfig ckey);
GLIB_DEPRECATED_IN_2_34
gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values);
#ifdef G_ENABLE_DEBUG
GLIB_AVAILABLE_IN_ALL
void g_slice_debug_tree_statistics (void);
#endif
# 96 "/usr/include/glib-2.0/glib/gslice.h" 3
G_END_DECLS
#endif /* __G_SLICE_H__ */
# 100 "/usr/include/glib-2.0/glib/gslice.h" 3
# 77 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gslist.h>
#endif /* expanded by -frewrite-includes */
# 77 "/usr/include/glib-2.0/glib.h" 3
# 78 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gspawn.h>
#endif /* expanded by -frewrite-includes */
# 78 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gspawn.h" 1 3
/* gspawn.h - Process launching
*
* Copyright 2000 Red Hat, Inc.
*
* GLib is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* GLib is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GLib; see the file COPYING.LIB. If not, write
* to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef __G_SPAWN_H__
#define __G_SPAWN_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 27 "/usr/include/glib-2.0/glib/gspawn.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gspawn.h" 3
# 29 "/usr/include/glib-2.0/glib/gspawn.h" 3
G_BEGIN_DECLS
/* I'm not sure I remember our proposed naming convention here. */
/**
* G_SPAWN_ERROR:
*
* Error domain for spawning processes. Errors in this domain will
* be from the #GSpawnError enumeration. See #GError for information on
* error domains.
*/
#define G_SPAWN_ERROR g_spawn_error_quark ()
/**
* GSpawnError:
* @G_SPAWN_ERROR_FORK: Fork failed due to lack of memory.
* @G_SPAWN_ERROR_READ: Read or select on pipes failed.
* @G_SPAWN_ERROR_CHDIR: Changing to working directory failed.
* @G_SPAWN_ERROR_ACCES: execv() returned `EACCES`
* @G_SPAWN_ERROR_PERM: execv() returned `EPERM`
* @G_SPAWN_ERROR_TOO_BIG: execv() returned `E2BIG`
* @G_SPAWN_ERROR_2BIG: deprecated alias for %G_SPAWN_ERROR_TOO_BIG
* @G_SPAWN_ERROR_NOEXEC: execv() returned `ENOEXEC`
* @G_SPAWN_ERROR_NAMETOOLONG: execv() returned `ENAMETOOLONG`
* @G_SPAWN_ERROR_NOENT: execv() returned `ENOENT`
* @G_SPAWN_ERROR_NOMEM: execv() returned `ENOMEM`
* @G_SPAWN_ERROR_NOTDIR: execv() returned `ENOTDIR`
* @G_SPAWN_ERROR_LOOP: execv() returned `ELOOP`
* @G_SPAWN_ERROR_TXTBUSY: execv() returned `ETXTBUSY`
* @G_SPAWN_ERROR_IO: execv() returned `EIO`
* @G_SPAWN_ERROR_NFILE: execv() returned `ENFILE`
* @G_SPAWN_ERROR_MFILE: execv() returned `EMFILE`
* @G_SPAWN_ERROR_INVAL: execv() returned `EINVAL`
* @G_SPAWN_ERROR_ISDIR: execv() returned `EISDIR`
* @G_SPAWN_ERROR_LIBBAD: execv() returned `ELIBBAD`
* @G_SPAWN_ERROR_FAILED: Some other fatal failure,
* `error->message` should explain.
*
* Error codes returned by spawning processes.
*/
typedef enum
{
G_SPAWN_ERROR_FORK, /* fork failed due to lack of memory */
G_SPAWN_ERROR_READ, /* read or select on pipes failed */
G_SPAWN_ERROR_CHDIR, /* changing to working dir failed */
G_SPAWN_ERROR_ACCES, /* execv() returned EACCES */
G_SPAWN_ERROR_PERM, /* execv() returned EPERM */
G_SPAWN_ERROR_TOO_BIG,/* execv() returned E2BIG */
#ifndef G_DISABLE_DEPRECATED
G_SPAWN_ERROR_2BIG = G_SPAWN_ERROR_TOO_BIG,
#endif
# 81 "/usr/include/glib-2.0/glib/gspawn.h" 3
G_SPAWN_ERROR_NOEXEC, /* execv() returned ENOEXEC */
G_SPAWN_ERROR_NAMETOOLONG, /* "" "" ENAMETOOLONG */
G_SPAWN_ERROR_NOENT, /* "" "" ENOENT */
G_SPAWN_ERROR_NOMEM, /* "" "" ENOMEM */
G_SPAWN_ERROR_NOTDIR, /* "" "" ENOTDIR */
G_SPAWN_ERROR_LOOP, /* "" "" ELOOP */
G_SPAWN_ERROR_TXTBUSY, /* "" "" ETXTBUSY */
G_SPAWN_ERROR_IO, /* "" "" EIO */
G_SPAWN_ERROR_NFILE, /* "" "" ENFILE */
G_SPAWN_ERROR_MFILE, /* "" "" EMFLE */
G_SPAWN_ERROR_INVAL, /* "" "" EINVAL */
G_SPAWN_ERROR_ISDIR, /* "" "" EISDIR */
G_SPAWN_ERROR_LIBBAD, /* "" "" ELIBBAD */
G_SPAWN_ERROR_FAILED /* other fatal failure, error->message
* should explain
*/
} GSpawnError;
/**
* G_SPAWN_EXIT_ERROR:
*
* Error domain used by g_spawn_check_exit_status(). The code
* will be the program exit code.
*/
#define G_SPAWN_EXIT_ERROR g_spawn_exit_error_quark ()
/**
* GSpawnChildSetupFunc:
* @user_data: user data to pass to the function.
*
* Specifies the type of the setup function passed to g_spawn_async(),
* g_spawn_sync() and g_spawn_async_with_pipes(), which can, in very
* limited ways, be used to affect the child's execution.
*
* On POSIX platforms, the function is called in the child after GLib
* has performed all the setup it plans to perform, but before calling
* exec(). Actions taken in this function will only affect the child,
* not the parent.
*
* On Windows, the function is called in the parent. Its usefulness on
* Windows is thus questionable. In many cases executing the child setup
* function in the parent can have ill effects, and you should be very
* careful when porting software to Windows that uses child setup
* functions.
*
* However, even on POSIX, you are extremely limited in what you can
* safely do from a #GSpawnChildSetupFunc, because any mutexes that were
* held by other threads in the parent process at the time of the fork()
* will still be locked in the child process, and they will never be
* unlocked (since the threads that held them don't exist in the child).
* POSIX allows only async-signal-safe functions (see signal(7)) to be
* called in the child between fork() and exec(), which drastically limits
* the usefulness of child setup functions.
*
* In particular, it is not safe to call any function which may
* call malloc(), which includes POSIX functions such as setenv().
* If you need to set up the child environment differently from
* the parent, you should use g_get_environ(), g_environ_setenv(),
* and g_environ_unsetenv(), and then pass the complete environment
* list to the `g_spawn...` function.
*/
typedef void (* GSpawnChildSetupFunc) (gpointer user_data);
/**
* GSpawnFlags:
* @G_SPAWN_DEFAULT: no flags, default behaviour
* @G_SPAWN_LEAVE_DESCRIPTORS_OPEN: the parent's open file descriptors will
* be inherited by the child; otherwise all descriptors except stdin,
* stdout and stderr will be closed before calling exec() in the child.
* @G_SPAWN_DO_NOT_REAP_CHILD: the child will not be automatically reaped;
* you must use g_child_watch_add() yourself (or call waitpid() or handle
* `SIGCHLD` yourself), or the child will become a zombie.
* @G_SPAWN_SEARCH_PATH: `argv[0]` need not be an absolute path, it will be
* looked for in the user's `PATH`.
* @G_SPAWN_STDOUT_TO_DEV_NULL: the child's standard output will be discarded,
* instead of going to the same location as the parent's standard output.
* @G_SPAWN_STDERR_TO_DEV_NULL: the child's standard error will be discarded.
* @G_SPAWN_CHILD_INHERITS_STDIN: the child will inherit the parent's standard
* input (by default, the child's standard input is attached to `/dev/null`).
* @G_SPAWN_FILE_AND_ARGV_ZERO: the first element of `argv` is the file to
* execute, while the remaining elements are the actual argument vector
* to pass to the file. Normally g_spawn_async_with_pipes() uses `argv[0]`
* as the file to execute, and passes all of `argv` to the child.
* @G_SPAWN_SEARCH_PATH_FROM_ENVP: if `argv[0]` is not an abolute path,
* it will be looked for in the `PATH` from the passed child environment.
* Since: 2.34
* @G_SPAWN_CLOEXEC_PIPES: create all pipes with the `O_CLOEXEC` flag set.
* Since: 2.40
*
* Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes().
*/
typedef enum
{
G_SPAWN_DEFAULT = 0,
G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0,
G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1,
/* look for argv[0] in the path i.e. use execvp() */
G_SPAWN_SEARCH_PATH = 1 << 2,
/* Dump output to /dev/null */
G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3,
G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4,
G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5,
G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6,
G_SPAWN_SEARCH_PATH_FROM_ENVP = 1 << 7,
G_SPAWN_CLOEXEC_PIPES = 1 << 8
} GSpawnFlags;
GLIB_AVAILABLE_IN_ALL
GQuark g_spawn_error_quark (void);
GLIB_AVAILABLE_IN_ALL
GQuark g_spawn_exit_error_quark (void);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_async (const gchar *working_directory,
gchar **argv,
gchar **envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
GPid *child_pid,
GError **error);
/* Opens pipes for non-NULL standard_output, standard_input, standard_error,
* and returns the parent's end of the pipes.
*/
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_async_with_pipes (const gchar *working_directory,
gchar **argv,
gchar **envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
GPid *child_pid,
gint *standard_input,
gint *standard_output,
gint *standard_error,
GError **error);
/* If standard_output or standard_error are non-NULL, the full
* standard output or error of the command will be placed there.
*/
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_sync (const gchar *working_directory,
gchar **argv,
gchar **envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
gchar **standard_output,
gchar **standard_error,
gint *exit_status,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_command_line_sync (const gchar *command_line,
gchar **standard_output,
gchar **standard_error,
gint *exit_status,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_command_line_async (const gchar *command_line,
GError **error);
GLIB_AVAILABLE_IN_2_34
gboolean g_spawn_check_exit_status (gint exit_status,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_spawn_close_pid (GPid pid);
#ifndef __GTK_DOC_IGNORE__
#ifdef G_OS_WIN32
#define g_spawn_async g_spawn_async_utf8
#define g_spawn_async_with_pipes g_spawn_async_with_pipes_utf8
#define g_spawn_sync g_spawn_sync_utf8
#define g_spawn_command_line_sync g_spawn_command_line_sync_utf8
#define g_spawn_command_line_async g_spawn_command_line_async_utf8
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_async_utf8 (const gchar *working_directory,
gchar **argv,
gchar **envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
GPid *child_pid,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_async_with_pipes_utf8 (const gchar *working_directory,
gchar **argv,
gchar **envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
GPid *child_pid,
gint *standard_input,
gint *standard_output,
gint *standard_error,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_sync_utf8 (const gchar *working_directory,
gchar **argv,
gchar **envp,
GSpawnFlags flags,
GSpawnChildSetupFunc child_setup,
gpointer user_data,
gchar **standard_output,
gchar **standard_error,
gint *exit_status,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_command_line_sync_utf8 (const gchar *command_line,
gchar **standard_output,
gchar **standard_error,
gint *exit_status,
GError **error);
GLIB_AVAILABLE_IN_ALL
gboolean g_spawn_command_line_async_utf8 (const gchar *command_line,
GError **error);
#endif
# 305 "/usr/include/glib-2.0/glib/gspawn.h" 3
#endif
# 306 "/usr/include/glib-2.0/glib/gspawn.h" 3
G_END_DECLS
#endif /* __G_SPAWN_H__ */
# 310 "/usr/include/glib-2.0/glib/gspawn.h" 3
# 79 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstrfuncs.h>
#endif /* expanded by -frewrite-includes */
# 79 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gstrfuncs.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_STRFUNCS_H__
#define __G_STRFUNCS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
# 1 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 1 3
#if 0 /* expanded by -frewrite-includes */
#pragma GCC system_header
#endif /* expanded by -frewrite-includes */
# 2 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility push(default)
#if 0 /* expanded by -frewrite-includes */
#include_next <stdarg.h>
#endif /* expanded by -frewrite-includes */
# 3 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
# 4 "/home/icecold/mozilla-central/obj-ff-dbg/dist/system_wrappers/stdarg.h" 3
#pragma GCC visibility pop
# 33 "/usr/include/glib-2.0/glib/gstrfuncs.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmacros.h>
#endif /* expanded by -frewrite-includes */
# 33 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
# 34 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 34 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
# 35 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
G_BEGIN_DECLS
/* Functions like the ones in <ctype.h> that are not affected by locale. */
typedef enum {
G_ASCII_ALNUM = 1 << 0,
G_ASCII_ALPHA = 1 << 1,
G_ASCII_CNTRL = 1 << 2,
G_ASCII_DIGIT = 1 << 3,
G_ASCII_GRAPH = 1 << 4,
G_ASCII_LOWER = 1 << 5,
G_ASCII_PRINT = 1 << 6,
G_ASCII_PUNCT = 1 << 7,
G_ASCII_SPACE = 1 << 8,
G_ASCII_UPPER = 1 << 9,
G_ASCII_XDIGIT = 1 << 10
} GAsciiType;
GLIB_VAR const guint16 * const g_ascii_table;
#define g_ascii_isalnum(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_ALNUM) != 0)
#define g_ascii_isalpha(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_ALPHA) != 0)
#define g_ascii_iscntrl(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_CNTRL) != 0)
#define g_ascii_isdigit(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_DIGIT) != 0)
#define g_ascii_isgraph(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_GRAPH) != 0)
#define g_ascii_islower(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_LOWER) != 0)
#define g_ascii_isprint(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0)
#define g_ascii_ispunct(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_PUNCT) != 0)
#define g_ascii_isspace(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0)
#define g_ascii_isupper(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_UPPER) != 0)
#define g_ascii_isxdigit(c) \
((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0)
GLIB_AVAILABLE_IN_ALL
gchar g_ascii_tolower (gchar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gchar g_ascii_toupper (gchar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gint g_ascii_digit_value (gchar c) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gint g_ascii_xdigit_value (gchar c) G_GNUC_CONST;
/* String utility functions that modify a string argument or
* return a constant string that must not be freed.
*/
#define G_STR_DELIMITERS "_-|> <."
GLIB_AVAILABLE_IN_ALL
gchar* g_strdelimit (gchar *string,
const gchar *delimiters,
gchar new_delimiter);
GLIB_AVAILABLE_IN_ALL
gchar* g_strcanon (gchar *string,
const gchar *valid_chars,
gchar substitutor);
GLIB_AVAILABLE_IN_ALL
const gchar * g_strerror (gint errnum) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
const gchar * g_strsignal (gint signum) G_GNUC_CONST;
GLIB_AVAILABLE_IN_ALL
gchar * g_strreverse (gchar *string);
GLIB_AVAILABLE_IN_ALL
gsize g_strlcpy (gchar *dest,
const gchar *src,
gsize dest_size);
GLIB_AVAILABLE_IN_ALL
gsize g_strlcat (gchar *dest,
const gchar *src,
gsize dest_size);
GLIB_AVAILABLE_IN_ALL
gchar * g_strstr_len (const gchar *haystack,
gssize haystack_len,
const gchar *needle);
GLIB_AVAILABLE_IN_ALL
gchar * g_strrstr (const gchar *haystack,
const gchar *needle);
GLIB_AVAILABLE_IN_ALL
gchar * g_strrstr_len (const gchar *haystack,
gssize haystack_len,
const gchar *needle);
GLIB_AVAILABLE_IN_ALL
gboolean g_str_has_suffix (const gchar *str,
const gchar *suffix);
GLIB_AVAILABLE_IN_ALL
gboolean g_str_has_prefix (const gchar *str,
const gchar *prefix);
/* String to/from double conversion functions */
GLIB_AVAILABLE_IN_ALL
gdouble g_strtod (const gchar *nptr,
gchar **endptr);
GLIB_AVAILABLE_IN_ALL
gdouble g_ascii_strtod (const gchar *nptr,
gchar **endptr);
GLIB_AVAILABLE_IN_ALL
guint64 g_ascii_strtoull (const gchar *nptr,
gchar **endptr,
guint base);
GLIB_AVAILABLE_IN_ALL
gint64 g_ascii_strtoll (const gchar *nptr,
gchar **endptr,
guint base);
/* 29 bytes should enough for all possible values that
* g_ascii_dtostr can produce.
* Then add 10 for good measure */
#define G_ASCII_DTOSTR_BUF_SIZE (29 + 10)
GLIB_AVAILABLE_IN_ALL
gchar * g_ascii_dtostr (gchar *buffer,
gint buf_len,
gdouble d);
GLIB_AVAILABLE_IN_ALL
gchar * g_ascii_formatd (gchar *buffer,
gint buf_len,
const gchar *format,
gdouble d);
/* removes leading spaces */
GLIB_AVAILABLE_IN_ALL
gchar* g_strchug (gchar *string);
/* removes trailing spaces */
GLIB_AVAILABLE_IN_ALL
gchar* g_strchomp (gchar *string);
/* removes leading & trailing spaces */
#define g_strstrip( string ) g_strchomp (g_strchug (string))
GLIB_AVAILABLE_IN_ALL
gint g_ascii_strcasecmp (const gchar *s1,
const gchar *s2);
GLIB_AVAILABLE_IN_ALL
gint g_ascii_strncasecmp (const gchar *s1,
const gchar *s2,
gsize n);
GLIB_AVAILABLE_IN_ALL
gchar* g_ascii_strdown (const gchar *str,
gssize len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_ascii_strup (const gchar *str,
gssize len) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_2_40
gboolean g_str_is_ascii (const gchar *str);
GLIB_DEPRECATED
gint g_strcasecmp (const gchar *s1,
const gchar *s2);
GLIB_DEPRECATED
gint g_strncasecmp (const gchar *s1,
const gchar *s2,
guint n);
GLIB_DEPRECATED
gchar* g_strdown (gchar *string);
GLIB_DEPRECATED
gchar* g_strup (gchar *string);
/* String utility functions that return a newly allocated string which
* ought to be freed with g_free from the caller at some point.
*/
GLIB_AVAILABLE_IN_ALL
gchar* g_strdup (const gchar *str) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strdup_printf (const gchar *format,
...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strdup_vprintf (const gchar *format,
va_list args) G_GNUC_PRINTF(1, 0) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strndup (const gchar *str,
gsize n) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strnfill (gsize length,
gchar fill_char) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strconcat (const gchar *string1,
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
GLIB_AVAILABLE_IN_ALL
gchar* g_strjoin (const gchar *separator,
...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
/* Make a copy of a string interpreting C string -style escape
* sequences. Inverse of g_strescape. The recognized sequences are \b
* \f \n \r \t \\ \" and the octal format.
*/
GLIB_AVAILABLE_IN_ALL
gchar* g_strcompress (const gchar *source) G_GNUC_MALLOC;
/* Copy a string escaping nonprintable characters like in C strings.
* Inverse of g_strcompress. The exceptions parameter, if non-NULL, points
* to a string containing characters that are not to be escaped.
*
* Deprecated API: gchar* g_strescape (const gchar *source);
* Luckily this function wasn't used much, using NULL as second parameter
* provides mostly identical semantics.
*/
GLIB_AVAILABLE_IN_ALL
gchar* g_strescape (const gchar *source,
const gchar *exceptions) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gpointer g_memdup (gconstpointer mem,
guint byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
/* NULL terminated string arrays.
* g_strsplit(), g_strsplit_set() split up string into max_tokens tokens
* at delim and return a newly allocated string array.
* g_strjoinv() concatenates all of str_array's strings, sliding in an
* optional separator, the returned string is newly allocated.
* g_strfreev() frees the array itself and all of its strings.
* g_strdupv() copies a NULL-terminated array of strings
* g_strv_length() returns the length of a NULL-terminated array of strings
*/
typedef gchar** GStrv;
GLIB_AVAILABLE_IN_ALL
gchar** g_strsplit (const gchar *string,
const gchar *delimiter,
gint max_tokens) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar ** g_strsplit_set (const gchar *string,
const gchar *delimiters,
gint max_tokens) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
gchar* g_strjoinv (const gchar *separator,
gchar **str_array) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
void g_strfreev (gchar **str_array);
GLIB_AVAILABLE_IN_ALL
gchar** g_strdupv (gchar **str_array) G_GNUC_MALLOC;
GLIB_AVAILABLE_IN_ALL
guint g_strv_length (gchar **str_array);
GLIB_AVAILABLE_IN_ALL
gchar* g_stpcpy (gchar *dest,
const char *src);
GLIB_AVAILABLE_IN_2_40
gchar * g_str_to_ascii (const gchar *str,
const gchar *from_locale);
GLIB_AVAILABLE_IN_2_40
gchar ** g_str_tokenize_and_fold (const gchar *string,
const gchar *translit_locale,
gchar ***ascii_alternates);
GLIB_AVAILABLE_IN_2_40
gboolean g_str_match_string (const gchar *search_term,
const gchar *potential_hit,
gboolean accept_alternates);
GLIB_AVAILABLE_IN_2_44
gboolean g_strv_contains (const gchar * const *strv,
const gchar *str);
G_END_DECLS
#endif /* __G_STRFUNCS_H__ */
# 312 "/usr/include/glib-2.0/glib/gstrfuncs.h" 3
# 80 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstring.h>
#endif /* expanded by -frewrite-includes */
# 80 "/usr/include/glib-2.0/glib.h" 3
# 81 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstringchunk.h>
#endif /* expanded by -frewrite-includes */
# 81 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gstringchunk.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_STRINGCHUNK_H__
#define __G_STRINGCHUNK_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gstringchunk.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gstringchunk.h" 3
# 33 "/usr/include/glib-2.0/glib/gstringchunk.h" 3
G_BEGIN_DECLS
typedef struct _GStringChunk GStringChunk;
GLIB_AVAILABLE_IN_ALL
GStringChunk* g_string_chunk_new (gsize size);
GLIB_AVAILABLE_IN_ALL
void g_string_chunk_free (GStringChunk *chunk);
GLIB_AVAILABLE_IN_ALL
void g_string_chunk_clear (GStringChunk *chunk);
GLIB_AVAILABLE_IN_ALL
gchar* g_string_chunk_insert (GStringChunk *chunk,
const gchar *string);
GLIB_AVAILABLE_IN_ALL
gchar* g_string_chunk_insert_len (GStringChunk *chunk,
const gchar *string,
gssize len);
GLIB_AVAILABLE_IN_ALL
gchar* g_string_chunk_insert_const (GStringChunk *chunk,
const gchar *string);
G_END_DECLS
#endif /* __G_STRING_H__ */
# 58 "/usr/include/glib-2.0/glib/gstringchunk.h" 3
# 82 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtestutils.h>
#endif /* expanded by -frewrite-includes */
# 82 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gtestutils.h" 1 3
/* GLib testing utilities
* Copyright (C) 2007 Imendio AB
* Authors: Tim Janik
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __G_TEST_UTILS_H__
#define __G_TEST_UTILS_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 25 "/usr/include/glib-2.0/glib/gtestutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gmessages.h>
#endif /* expanded by -frewrite-includes */
# 26 "/usr/include/glib-2.0/glib/gtestutils.h" 3
# 27 "/usr/include/glib-2.0/glib/gtestutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gstring.h>
#endif /* expanded by -frewrite-includes */
# 27 "/usr/include/glib-2.0/glib/gtestutils.h" 3
# 28 "/usr/include/glib-2.0/glib/gtestutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gerror.h>
#endif /* expanded by -frewrite-includes */
# 28 "/usr/include/glib-2.0/glib/gtestutils.h" 3
# 29 "/usr/include/glib-2.0/glib/gtestutils.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gslist.h>
#endif /* expanded by -frewrite-includes */
# 29 "/usr/include/glib-2.0/glib/gtestutils.h" 3
# 30 "/usr/include/glib-2.0/glib/gtestutils.h" 3
G_BEGIN_DECLS
typedef struct GTestCase GTestCase;
typedef struct GTestSuite GTestSuite;
typedef void (*GTestFunc) (void);
typedef void (*GTestDataFunc) (gconstpointer user_data);
typedef void (*GTestFixtureFunc) (gpointer fixture,
gconstpointer user_data);
/* assertion API */
#define g_assert_cmpstr(s1, cmp, s2) G_STMT_START { \
const char *__s1 = (s1), *__s2 = (s2); \
if (g_strcmp0 (__s1, __s2) cmp 0) ; else \
g_assertion_message_cmpstr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#s1 " " #cmp " " #s2, __s1, #cmp, __s2); \
} G_STMT_END
#define g_assert_cmpint(n1, cmp, n2) G_STMT_START { \
gint64 __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \
} G_STMT_END
#define g_assert_cmpuint(n1, cmp, n2) G_STMT_START { \
guint64 __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \
} G_STMT_END
#define g_assert_cmphex(n1, cmp, n2) G_STMT_START {\
guint64 __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'x'); \
} G_STMT_END
#define g_assert_cmpfloat(n1,cmp,n2) G_STMT_START { \
long double __n1 = (n1), __n2 = (n2); \
if (__n1 cmp __n2) ; else \
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'f'); \
} G_STMT_END
#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\
gconstpointer __m1 = m1, __m2 = m2; \
int __l1 = l1, __l2 = l2; \
if (__l1 != __l2) \
g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", __l1, "==", __l2, 'i'); \
else if (memcmp (__m1, __m2, __l1) != 0) \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"assertion failed (" #m1 " == " #m2 ")"); \
} G_STMT_END
#define g_assert_no_error(err) G_STMT_START { \
if (err) \
g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#err, err, 0, 0); \
} G_STMT_END
#define g_assert_error(err, dom, c) G_STMT_START { \
if (!err || (err)->domain != dom || (err)->code != c) \
g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#err, err, dom, c); \
} G_STMT_END
#define g_assert_true(expr) G_STMT_START { \
if G_LIKELY (expr) ; else \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"'" #expr "' should be TRUE"); \
} G_STMT_END
#define g_assert_false(expr) G_STMT_START { \
if G_LIKELY (!(expr)) ; else \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"'" #expr "' should be FALSE"); \
} G_STMT_END
#define g_assert_null(expr) G_STMT_START { if G_LIKELY ((expr) == NULL) ; else \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"'" #expr "' should be NULL"); \
} G_STMT_END
#define g_assert_nonnull(expr) G_STMT_START { \
if G_LIKELY ((expr) != NULL) ; else \
g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
"'" #expr "' should not be NULL"); \
} G_STMT_END
#ifdef G_DISABLE_ASSERT
#define g_assert_not_reached() G_STMT_START { (void) 0; } G_STMT_END
#define g_assert(expr) G_STMT_START { (void) 0; } G_STMT_END
#else /* !G_DISABLE_ASSERT */
# 114 "/usr/include/glib-2.0/glib/gtestutils.h" 3
#define g_assert_not_reached() G_STMT_START { g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } G_STMT_END
#define g_assert(expr) G_STMT_START { \
if G_LIKELY (expr) ; else \
g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
#expr); \
} G_STMT_END
#endif /* !G_DISABLE_ASSERT */
# 121 "/usr/include/glib-2.0/glib/gtestutils.h" 3
GLIB_AVAILABLE_IN_ALL
int g_strcmp0 (const char *str1,
const char *str2);
/* report performance results */
GLIB_AVAILABLE_IN_ALL
void g_test_minimized_result (double minimized_quantity,
const char *format,
...) G_GNUC_PRINTF (2, 3);
GLIB_AVAILABLE_IN_ALL
void g_test_maximized_result (double maximized_quantity,
const char *format,
...) G_GNUC_PRINTF (2, 3);
/* initialize testing framework */
GLIB_AVAILABLE_IN_ALL
void g_test_init (int *argc,
char ***argv,
...) G_GNUC_NULL_TERMINATED;
/* query testing framework config */
#define g_test_initialized() (g_test_config_vars->test_initialized)
#define g_test_quick() (g_test_config_vars->test_quick)
#define g_test_slow() (!g_test_config_vars->test_quick)
#define g_test_thorough() (!g_test_config_vars->test_quick)
#define g_test_perf() (g_test_config_vars->test_perf)
#define g_test_verbose() (g_test_config_vars->test_verbose)
#define g_test_quiet() (g_test_config_vars->test_quiet)
#define g_test_undefined() (g_test_config_vars->test_undefined)
GLIB_AVAILABLE_IN_2_38
gboolean g_test_subprocess (void);
/* run all tests under toplevel suite (path: /) */
GLIB_AVAILABLE_IN_ALL
int g_test_run (void);
/* hook up a test functions under test path */
GLIB_AVAILABLE_IN_ALL
void g_test_add_func (const char *testpath,
GTestFunc test_func);
GLIB_AVAILABLE_IN_ALL
void g_test_add_data_func (const char *testpath,
gconstpointer test_data,
GTestDataFunc test_func);
GLIB_AVAILABLE_IN_2_34
void g_test_add_data_func_full (const char *testpath,
gpointer test_data,
GTestDataFunc test_func,
GDestroyNotify data_free_func);
/* tell about failure */
GLIB_AVAILABLE_IN_2_30
void g_test_fail (void);
GLIB_AVAILABLE_IN_2_38
void g_test_incomplete (const gchar *msg);
GLIB_AVAILABLE_IN_2_38
void g_test_skip (const gchar *msg);
GLIB_AVAILABLE_IN_2_38
gboolean g_test_failed (void);
GLIB_AVAILABLE_IN_2_38
void g_test_set_nonfatal_assertions (void);
/* hook up a test with fixture under test path */
#define g_test_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \
G_STMT_START { \
void (*add_vtable) (const char*, \
gsize, \
gconstpointer, \
void (*) (Fixture*, gconstpointer), \
void (*) (Fixture*, gconstpointer), \
void (*) (Fixture*, gconstpointer)) = (void (*) (const gchar *, gsize, gconstpointer, void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer))) g_test_add_vtable; \
add_vtable \
(testpath, sizeof (Fixture), tdata, fsetup, ftest, fteardown); \
} G_STMT_END
/* add test messages to the test report */
GLIB_AVAILABLE_IN_ALL
void g_test_message (const char *format,
...) G_GNUC_PRINTF (1, 2);
GLIB_AVAILABLE_IN_ALL
void g_test_bug_base (const char *uri_pattern);
GLIB_AVAILABLE_IN_ALL
void g_test_bug (const char *bug_uri_snippet);
/* measure test timings */
GLIB_AVAILABLE_IN_ALL
void g_test_timer_start (void);
GLIB_AVAILABLE_IN_ALL
double g_test_timer_elapsed (void); /* elapsed seconds */
GLIB_AVAILABLE_IN_ALL
double g_test_timer_last (void); /* repeat last elapsed() result */
/* automatically g_free or g_object_unref upon teardown */
GLIB_AVAILABLE_IN_ALL
void g_test_queue_free (gpointer gfree_pointer);
GLIB_AVAILABLE_IN_ALL
void g_test_queue_destroy (GDestroyNotify destroy_func,
gpointer destroy_data);
#define g_test_queue_unref(gobject) g_test_queue_destroy (g_object_unref, gobject)
typedef enum {
G_TEST_TRAP_SILENCE_STDOUT = 1 << 7,
G_TEST_TRAP_SILENCE_STDERR = 1 << 8,
G_TEST_TRAP_INHERIT_STDIN = 1 << 9
} GTestTrapFlags;
GLIB_DEPRECATED_IN_2_38_FOR (g_test_trap_subprocess)
gboolean g_test_trap_fork (guint64 usec_timeout,
GTestTrapFlags test_trap_flags);
typedef enum {
G_TEST_SUBPROCESS_INHERIT_STDIN = 1 << 0,
G_TEST_SUBPROCESS_INHERIT_STDOUT = 1 << 1,
G_TEST_SUBPROCESS_INHERIT_STDERR = 1 << 2
} GTestSubprocessFlags;
GLIB_AVAILABLE_IN_2_38
void g_test_trap_subprocess (const char *test_path,
guint64 usec_timeout,
GTestSubprocessFlags test_flags);
GLIB_AVAILABLE_IN_ALL
gboolean g_test_trap_has_passed (void);
GLIB_AVAILABLE_IN_ALL
gboolean g_test_trap_reached_timeout (void);
#define g_test_trap_assert_passed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 0, 0)
#define g_test_trap_assert_failed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 1, 0)
#define g_test_trap_assert_stdout(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 2, soutpattern)
#define g_test_trap_assert_stdout_unmatched(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 3, soutpattern)
#define g_test_trap_assert_stderr(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 4, serrpattern)
#define g_test_trap_assert_stderr_unmatched(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 5, serrpattern)
/* provide seed-able random numbers for tests */
#define g_test_rand_bit() (0 != (g_test_rand_int() & (1 << 15)))
GLIB_AVAILABLE_IN_ALL
gint32 g_test_rand_int (void);
GLIB_AVAILABLE_IN_ALL
gint32 g_test_rand_int_range (gint32 begin,
gint32 end);
GLIB_AVAILABLE_IN_ALL
double g_test_rand_double (void);
GLIB_AVAILABLE_IN_ALL
double g_test_rand_double_range (double range_start,
double range_end);
/*
* semi-internal API: non-documented symbols with stable ABI. You
* should use the non-internal helper macros instead. However, for
* compatibility reason, you may use this semi-internal API.
*/
GLIB_AVAILABLE_IN_ALL
GTestCase* g_test_create_case (const char *test_name,
gsize data_size,
gconstpointer test_data,
GTestFixtureFunc data_setup,
GTestFixtureFunc data_test,
GTestFixtureFunc data_teardown);
GLIB_AVAILABLE_IN_ALL
GTestSuite* g_test_create_suite (const char *suite_name);
GLIB_AVAILABLE_IN_ALL
GTestSuite* g_test_get_root (void);
GLIB_AVAILABLE_IN_ALL
void g_test_suite_add (GTestSuite *suite,
GTestCase *test_case);
GLIB_AVAILABLE_IN_ALL
void g_test_suite_add_suite (GTestSuite *suite,
GTestSuite *nestedsuite);
GLIB_AVAILABLE_IN_ALL
int g_test_run_suite (GTestSuite *suite);
GLIB_AVAILABLE_IN_ALL
void g_test_trap_assertions (const char *domain,
const char *file,
int line,
const char *func,
guint64 assertion_flags, /* 0-pass, 1-fail, 2-outpattern, 4-errpattern */
const char *pattern);
GLIB_AVAILABLE_IN_ALL
void g_assertion_message (const char *domain,
const char *file,
int line,
const char *func,
const char *message);
GLIB_AVAILABLE_IN_ALL
void g_assertion_message_expr (const char *domain,
const char *file,
int line,
const char *func,
const char *expr) G_GNUC_NORETURN;
GLIB_AVAILABLE_IN_ALL
void g_assertion_message_cmpstr (const char *domain,
const char *file,
int line,
const char *func,
const char *expr,
const char *arg1,
const char *cmp,
const char *arg2);
GLIB_AVAILABLE_IN_ALL
void g_assertion_message_cmpnum (const char *domain,
const char *file,
int line,
const char *func,
const char *expr,
long double arg1,
const char *cmp,
long double arg2,
char numtype);
GLIB_AVAILABLE_IN_ALL
void g_assertion_message_error (const char *domain,
const char *file,
int line,
const char *func,
const char *expr,
const GError *error,
GQuark error_domain,
int error_code);
GLIB_AVAILABLE_IN_ALL
void g_test_add_vtable (const char *testpath,
gsize data_size,
gconstpointer test_data,
GTestFixtureFunc data_setup,
GTestFixtureFunc data_test,
GTestFixtureFunc data_teardown);
typedef struct {
gboolean test_initialized;
gboolean test_quick; /* disable thorough tests */
gboolean test_perf; /* run performance tests */
gboolean test_verbose; /* extra info */
gboolean test_quiet; /* reduce output */
gboolean test_undefined; /* run tests that are meant to assert */
} GTestConfig;
GLIB_VAR const GTestConfig * const g_test_config_vars;
/* internal logging API */
typedef enum {
G_TEST_LOG_NONE,
G_TEST_LOG_ERROR, /* s:msg */
G_TEST_LOG_START_BINARY, /* s:binaryname s:seed */
G_TEST_LOG_LIST_CASE, /* s:testpath */
G_TEST_LOG_SKIP_CASE, /* s:testpath */
G_TEST_LOG_START_CASE, /* s:testpath */
G_TEST_LOG_STOP_CASE, /* d:status d:nforks d:elapsed */
G_TEST_LOG_MIN_RESULT, /* s:blurb d:result */
G_TEST_LOG_MAX_RESULT, /* s:blurb d:result */
G_TEST_LOG_MESSAGE, /* s:blurb */
G_TEST_LOG_START_SUITE,
G_TEST_LOG_STOP_SUITE
} GTestLogType;
typedef struct {
GTestLogType log_type;
guint n_strings;
gchar **strings; /* NULL terminated */
guint n_nums;
long double *nums;
} GTestLogMsg;
typedef struct {
/*< private >*/
GString *data;
GSList *msgs;
} GTestLogBuffer;
GLIB_AVAILABLE_IN_ALL
const char* g_test_log_type_name (GTestLogType log_type);
GLIB_AVAILABLE_IN_ALL
GTestLogBuffer* g_test_log_buffer_new (void);
GLIB_AVAILABLE_IN_ALL
void g_test_log_buffer_free (GTestLogBuffer *tbuffer);
GLIB_AVAILABLE_IN_ALL
void g_test_log_buffer_push (GTestLogBuffer *tbuffer,
guint n_bytes,
const guint8 *bytes);
GLIB_AVAILABLE_IN_ALL
GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer);
GLIB_AVAILABLE_IN_ALL
void g_test_log_msg_free (GTestLogMsg *tmsg);
/**
* GTestLogFatalFunc:
* @log_domain: the log domain of the message
* @log_level: the log level of the message (including the fatal and recursion flags)
* @message: the message to process
* @user_data: user data, set in g_test_log_set_fatal_handler()
*
* Specifies the prototype of fatal log handler functions.
*
* Returns: %TRUE if the program should abort, %FALSE otherwise
*
* Since: 2.22
*/
typedef gboolean (*GTestLogFatalFunc) (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *message,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
void
g_test_log_set_fatal_handler (GTestLogFatalFunc log_func,
gpointer user_data);
GLIB_AVAILABLE_IN_2_34
void g_test_expect_message (const gchar *log_domain,
GLogLevelFlags log_level,
const gchar *pattern);
GLIB_AVAILABLE_IN_2_34
void g_test_assert_expected_messages_internal (const char *domain,
const char *file,
int line,
const char *func);
typedef enum
{
G_TEST_DIST,
G_TEST_BUILT
} GTestFileType;
GLIB_AVAILABLE_IN_2_38
gchar * g_test_build_filename (GTestFileType file_type,
const gchar *first_path,
...) G_GNUC_NULL_TERMINATED;
GLIB_AVAILABLE_IN_2_38
const gchar *g_test_get_dir (GTestFileType file_type);
GLIB_AVAILABLE_IN_2_38
const gchar *g_test_get_filename (GTestFileType file_type,
const gchar *first_path,
...) G_GNUC_NULL_TERMINATED;
#define g_test_assert_expected_messages() g_test_assert_expected_messages_internal (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC)
G_END_DECLS
#endif /* __G_TEST_UTILS_H__ */
# 453 "/usr/include/glib-2.0/glib/gtestutils.h" 3
# 83 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gthread.h>
#endif /* expanded by -frewrite-includes */
# 83 "/usr/include/glib-2.0/glib.h" 3
# 84 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gthreadpool.h>
#endif /* expanded by -frewrite-includes */
# 84 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gthreadpool.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_THREADPOOL_H__
#define __G_THREADPOOL_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gthreadpool.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gthread.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gthreadpool.h" 3
# 33 "/usr/include/glib-2.0/glib/gthreadpool.h" 3
G_BEGIN_DECLS
typedef struct _GThreadPool GThreadPool;
/* Thread Pools
*/
struct _GThreadPool
{
GFunc func;
gpointer user_data;
gboolean exclusive;
};
GLIB_AVAILABLE_IN_ALL
GThreadPool * g_thread_pool_new (GFunc func,
gpointer user_data,
gint max_threads,
gboolean exclusive,
GError **error);
GLIB_AVAILABLE_IN_ALL
void g_thread_pool_free (GThreadPool *pool,
gboolean immediate,
gboolean wait_);
GLIB_AVAILABLE_IN_ALL
gboolean g_thread_pool_push (GThreadPool *pool,
gpointer data,
GError **error);
GLIB_AVAILABLE_IN_ALL
guint g_thread_pool_unprocessed (GThreadPool *pool);
GLIB_AVAILABLE_IN_ALL
void g_thread_pool_set_sort_function (GThreadPool *pool,
GCompareDataFunc func,
gpointer user_data);
GLIB_AVAILABLE_IN_2_46
gboolean g_thread_pool_move_to_front (GThreadPool *pool,
gpointer data);
GLIB_AVAILABLE_IN_ALL
gboolean g_thread_pool_set_max_threads (GThreadPool *pool,
gint max_threads,
GError **error);
GLIB_AVAILABLE_IN_ALL
gint g_thread_pool_get_max_threads (GThreadPool *pool);
GLIB_AVAILABLE_IN_ALL
guint g_thread_pool_get_num_threads (GThreadPool *pool);
GLIB_AVAILABLE_IN_ALL
void g_thread_pool_set_max_unused_threads (gint max_threads);
GLIB_AVAILABLE_IN_ALL
gint g_thread_pool_get_max_unused_threads (void);
GLIB_AVAILABLE_IN_ALL
guint g_thread_pool_get_num_unused_threads (void);
GLIB_AVAILABLE_IN_ALL
void g_thread_pool_stop_unused_threads (void);
GLIB_AVAILABLE_IN_ALL
void g_thread_pool_set_max_idle_time (guint interval);
GLIB_AVAILABLE_IN_ALL
guint g_thread_pool_get_max_idle_time (void);
G_END_DECLS
#endif /* __G_THREADPOOL_H__ */
# 97 "/usr/include/glib-2.0/glib/gthreadpool.h" 3
# 85 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtimer.h>
#endif /* expanded by -frewrite-includes */
# 85 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gtimer.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_TIMER_H__
#define __G_TIMER_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gtimer.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gtimer.h" 3
# 33 "/usr/include/glib-2.0/glib/gtimer.h" 3
G_BEGIN_DECLS
/* Timer
*/
/* microseconds per second */
typedef struct _GTimer GTimer;
#define G_USEC_PER_SEC 1000000
GLIB_AVAILABLE_IN_ALL
GTimer* g_timer_new (void);
GLIB_AVAILABLE_IN_ALL
void g_timer_destroy (GTimer *timer);
GLIB_AVAILABLE_IN_ALL
void g_timer_start (GTimer *timer);
GLIB_AVAILABLE_IN_ALL
void g_timer_stop (GTimer *timer);
GLIB_AVAILABLE_IN_ALL
void g_timer_reset (GTimer *timer);
GLIB_AVAILABLE_IN_ALL
void g_timer_continue (GTimer *timer);
GLIB_AVAILABLE_IN_ALL
gdouble g_timer_elapsed (GTimer *timer,
gulong *microseconds);
GLIB_AVAILABLE_IN_ALL
void g_usleep (gulong microseconds);
GLIB_AVAILABLE_IN_ALL
void g_time_val_add (GTimeVal *time_,
glong microseconds);
GLIB_AVAILABLE_IN_ALL
gboolean g_time_val_from_iso8601 (const gchar *iso_date,
GTimeVal *time_);
GLIB_AVAILABLE_IN_ALL
gchar* g_time_val_to_iso8601 (GTimeVal *time_) G_GNUC_MALLOC;
G_END_DECLS
#endif /* __G_TIMER_H__ */
# 75 "/usr/include/glib-2.0/glib/gtimer.h" 3
# 86 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtimezone.h>
#endif /* expanded by -frewrite-includes */
# 86 "/usr/include/glib-2.0/glib.h" 3
# 87 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtrashstack.h>
#endif /* expanded by -frewrite-includes */
# 87 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gtrashstack.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_TRASH_STACK_H__
#define __G_TRASH_STACK_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gtrashstack.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gutils.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gtrashstack.h" 3
# 33 "/usr/include/glib-2.0/glib/gtrashstack.h" 3
G_BEGIN_DECLS
typedef struct _GTrashStack GTrashStack;
struct _GTrashStack
{
GTrashStack *next;
};
GLIB_DEPRECATED_IN_2_48
void g_trash_stack_push (GTrashStack **stack_p,
gpointer data_p);
GLIB_DEPRECATED_IN_2_48
gpointer g_trash_stack_pop (GTrashStack **stack_p);
GLIB_DEPRECATED_IN_2_48
gpointer g_trash_stack_peek (GTrashStack **stack_p);
GLIB_DEPRECATED_IN_2_48
guint g_trash_stack_height (GTrashStack **stack_p);
G_END_DECLS
#endif /* __G_TRASH_STACK_H_ */
# 55 "/usr/include/glib-2.0/glib/gtrashstack.h" 3
# 88 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtree.h>
#endif /* expanded by -frewrite-includes */
# 88 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gtree.h" 1 3
/* GLIB - Library of useful routines for C programming
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
/*
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
* file for a list of people on the GLib Team. See the ChangeLog
* files for a list of changes. These files are distributed with
* GLib at ftp://ftp.gtk.org/pub/gtk/.
*/
#ifndef __G_TREE_H__
#define __G_TREE_H__
#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
#error "Only <glib.h> can be included directly."
#endif
# 31 "/usr/include/glib-2.0/glib/gtree.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gnode.h>
#endif /* expanded by -frewrite-includes */
# 32 "/usr/include/glib-2.0/glib/gtree.h" 3
# 33 "/usr/include/glib-2.0/glib/gtree.h" 3
G_BEGIN_DECLS
typedef struct _GTree GTree;
typedef gboolean (*GTraverseFunc) (gpointer key,
gpointer value,
gpointer data);
/* Balanced binary trees
*/
GLIB_AVAILABLE_IN_ALL
GTree* g_tree_new (GCompareFunc key_compare_func);
GLIB_AVAILABLE_IN_ALL
GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func,
gpointer key_compare_data);
GLIB_AVAILABLE_IN_ALL
GTree* g_tree_new_full (GCompareDataFunc key_compare_func,
gpointer key_compare_data,
GDestroyNotify key_destroy_func,
GDestroyNotify value_destroy_func);
GLIB_AVAILABLE_IN_ALL
GTree* g_tree_ref (GTree *tree);
GLIB_AVAILABLE_IN_ALL
void g_tree_unref (GTree *tree);
GLIB_AVAILABLE_IN_ALL
void g_tree_destroy (GTree *tree);
GLIB_AVAILABLE_IN_ALL
void g_tree_insert (GTree *tree,
gpointer key,
gpointer value);
GLIB_AVAILABLE_IN_ALL
void g_tree_replace (GTree *tree,
gpointer key,
gpointer value);
GLIB_AVAILABLE_IN_ALL
gboolean g_tree_remove (GTree *tree,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
gboolean g_tree_steal (GTree *tree,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
gpointer g_tree_lookup (GTree *tree,
gconstpointer key);
GLIB_AVAILABLE_IN_ALL
gboolean g_tree_lookup_extended (GTree *tree,
gconstpointer lookup_key,
gpointer *orig_key,
gpointer *value);
GLIB_AVAILABLE_IN_ALL
void g_tree_foreach (GTree *tree,
GTraverseFunc func,
gpointer user_data);
GLIB_DEPRECATED
void g_tree_traverse (GTree *tree,
GTraverseFunc traverse_func,
GTraverseType traverse_type,
gpointer user_data);
GLIB_AVAILABLE_IN_ALL
gpointer g_tree_search (GTree *tree,
GCompareFunc search_func,
gconstpointer user_data);
GLIB_AVAILABLE_IN_ALL
gint g_tree_height (GTree *tree);
GLIB_AVAILABLE_IN_ALL
gint g_tree_nnodes (GTree *tree);
G_END_DECLS
#endif /* __G_TREE_H__ */
# 105 "/usr/include/glib-2.0/glib/gtree.h" 3
# 89 "/usr/include/glib-2.0/glib.h" 2 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gtypes.h>
#endif /* expanded by -frewrite-includes */
# 89 "/usr/include/glib-2.0/glib.h" 3
# 90 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gunicode.h>
#endif /* expanded by -frewrite-includes */
# 90 "/usr/include/glib-2.0/glib.h" 3
# 91 "/usr/include/glib-2.0/glib.h" 3
#if 0 /* expanded by -frewrite-includes */
#include <glib/gurifuncs.h>
#endif /* expanded by -frewrite-includes */
# 91 "/usr/include/glib-2.0/glib.h" 3
# 1 "/usr/include/glib-2.0/glib/gurifuncs.h" 1 3
/* GIO - GLib Input, Output and Streaming Library
*
* Copyright (C) 2006-2007 Red Hat, Inc.
*
* This library is free software; you can red
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment