| Server IP : 170.10.162.208 / Your IP : 216.73.216.181 Web Server : LiteSpeed System : Linux altar19.supremepanel19.com 4.18.0-553.69.1.lve.el8.x86_64 #1 SMP Wed Aug 13 19:53:59 UTC 2025 x86_64 User : deltahospital ( 1806) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/deltahospital/.cagefs/tmp/ |
Upload File : |
/* Copyright (C) 1991-2018 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
#else
# define __STDC_IEC_559__ 1
#endif
#ifdef __GCC_IEC_559_COMPLEX
# if __GCC_IEC_559_COMPLEX > 0
# define __STDC_IEC_559_COMPLEX__ 1
# endif
#else
# define __STDC_IEC_559_COMPLEX__ 1
#endif
/* wchar_t uses Unicode 10.0.0. Version 10.0 of the Unicode Standard is
synchronized with ISO/IEC 10646:2017, fifth edition, plus
the following additions from Amendment 1 to the fifth edition:
- 56 emoji characters
- 285 hentaigana
- 3 additional Zanabazar Square characters */
#define __STDC_ISO_10646__ 201706L
#endif
/* Header with interface version macros for library pieces copied elsewhere.
Copyright (C) 1995-2018 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 _GNU_VERSIONS_H
#define _GNU_VERSIONS_H 1
/* This file exists to define these few macros. Each specifies a version
number associated with the library interface of a piece of the C library
which is also distributed with other GNU packages. These pieces are
both part of the GNU C library and also distributed with other GNU
packages so those packages may use their facilities on systems lacking
the GNU C library. The source files for each piece surround all their
code with `#ifndef ELIDE_CODE' after defining it with this:
#define OBSTACK_INTERFACE_VERSION 1
#if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1
#include <gnu-versions.h>
#if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
#define ELIDE_CODE
#endif
#endif
This allows those one to avoid compiling those files when part of a GNU
package not libc, on a system using a GNU C library that supports the
same interface.
Please preserve the format of the comments after each macro. And
remember, if any of these versions change, the libc.so major version
number must change too (so avoid it)! */
#define _GNU_OBSTACK_INTERFACE_VERSION 1 /* vs malloc/obstack.c */
#define _GNU_REGEX_INTERFACE_VERSION 1 /* vs posix/regex.c */
#define _GNU_GLOB_INTERFACE_VERSION 2 /* vs posix/glob.c */
#define _GNU_GETOPT_INTERFACE_VERSION 2 /* vs posix/getopt.c and
posix/getopt1.c */
#endif /* gnu-versions.h */
/* Prototypes and definition for malloc implementation.
Copyright (C) 1996-2018 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 _MALLOC_H
#define _MALLOC_H 1
#include <features.h>
#include <stddef.h>
#include <stdio.h>
#ifdef _LIBC
# define __MALLOC_HOOK_VOLATILE
# define __MALLOC_DEPRECATED
#else
# define __MALLOC_HOOK_VOLATILE volatile
# define __MALLOC_DEPRECATED __attribute_deprecated__
#endif
__BEGIN_DECLS
/* Allocate SIZE bytes of memory. */
extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur;
/* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */
extern void *calloc (size_t __nmemb, size_t __size)
__THROW __attribute_malloc__ __wur;
/* Re-allocate the previously allocated block in __ptr, making the new
block SIZE bytes long. */
/* __attribute_malloc__ is not used, because if realloc returns
the same pointer that was passed to it, aliasing needs to be allowed
between objects pointed by the old and new pointers. */
extern void *realloc (void *__ptr, size_t __size)
__THROW __attribute_warn_unused_result__;
/* Re-allocate the previously allocated block in PTR, making the new
block large enough for NMEMB elements of SIZE bytes each. */
/* __attribute_malloc__ is not used, because if reallocarray returns
the same pointer that was passed to it, aliasing needs to be allowed
between objects pointed by the old and new pointers. */
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
__THROW __attribute_warn_unused_result__;
/* Free a block allocated by `malloc', `realloc' or `calloc'. */
extern void free (void *__ptr) __THROW;
/* Allocate SIZE bytes allocated to ALIGNMENT bytes. */
extern void *memalign (size_t __alignment, size_t __size)
__THROW __attribute_malloc__ __wur;
/* Allocate SIZE bytes on a page boundary. */
extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur;
/* Equivalent to valloc(minimum-page-that-holds(n)), that is, round up
__size to nearest pagesize. */
extern void *pvalloc (size_t __size) __THROW __attribute_malloc__ __wur;
/* Underlying allocation function; successive calls should return
contiguous pieces of memory. */
extern void *(*__morecore) (ptrdiff_t __size);
/* Default value of `__morecore'. */
extern void *__default_morecore (ptrdiff_t __size)
__THROW __attribute_malloc__;
/* SVID2/XPG mallinfo structure */
struct mallinfo
{
int arena; /* non-mmapped space allocated from system */
int ordblks; /* number of free chunks */
int smblks; /* number of fastbin blocks */
int hblks; /* number of mmapped regions */
int hblkhd; /* space in mmapped regions */
int usmblks; /* always 0, preserved for backwards compatibility */
int fsmblks; /* space available in freed fastbin blocks */
int uordblks; /* total allocated space */
int fordblks; /* total free space */
int keepcost; /* top-most, releasable (via malloc_trim) space */
};
/* Returns a copy of the updated current mallinfo. */
extern struct mallinfo mallinfo (void) __THROW;
/* SVID2/XPG mallopt options */
#ifndef M_MXFAST
# define M_MXFAST 1 /* maximum request size for "fastbins" */
#endif
#ifndef M_NLBLKS
# define M_NLBLKS 2 /* UNUSED in this malloc */
#endif
#ifndef M_GRAIN
# define M_GRAIN 3 /* UNUSED in this malloc */
#endif
#ifndef M_KEEP
# define M_KEEP 4 /* UNUSED in this malloc */
#endif
/* mallopt options that actually do something */
#define M_TRIM_THRESHOLD -1
#define M_TOP_PAD -2
#define M_MMAP_THRESHOLD -3
#define M_MMAP_MAX -4
#define M_CHECK_ACTION -5
#define M_PERTURB -6
#define M_ARENA_TEST -7
#define M_ARENA_MAX -8
/* General SVID/XPG interface to tunable parameters. */
extern int mallopt (int __param, int __val) __THROW;
/* Release all but __pad bytes of freed top-most memory back to the
system. Return 1 if successful, else 0. */
extern int malloc_trim (size_t __pad) __THROW;
/* Report the number of usable allocated bytes associated with allocated
chunk __ptr. */
extern size_t malloc_usable_size (void *__ptr) __THROW;
/* Prints brief summary statistics on stderr. */
extern void malloc_stats (void) __THROW;
/* Output information about state of allocator to stream FP. */
extern int malloc_info (int __options, FILE *__fp) __THROW;
/* Hooks for debugging and user-defined versions. */
extern void (*__MALLOC_HOOK_VOLATILE __free_hook) (void *__ptr,
const void *)
__MALLOC_DEPRECATED;
extern void *(*__MALLOC_HOOK_VOLATILE __malloc_hook)(size_t __size,
const void *)
__MALLOC_DEPRECATED;
extern void *(*__MALLOC_HOOK_VOLATILE __realloc_hook)(void *__ptr,
size_t __size,
const void *)
__MALLOC_DEPRECATED;
extern void *(*__MALLOC_HOOK_VOLATILE __memalign_hook)(size_t __alignment,
size_t __size,
const void *)
__MALLOC_DEPRECATED;
extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void);
/* Activate a standard set of debugging hooks. */
extern void __malloc_check_init (void) __THROW __MALLOC_DEPRECATED;
__END_DECLS
#endif /* malloc.h */
/* ----------------------------------------------------------------------------
libconfig - A library for processing structured configuration files
Copyright (C) 2005-2014 Mark A Lindner
This file is part of libconfig.
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 Library General Public
License along with this library; if not, see
<http://www.gnu.org/licenses/>.
----------------------------------------------------------------------------
*/
#ifndef __libconfig_h
#define __libconfig_h
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
#if defined(LIBCONFIG_STATIC)
#define LIBCONFIG_API
#elif defined(LIBCONFIG_EXPORTS)
#define LIBCONFIG_API __declspec(dllexport)
#else /* ! LIBCONFIG_EXPORTS */
#define LIBCONFIG_API __declspec(dllimport)
#endif /* LIBCONFIG_STATIC */
#else /* ! WIN32 */
#define LIBCONFIG_API
#endif /* WIN32 */
#define LIBCONFIG_VER_MAJOR 1
#define LIBCONFIG_VER_MINOR 5
#define LIBCONFIG_VER_REVISION 0
#include <stdio.h>
#define CONFIG_TYPE_NONE 0
#define CONFIG_TYPE_GROUP 1
#define CONFIG_TYPE_INT 2
#define CONFIG_TYPE_INT64 3
#define CONFIG_TYPE_FLOAT 4
#define CONFIG_TYPE_STRING 5
#define CONFIG_TYPE_BOOL 6
#define CONFIG_TYPE_ARRAY 7
#define CONFIG_TYPE_LIST 8
#define CONFIG_FORMAT_DEFAULT 0
#define CONFIG_FORMAT_HEX 1
#define CONFIG_OPTION_AUTOCONVERT 0x01
#define CONFIG_OPTION_SEMICOLON_SEPARATORS 0x02
#define CONFIG_OPTION_COLON_ASSIGNMENT_FOR_GROUPS 0x04
#define CONFIG_OPTION_COLON_ASSIGNMENT_FOR_NON_GROUPS 0x08
#define CONFIG_OPTION_OPEN_BRACE_ON_SEPARATE_LINE 0x10
#define CONFIG_TRUE (1)
#define CONFIG_FALSE (0)
typedef union config_value_t
{
int ival;
long long llval;
double fval;
char *sval;
struct config_list_t *list;
} config_value_t;
typedef struct config_setting_t
{
char *name;
short type;
short format;
config_value_t value;
struct config_setting_t *parent;
struct config_t *config;
void *hook;
unsigned int line;
const char *file;
} config_setting_t;
typedef enum
{
CONFIG_ERR_NONE = 0,
CONFIG_ERR_FILE_IO = 1,
CONFIG_ERR_PARSE = 2
} config_error_t;
typedef struct config_list_t
{
unsigned int length;
config_setting_t **elements;
} config_list_t;
typedef struct config_t
{
config_setting_t *root;
void (*destructor)(void *);
int options;
unsigned short tab_width;
short default_format;
const char *include_dir;
const char *error_text;
const char *error_file;
int error_line;
config_error_t error_type;
const char **filenames;
unsigned int num_filenames;
} config_t;
extern LIBCONFIG_API int config_read(config_t *config, FILE *stream);
extern LIBCONFIG_API void config_write(const config_t *config, FILE *stream);
extern LIBCONFIG_API void config_set_default_format(config_t *config,
short format);
extern LIBCONFIG_API void config_set_options(config_t *config, int options);
extern LIBCONFIG_API int config_get_options(const config_t *config);
extern LIBCONFIG_API void config_set_auto_convert(config_t *config, int flag);
extern LIBCONFIG_API int config_get_auto_convert(const config_t *config);
extern LIBCONFIG_API int config_read_string(config_t *config, const char *str);
extern LIBCONFIG_API int config_read_file(config_t *config,
const char *filename);
extern LIBCONFIG_API int config_write_file(config_t *config,
const char *filename);
extern LIBCONFIG_API void config_set_destructor(config_t *config,
void (*destructor)(void *));
extern LIBCONFIG_API void config_set_include_dir(config_t *config,
const char *include_dir);
extern LIBCONFIG_API void config_init(config_t *config);
extern LIBCONFIG_API void config_destroy(config_t *config);
extern LIBCONFIG_API int config_setting_get_int(
const config_setting_t *setting);
extern LIBCONFIG_API long long config_setting_get_int64(
const config_setting_t *setting);
extern LIBCONFIG_API double config_setting_get_float(
const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_get_bool(
const config_setting_t *setting);
extern LIBCONFIG_API const char *config_setting_get_string(
const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_lookup_int(
const config_setting_t *setting, const char *name, int *value);
extern LIBCONFIG_API int config_setting_lookup_int64(
const config_setting_t *setting, const char *name, long long *value);
extern LIBCONFIG_API int config_setting_lookup_float(
const config_setting_t *setting, const char *name, double *value);
extern LIBCONFIG_API int config_setting_lookup_bool(
const config_setting_t *setting, const char *name, int *value);
extern LIBCONFIG_API int config_setting_lookup_string(
const config_setting_t *setting, const char *name, const char **value);
extern LIBCONFIG_API int config_setting_set_int(config_setting_t *setting,
int value);
extern LIBCONFIG_API int config_setting_set_int64(config_setting_t *setting,
long long value);
extern LIBCONFIG_API int config_setting_set_float(config_setting_t *setting,
double value);
extern LIBCONFIG_API int config_setting_set_bool(config_setting_t *setting,
int value);
extern LIBCONFIG_API int config_setting_set_string(config_setting_t *setting,
const char *value);
extern LIBCONFIG_API int config_setting_set_format(config_setting_t *setting,
short format);
extern LIBCONFIG_API short config_setting_get_format(
const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_get_int_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API long long config_setting_get_int64_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API double config_setting_get_float_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API int config_setting_get_bool_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API const char *config_setting_get_string_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API config_setting_t *config_setting_set_int_elem(
config_setting_t *setting, int idx, int value);
extern LIBCONFIG_API config_setting_t *config_setting_set_int64_elem(
config_setting_t *setting, int idx, long long value);
extern LIBCONFIG_API config_setting_t *config_setting_set_float_elem(
config_setting_t *setting, int idx, double value);
extern LIBCONFIG_API config_setting_t *config_setting_set_bool_elem(
config_setting_t *setting, int idx, int value);
extern LIBCONFIG_API config_setting_t *config_setting_set_string_elem(
config_setting_t *setting, int idx, const char *value);
#define /* const char * */ config_get_include_dir(/* const config_t * */ C) \
((C)->include_dir)
#define /* int */ config_setting_type(/* const config_setting_t * */ S) \
((S)->type)
#define /* int */ config_setting_is_group(/* const config_setting_t * */ S) \
((S)->type == CONFIG_TYPE_GROUP)
#define /* int */ config_setting_is_array(/* const config_setting_t * */ S) \
((S)->type == CONFIG_TYPE_ARRAY)
#define /* int */ config_setting_is_list(/* const config_setting_t * */ S) \
((S)->type == CONFIG_TYPE_LIST)
#define /* int */ config_setting_is_aggregate( \
/* const config_setting_t * */ S) \
(((S)->type == CONFIG_TYPE_GROUP) || ((S)->type == CONFIG_TYPE_LIST) \
|| ((S)->type == CONFIG_TYPE_ARRAY))
#define /* int */ config_setting_is_number(/* const config_setting_t * */ S) \
(((S)->type == CONFIG_TYPE_INT) \
|| ((S)->type == CONFIG_TYPE_INT64) \
|| ((S)->type == CONFIG_TYPE_FLOAT))
#define /* int */ config_setting_is_scalar(/* const config_setting_t * */ S) \
(((S)->type == CONFIG_TYPE_BOOL) || ((S)->type == CONFIG_TYPE_STRING) \
|| config_setting_is_number(S))
#define /* const char * */ config_setting_name( \
/* const config_setting_t * */ S) \
((S)->name)
#define /* config_setting_t * */ config_setting_parent( \
/* const config_setting_t * */ S) \
((S)->parent)
#define /* int */ config_setting_is_root( \
/* const config_setting_t * */ S) \
((S)->parent ? CONFIG_FALSE : CONFIG_TRUE)
extern LIBCONFIG_API int config_setting_index(const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_length(
const config_setting_t *setting);
extern LIBCONFIG_API config_setting_t *config_setting_get_elem(
const config_setting_t *setting, unsigned int idx);
extern LIBCONFIG_API config_setting_t *config_setting_get_member(
const config_setting_t *setting, const char *name);
extern LIBCONFIG_API config_setting_t *config_setting_add(
config_setting_t *parent, const char *name, int type);
extern LIBCONFIG_API int config_setting_remove(config_setting_t *parent,
const char *name);
extern LIBCONFIG_API int config_setting_remove_elem(config_setting_t *parent,
unsigned int idx);
extern LIBCONFIG_API void config_setting_set_hook(config_setting_t *setting,
void *hook);
#define config_setting_get_hook(S) ((S)->hook)
extern LIBCONFIG_API config_setting_t *config_lookup(const config_t *config,
const char *path);
extern LIBCONFIG_API config_setting_t *config_setting_lookup(
config_setting_t *setting, const char *path);
extern LIBCONFIG_API int config_lookup_int(const config_t *config,
const char *path, int *value);
extern LIBCONFIG_API int config_lookup_int64(const config_t *config,
const char *path,
long long *value);
extern LIBCONFIG_API int config_lookup_float(const config_t *config,
const char *path, double *value);
extern LIBCONFIG_API int config_lookup_bool(const config_t *config,
const char *path, int *value);
extern LIBCONFIG_API int config_lookup_string(const config_t *config,
const char *path,
const char **value);
#define /* config_setting_t * */ config_root_setting( \
/* const config_t * */ C) \
((C)->root)
#define /* void */ config_set_default_format(/* config_t * */ C, \
/* short */ F) \
(C)->default_format = (F)
#define /* short */ config_get_default_format(/* config_t * */ C) \
((C)->default_format)
#define /* void */ config_set_tab_width(/* config_t * */ C, \
/* unsigned short */ W) \
(C)->tab_width = ((W) & 0x0F)
#define /* unsigned char */ config_get_tab_width(/* const config_t * */ C) \
((C)->tab_width)
#define /* unsigned short */ config_setting_source_line( \
/* const config_setting_t * */ S) \
((S)->line)
#define /* const char */ config_setting_source_file( \
/* const config_setting_t * */ S) \
((S)->file)
#define /* const char * */ config_error_text(/* const config_t * */ C) \
((C)->error_text)
#define /* const char * */ config_error_file(/* const config_t * */ C) \
((C)->error_file)
#define /* int */ config_error_line(/* const config_t * */ C) \
((C)->error_line)
#define /* config_error_t */ config_error_type(/* const config_t * */ C) \
((C)->error_type)
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __libconfig_h */
/* Declaration for error-reporting function
Copyright (C) 1995-2018 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 _ERROR_H
#define _ERROR_H 1
#include <features.h>
__BEGIN_DECLS
/* Print a message with `fprintf (stderr, FORMAT, ...)';
if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
extern void error (int __status, int __errnum, const char *__format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern void error_at_line (int __status, int __errnum, const char *__fname,
unsigned int __lineno, const char *__format, ...)
__attribute__ ((__format__ (__printf__, 5, 6)));
/* If NULL, error will flush stdout, then print on stderr the program
name, a colon and a space. Otherwise, error will call this
function without parameters instead. */
extern void (*error_print_progname) (void);
/* This variable is incremented each time `error' is called. */
extern unsigned int error_message_count;
/* Sometimes we want to have at most one error per line. This
variable controls whether this mode is selected or not. */
extern int error_one_per_line;
#if defined __extern_always_inline && defined __va_arg_pack
# include <bits/error.h>
#endif
__END_DECLS
#endif /* error.h */
/*************************************************
* Perl-Compatible Regular Expressions *
*************************************************/
/* This is the public header file for the PCRE library, to be #included by
applications that call the PCRE functions.
Copyright (c) 1997-2014 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the University of Cambridge nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-----------------------------------------------------------------------------
*/
#ifndef _PCRE_H
#define _PCRE_H
/* The current PCRE version information. */
#define PCRE_MAJOR 8
#define PCRE_MINOR 42
#define PCRE_PRERELEASE
#define PCRE_DATE 2018-03-20
/* When an application links to a PCRE DLL in Windows, the symbols that are
imported have to be identified as such. When building PCRE, the appropriate
export setting is defined in pcre_internal.h, which includes this file. So we
don't change existing definitions of PCRE_EXP_DECL and PCRECPP_EXP_DECL. */
#if defined(_WIN32) && !defined(PCRE_STATIC)
# ifndef PCRE_EXP_DECL
# define PCRE_EXP_DECL extern __declspec(dllimport)
# endif
# ifdef __cplusplus
# ifndef PCRECPP_EXP_DECL
# define PCRECPP_EXP_DECL extern __declspec(dllimport)
# endif
# ifndef PCRECPP_EXP_DEFN
# define PCRECPP_EXP_DEFN __declspec(dllimport)
# endif
# endif
#endif
/* By default, we use the standard "extern" declarations. */
#ifndef PCRE_EXP_DECL
# ifdef __cplusplus
# define PCRE_EXP_DECL extern "C"
# else
# define PCRE_EXP_DECL extern
# endif
#endif
#ifdef __cplusplus
# ifndef PCRECPP_EXP_DECL
# define PCRECPP_EXP_DECL extern
# endif
# ifndef PCRECPP_EXP_DEFN
# define PCRECPP_EXP_DEFN
# endif
#endif
/* Have to include stdlib.h in order to ensure that size_t is defined;
it is needed here for malloc. */
#include <stdlib.h>
/* Allow for C++ users */
#ifdef __cplusplus
extern "C" {
#endif
/* Public options. Some are compile-time only, some are run-time only, and some
are both. Most of the compile-time options are saved with the compiled regex so
that they can be inspected during studying (and therefore JIT compiling). Note
that pcre_study() has its own set of options. Originally, all the options
defined here used distinct bits. However, almost all the bits in a 32-bit word
are now used, so in order to conserve them, option bits that were previously
only recognized at matching time (i.e. by pcre_exec() or pcre_dfa_exec()) may
also be used for compile-time options that affect only compiling and are not
relevant for studying or JIT compiling.
Some options for pcre_compile() change its behaviour but do not affect the
behaviour of the execution functions. Other options are passed through to the
execution functions and affect their behaviour, with or without affecting the
behaviour of pcre_compile().
Options that can be passed to pcre_compile() are tagged Cx below, with these
variants:
C1 Affects compile only
C2 Does not affect compile; affects exec, dfa_exec
C3 Affects compile, exec, dfa_exec
C4 Affects compile, exec, dfa_exec, study
C5 Affects compile, exec, study
Options that can be set for pcre_exec() and/or pcre_dfa_exec() are flagged with
E and D, respectively. They take precedence over C3, C4, and C5 settings passed
from pcre_compile(). Those that are compatible with JIT execution are flagged
with J. */
#define PCRE_CASELESS 0x00000001 /* C1 */
#define PCRE_MULTILINE 0x00000002 /* C1 */
#define PCRE_DOTALL 0x00000004 /* C1 */
#define PCRE_EXTENDED 0x00000008 /* C1 */
#define PCRE_ANCHORED 0x00000010 /* C4 E D */
#define PCRE_DOLLAR_ENDONLY 0x00000020 /* C2 */
#define PCRE_EXTRA 0x00000040 /* C1 */
#define PCRE_NOTBOL 0x00000080 /* E D J */
#define PCRE_NOTEOL 0x00000100 /* E D J */
#define PCRE_UNGREEDY 0x00000200 /* C1 */
#define PCRE_NOTEMPTY 0x00000400 /* E D J */
#define PCRE_UTF8 0x00000800 /* C4 ) */
#define PCRE_UTF16 0x00000800 /* C4 ) Synonyms */
#define PCRE_UTF32 0x00000800 /* C4 ) */
#define PCRE_NO_AUTO_CAPTURE 0x00001000 /* C1 */
#define PCRE_NO_UTF8_CHECK 0x00002000 /* C1 E D J ) */
#define PCRE_NO_UTF16_CHECK 0x00002000 /* C1 E D J ) Synonyms */
#define PCRE_NO_UTF32_CHECK 0x00002000 /* C1 E D J ) */
#define PCRE_AUTO_CALLOUT 0x00004000 /* C1 */
#define PCRE_PARTIAL_SOFT 0x00008000 /* E D J ) Synonyms */
#define PCRE_PARTIAL 0x00008000 /* E D J ) */
/* This pair use the same bit. */
#define PCRE_NEVER_UTF 0x00010000 /* C1 ) Overlaid */
#define PCRE_DFA_SHORTEST 0x00010000 /* D ) Overlaid */
/* This pair use the same bit. */
#define PCRE_NO_AUTO_POSSESS 0x00020000 /* C1 ) Overlaid */
#define PCRE_DFA_RESTART 0x00020000 /* D ) Overlaid */
#define PCRE_FIRSTLINE 0x00040000 /* C3 */
#define PCRE_DUPNAMES 0x00080000 /* C1 */
#define PCRE_NEWLINE_CR 0x00100000 /* C3 E D */
#define PCRE_NEWLINE_LF 0x00200000 /* C3 E D */
#define PCRE_NEWLINE_CRLF 0x00300000 /* C3 E D */
#define PCRE_NEWLINE_ANY 0x00400000 /* C3 E D */
#define PCRE_NEWLINE_ANYCRLF 0x00500000 /* C3 E D */
#define PCRE_BSR_ANYCRLF 0x00800000 /* C3 E D */
#define PCRE_BSR_UNICODE 0x01000000 /* C3 E D */
#define PCRE_JAVASCRIPT_COMPAT 0x02000000 /* C5 */
#define PCRE_NO_START_OPTIMIZE 0x04000000 /* C2 E D ) Synonyms */
#define PCRE_NO_START_OPTIMISE 0x04000000 /* C2 E D ) */
#define PCRE_PARTIAL_HARD 0x08000000 /* E D J */
#define PCRE_NOTEMPTY_ATSTART 0x10000000 /* E D J */
#define PCRE_UCP 0x20000000 /* C3 */
/* Exec-time and get/set-time error codes */
#define PCRE_ERROR_NOMATCH (-1)
#define PCRE_ERROR_NULL (-2)
#define PCRE_ERROR_BADOPTION (-3)
#define PCRE_ERROR_BADMAGIC (-4)
#define PCRE_ERROR_UNKNOWN_OPCODE (-5)
#define PCRE_ERROR_UNKNOWN_NODE (-5) /* For backward compatibility */
#define PCRE_ERROR_NOMEMORY (-6)
#define PCRE_ERROR_NOSUBSTRING (-7)
#define PCRE_ERROR_MATCHLIMIT (-8)
#define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */
#define PCRE_ERROR_BADUTF8 (-10) /* Same for 8/16/32 */
#define PCRE_ERROR_BADUTF16 (-10) /* Same for 8/16/32 */
#define PCRE_ERROR_BADUTF32 (-10) /* Same for 8/16/32 */
#define PCRE_ERROR_BADUTF8_OFFSET (-11) /* Same for 8/16 */
#define PCRE_ERROR_BADUTF16_OFFSET (-11) /* Same for 8/16 */
#define PCRE_ERROR_PARTIAL (-12)
#define PCRE_ERROR_BADPARTIAL (-13)
#define PCRE_ERROR_INTERNAL (-14)
#define PCRE_ERROR_BADCOUNT (-15)
#define PCRE_ERROR_DFA_UITEM (-16)
#define PCRE_ERROR_DFA_UCOND (-17)
#define PCRE_ERROR_DFA_UMLIMIT (-18)
#define PCRE_ERROR_DFA_WSSIZE (-19)
#define PCRE_ERROR_DFA_RECURSE (-20)
#define PCRE_ERROR_RECURSIONLIMIT (-21)
#define PCRE_ERROR_NULLWSLIMIT (-22) /* No longer actually used */
#define PCRE_ERROR_BADNEWLINE (-23)
#define PCRE_ERROR_BADOFFSET (-24)
#define PCRE_ERROR_SHORTUTF8 (-25)
#define PCRE_ERROR_SHORTUTF16 (-25) /* Same for 8/16 */
#define PCRE_ERROR_RECURSELOOP (-26)
#define PCRE_ERROR_JIT_STACKLIMIT (-27)
#define PCRE_ERROR_BADMODE (-28)
#define PCRE_ERROR_BADENDIANNESS (-29)
#define PCRE_ERROR_DFA_BADRESTART (-30)
#define PCRE_ERROR_JIT_BADOPTION (-31)
#define PCRE_ERROR_BADLENGTH (-32)
#define PCRE_ERROR_UNSET (-33)
/* Specific error codes for UTF-8 validity checks */
#define PCRE_UTF8_ERR0 0
#define PCRE_UTF8_ERR1 1
#define PCRE_UTF8_ERR2 2
#define PCRE_UTF8_ERR3 3
#define PCRE_UTF8_ERR4 4
#define PCRE_UTF8_ERR5 5
#define PCRE_UTF8_ERR6 6
#define PCRE_UTF8_ERR7 7
#define PCRE_UTF8_ERR8 8
#define PCRE_UTF8_ERR9 9
#define PCRE_UTF8_ERR10 10
#define PCRE_UTF8_ERR11 11
#define PCRE_UTF8_ERR12 12
#define PCRE_UTF8_ERR13 13
#define PCRE_UTF8_ERR14 14
#define PCRE_UTF8_ERR15 15
#define PCRE_UTF8_ERR16 16
#define PCRE_UTF8_ERR17 17
#define PCRE_UTF8_ERR18 18
#define PCRE_UTF8_ERR19 19
#define PCRE_UTF8_ERR20 20
#define PCRE_UTF8_ERR21 21
#define PCRE_UTF8_ERR22 22 /* Unused (was non-character) */
/* Specific error codes for UTF-16 validity checks */
#define PCRE_UTF16_ERR0 0
#define PCRE_UTF16_ERR1 1
#define PCRE_UTF16_ERR2 2
#define PCRE_UTF16_ERR3 3
#define PCRE_UTF16_ERR4 4 /* Unused (was non-character) */
/* Specific error codes for UTF-32 validity checks */
#define PCRE_UTF32_ERR0 0
#define PCRE_UTF32_ERR1 1
#define PCRE_UTF32_ERR2 2 /* Unused (was non-character) */
#define PCRE_UTF32_ERR3 3
/* Request types for pcre_fullinfo() */
#define PCRE_INFO_OPTIONS 0
#define PCRE_INFO_SIZE 1
#define PCRE_INFO_CAPTURECOUNT 2
#define PCRE_INFO_BACKREFMAX 3
#define PCRE_INFO_FIRSTBYTE 4
#define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */
#define PCRE_INFO_FIRSTTABLE 5
#define PCRE_INFO_LASTLITERAL 6
#define PCRE_INFO_NAMEENTRYSIZE 7
#define PCRE_INFO_NAMECOUNT 8
#define PCRE_INFO_NAMETABLE 9
#define PCRE_INFO_STUDYSIZE 10
#define PCRE_INFO_DEFAULT_TABLES 11
#define PCRE_INFO_OKPARTIAL 12
#define PCRE_INFO_JCHANGED 13
#define PCRE_INFO_HASCRORLF 14
#define PCRE_INFO_MINLENGTH 15
#define PCRE_INFO_JIT 16
#define PCRE_INFO_JITSIZE 17
#define PCRE_INFO_MAXLOOKBEHIND 18
#define PCRE_INFO_FIRSTCHARACTER 19
#define PCRE_INFO_FIRSTCHARACTERFLAGS 20
#define PCRE_INFO_REQUIREDCHAR 21
#define PCRE_INFO_REQUIREDCHARFLAGS 22
#define PCRE_INFO_MATCHLIMIT 23
#define PCRE_INFO_RECURSIONLIMIT 24
#define PCRE_INFO_MATCH_EMPTY 25
/* Request types for pcre_config(). Do not re-arrange, in order to remain
compatible. */
#define PCRE_CONFIG_UTF8 0
#define PCRE_CONFIG_NEWLINE 1
#define PCRE_CONFIG_LINK_SIZE 2
#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3
#define PCRE_CONFIG_MATCH_LIMIT 4
#define PCRE_CONFIG_STACKRECURSE 5
#define PCRE_CONFIG_UNICODE_PROPERTIES 6
#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7
#define PCRE_CONFIG_BSR 8
#define PCRE_CONFIG_JIT 9
#define PCRE_CONFIG_UTF16 10
#define PCRE_CONFIG_JITTARGET 11
#define PCRE_CONFIG_UTF32 12
#define PCRE_CONFIG_PARENS_LIMIT 13
/* Request types for pcre_study(). Do not re-arrange, in order to remain
compatible. */
#define PCRE_STUDY_JIT_COMPILE 0x0001
#define PCRE_STUDY_JIT_PARTIAL_SOFT_COMPILE 0x0002
#define PCRE_STUDY_JIT_PARTIAL_HARD_COMPILE 0x0004
#define PCRE_STUDY_EXTRA_NEEDED 0x0008
/* Bit flags for the pcre[16|32]_extra structure. Do not re-arrange or redefine
these bits, just add new ones on the end, in order to remain compatible. */
#define PCRE_EXTRA_STUDY_DATA 0x0001
#define PCRE_EXTRA_MATCH_LIMIT 0x0002
#define PCRE_EXTRA_CALLOUT_DATA 0x0004
#define PCRE_EXTRA_TABLES 0x0008
#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010
#define PCRE_EXTRA_MARK 0x0020
#define PCRE_EXTRA_EXECUTABLE_JIT 0x0040
/* Types */
struct real_pcre8_or_16; /* declaration; the definition is private */
typedef struct real_pcre8_or_16 pcre;
struct real_pcre8_or_16; /* declaration; the definition is private */
typedef struct real_pcre8_or_16 pcre16;
struct real_pcre32; /* declaration; the definition is private */
typedef struct real_pcre32 pcre32;
struct real_pcre_jit_stack; /* declaration; the definition is private */
typedef struct real_pcre_jit_stack pcre_jit_stack;
struct real_pcre16_jit_stack; /* declaration; the definition is private */
typedef struct real_pcre16_jit_stack pcre16_jit_stack;
struct real_pcre32_jit_stack; /* declaration; the definition is private */
typedef struct real_pcre32_jit_stack pcre32_jit_stack;
/* If PCRE is compiled with 16 bit character support, PCRE_UCHAR16 must contain
a 16 bit wide signed data type. Otherwise it can be a dummy data type since
pcre16 functions are not implemented. There is a check for this in pcre_internal.h. */
#ifndef PCRE_UCHAR16
#define PCRE_UCHAR16 unsigned short
#endif
#ifndef PCRE_SPTR16
#define PCRE_SPTR16 const PCRE_UCHAR16 *
#endif
/* If PCRE is compiled with 32 bit character support, PCRE_UCHAR32 must contain
a 32 bit wide signed data type. Otherwise it can be a dummy data type since
pcre32 functions are not implemented. There is a check for this in pcre_internal.h. */
#ifndef PCRE_UCHAR32
#define PCRE_UCHAR32 unsigned int
#endif
#ifndef PCRE_SPTR32
#define PCRE_SPTR32 const PCRE_UCHAR32 *
#endif
/* When PCRE is compiled as a C++ library, the subject pointer type can be
replaced with a custom type. For conventional use, the public interface is a
const char *. */
#ifndef PCRE_SPTR
#define PCRE_SPTR const char *
#endif
/* The structure for passing additional data to pcre_exec(). This is defined in
such as way as to be extensible. Always add new fields at the end, in order to
remain compatible. */
typedef struct pcre_extra {
unsigned long int flags; /* Bits for which fields are set */
void *study_data; /* Opaque data from pcre_study() */
unsigned long int match_limit; /* Maximum number of calls to match() */
void *callout_data; /* Data passed back in callouts */
const unsigned char *tables; /* Pointer to character tables */
unsigned long int match_limit_recursion; /* Max recursive calls to match() */
unsigned char **mark; /* For passing back a mark pointer */
void *executable_jit; /* Contains a pointer to a compiled jit code */
} pcre_extra;
/* Same structure as above, but with 16 bit char pointers. */
typedef struct pcre16_extra {
unsigned long int flags; /* Bits for which fields are set */
void *study_data; /* Opaque data from pcre_study() */
unsigned long int match_limit; /* Maximum number of calls to match() */
void *callout_data; /* Data passed back in callouts */
const unsigned char *tables; /* Pointer to character tables */
unsigned long int match_limit_recursion; /* Max recursive calls to match() */
PCRE_UCHAR16 **mark; /* For passing back a mark pointer */
void *executable_jit; /* Contains a pointer to a compiled jit code */
} pcre16_extra;
/* Same structure as above, but with 32 bit char pointers. */
typedef struct pcre32_extra {
unsigned long int flags; /* Bits for which fields are set */
void *study_data; /* Opaque data from pcre_study() */
unsigned long int match_limit; /* Maximum number of calls to match() */
void *callout_data; /* Data passed back in callouts */
const unsigned char *tables; /* Pointer to character tables */
unsigned long int match_limit_recursion; /* Max recursive calls to match() */
PCRE_UCHAR32 **mark; /* For passing back a mark pointer */
void *executable_jit; /* Contains a pointer to a compiled jit code */
} pcre32_extra;
/* The structure for passing out data via the pcre_callout_function. We use a
structure so that new fields can be added on the end in future versions,
without changing the API of the function, thereby allowing old clients to work
without modification. */
typedef struct pcre_callout_block {
int version; /* Identifies version of block */
/* ------------------------ Version 0 ------------------------------- */
int callout_number; /* Number compiled into pattern */
int *offset_vector; /* The offset vector */
PCRE_SPTR subject; /* The subject being matched */
int subject_length; /* The length of the subject */
int start_match; /* Offset to start of this match attempt */
int current_position; /* Where we currently are in the subject */
int capture_top; /* Max current capture */
int capture_last; /* Most recently closed capture */
void *callout_data; /* Data passed in with the call */
/* ------------------- Added for Version 1 -------------------------- */
int pattern_position; /* Offset to next item in the pattern */
int next_item_length; /* Length of next item in the pattern */
/* ------------------- Added for Version 2 -------------------------- */
const unsigned char *mark; /* Pointer to current mark or NULL */
/* ------------------------------------------------------------------ */
} pcre_callout_block;
/* Same structure as above, but with 16 bit char pointers. */
typedef struct pcre16_callout_block {
int version; /* Identifies version of block */
/* ------------------------ Version 0 ------------------------------- */
int callout_number; /* Number compiled into pattern */
int *offset_vector; /* The offset vector */
PCRE_SPTR16 subject; /* The subject being matched */
int subject_length; /* The length of the subject */
int start_match; /* Offset to start of this match attempt */
int current_position; /* Where we currently are in the subject */
int capture_top; /* Max current capture */
int capture_last; /* Most recently closed capture */
void *callout_data; /* Data passed in with the call */
/* ------------------- Added for Version 1 -------------------------- */
int pattern_position; /* Offset to next item in the pattern */
int next_item_length; /* Length of next item in the pattern */
/* ------------------- Added for Version 2 -------------------------- */
const PCRE_UCHAR16 *mark; /* Pointer to current mark or NULL */
/* ------------------------------------------------------------------ */
} pcre16_callout_block;
/* Same structure as above, but with 32 bit char pointers. */
typedef struct pcre32_callout_block {
int version; /* Identifies version of block */
/* ------------------------ Version 0 ------------------------------- */
int callout_number; /* Number compiled into pattern */
int *offset_vector; /* The offset vector */
PCRE_SPTR32 subject; /* The subject being matched */
int subject_length; /* The length of the subject */
int start_match; /* Offset to start of this match attempt */
int current_position; /* Where we currently are in the subject */
int capture_top; /* Max current capture */
int capture_last; /* Most recently closed capture */
void *callout_data; /* Data passed in with the call */
/* ------------------- Added for Version 1 -------------------------- */
int pattern_position; /* Offset to next item in the pattern */
int next_item_length; /* Length of next item in the pattern */
/* ------------------- Added for Version 2 -------------------------- */
const PCRE_UCHAR32 *mark; /* Pointer to current mark or NULL */
/* ------------------------------------------------------------------ */
} pcre32_callout_block;
/* Indirection for store get and free functions. These can be set to
alternative malloc/free functions if required. Special ones are used in the
non-recursive case for "frames". There is also an optional callout function
that is triggered by the (?) regex item. For Virtual Pascal, these definitions
have to take another form. */
#ifndef VPCOMPAT
PCRE_EXP_DECL void *(*pcre_malloc)(size_t);
PCRE_EXP_DECL void (*pcre_free)(void *);
PCRE_EXP_DECL void *(*pcre_stack_malloc)(size_t);
PCRE_EXP_DECL void (*pcre_stack_free)(void *);
PCRE_EXP_DECL int (*pcre_callout)(pcre_callout_block *);
PCRE_EXP_DECL int (*pcre_stack_guard)(void);
PCRE_EXP_DECL void *(*pcre16_malloc)(size_t);
PCRE_EXP_DECL void (*pcre16_free)(void *);
PCRE_EXP_DECL void *(*pcre16_stack_malloc)(size_t);
PCRE_EXP_DECL void (*pcre16_stack_free)(void *);
PCRE_EXP_DECL int (*pcre16_callout)(pcre16_callout_block *);
PCRE_EXP_DECL int (*pcre16_stack_guard)(void);
PCRE_EXP_DECL void *(*pcre32_malloc)(size_t);
PCRE_EXP_DECL void (*pcre32_free)(void *);
PCRE_EXP_DECL void *(*pcre32_stack_malloc)(size_t);
PCRE_EXP_DECL void (*pcre32_stack_free)(void *);
PCRE_EXP_DECL int (*pcre32_callout)(pcre32_callout_block *);
PCRE_EXP_DECL int (*pcre32_stack_guard)(void);
#else /* VPCOMPAT */
PCRE_EXP_DECL void *pcre_malloc(size_t);
PCRE_EXP_DECL void pcre_free(void *);
PCRE_EXP_DECL void *pcre_stack_malloc(size_t);
PCRE_EXP_DECL void pcre_stack_free(void *);
PCRE_EXP_DECL int pcre_callout(pcre_callout_block *);
PCRE_EXP_DECL int pcre_stack_guard(void);
PCRE_EXP_DECL void *pcre16_malloc(size_t);
PCRE_EXP_DECL void pcre16_free(void *);
PCRE_EXP_DECL void *pcre16_stack_malloc(size_t);
PCRE_EXP_DECL void pcre16_stack_free(void *);
PCRE_EXP_DECL int pcre16_callout(pcre16_callout_block *);
PCRE_EXP_DECL int pcre16_stack_guard(void);
PCRE_EXP_DECL void *pcre32_malloc(size_t);
PCRE_EXP_DECL void pcre32_free(void *);
PCRE_EXP_DECL void *pcre32_stack_malloc(size_t);
PCRE_EXP_DECL void pcre32_stack_free(void *);
PCRE_EXP_DECL int pcre32_callout(pcre32_callout_block *);
PCRE_EXP_DECL int pcre32_stack_guard(void);
#endif /* VPCOMPAT */
/* User defined callback which provides a stack just before the match starts. */
typedef pcre_jit_stack *(*pcre_jit_callback)(void *);
typedef pcre16_jit_stack *(*pcre16_jit_callback)(void *);
typedef pcre32_jit_stack *(*pcre32_jit_callback)(void *);
/* Exported PCRE functions */
PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *,
const unsigned char *);
PCRE_EXP_DECL pcre16 *pcre16_compile(PCRE_SPTR16, int, const char **, int *,
const unsigned char *);
PCRE_EXP_DECL pcre32 *pcre32_compile(PCRE_SPTR32, int, const char **, int *,
const unsigned char *);
PCRE_EXP_DECL pcre *pcre_compile2(const char *, int, int *, const char **,
int *, const unsigned char *);
PCRE_EXP_DECL pcre16 *pcre16_compile2(PCRE_SPTR16, int, int *, const char **,
int *, const unsigned char *);
PCRE_EXP_DECL pcre32 *pcre32_compile2(PCRE_SPTR32, int, int *, const char **,
int *, const unsigned char *);
PCRE_EXP_DECL int pcre_config(int, void *);
PCRE_EXP_DECL int pcre16_config(int, void *);
PCRE_EXP_DECL int pcre32_config(int, void *);
PCRE_EXP_DECL int pcre_copy_named_substring(const pcre *, const char *,
int *, int, const char *, char *, int);
PCRE_EXP_DECL int pcre16_copy_named_substring(const pcre16 *, PCRE_SPTR16,
int *, int, PCRE_SPTR16, PCRE_UCHAR16 *, int);
PCRE_EXP_DECL int pcre32_copy_named_substring(const pcre32 *, PCRE_SPTR32,
int *, int, PCRE_SPTR32, PCRE_UCHAR32 *, int);
PCRE_EXP_DECL int pcre_copy_substring(const char *, int *, int, int,
char *, int);
PCRE_EXP_DECL int pcre16_copy_substring(PCRE_SPTR16, int *, int, int,
PCRE_UCHAR16 *, int);
PCRE_EXP_DECL int pcre32_copy_substring(PCRE_SPTR32, int *, int, int,
PCRE_UCHAR32 *, int);
PCRE_EXP_DECL int pcre_dfa_exec(const pcre *, const pcre_extra *,
const char *, int, int, int, int *, int , int *, int);
PCRE_EXP_DECL int pcre16_dfa_exec(const pcre16 *, const pcre16_extra *,
PCRE_SPTR16, int, int, int, int *, int , int *, int);
PCRE_EXP_DECL int pcre32_dfa_exec(const pcre32 *, const pcre32_extra *,
PCRE_SPTR32, int, int, int, int *, int , int *, int);
PCRE_EXP_DECL int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,
int, int, int, int *, int);
PCRE_EXP_DECL int pcre16_exec(const pcre16 *, const pcre16_extra *,
PCRE_SPTR16, int, int, int, int *, int);
PCRE_EXP_DECL int pcre32_exec(const pcre32 *, const pcre32_extra *,
PCRE_SPTR32, int, int, int, int *, int);
PCRE_EXP_DECL int pcre_jit_exec(const pcre *, const pcre_extra *,
PCRE_SPTR, int, int, int, int *, int,
pcre_jit_stack *);
PCRE_EXP_DECL int pcre16_jit_exec(const pcre16 *, const pcre16_extra *,
PCRE_SPTR16, int, int, int, int *, int,
pcre16_jit_stack *);
PCRE_EXP_DECL int pcre32_jit_exec(const pcre32 *, const pcre32_extra *,
PCRE_SPTR32, int, int, int, int *, int,
pcre32_jit_stack *);
PCRE_EXP_DECL void pcre_free_substring(const char *);
PCRE_EXP_DECL void pcre16_free_substring(PCRE_SPTR16);
PCRE_EXP_DECL void pcre32_free_substring(PCRE_SPTR32);
PCRE_EXP_DECL void pcre_free_substring_list(const char **);
PCRE_EXP_DECL void pcre16_free_substring_list(PCRE_SPTR16 *);
PCRE_EXP_DECL void pcre32_free_substring_list(PCRE_SPTR32 *);
PCRE_EXP_DECL int pcre_fullinfo(const pcre *, const pcre_extra *, int,
void *);
PCRE_EXP_DECL int pcre16_fullinfo(const pcre16 *, const pcre16_extra *, int,
void *);
PCRE_EXP_DECL int pcre32_fullinfo(const pcre32 *, const pcre32_extra *, int,
void *);
PCRE_EXP_DECL int pcre_get_named_substring(const pcre *, const char *,
int *, int, const char *, const char **);
PCRE_EXP_DECL int pcre16_get_named_substring(const pcre16 *, PCRE_SPTR16,
int *, int, PCRE_SPTR16, PCRE_SPTR16 *);
PCRE_EXP_DECL int pcre32_get_named_substring(const pcre32 *, PCRE_SPTR32,
int *, int, PCRE_SPTR32, PCRE_SPTR32 *);
PCRE_EXP_DECL int pcre_get_stringnumber(const pcre *, const char *);
PCRE_EXP_DECL int pcre16_get_stringnumber(const pcre16 *, PCRE_SPTR16);
PCRE_EXP_DECL int pcre32_get_stringnumber(const pcre32 *, PCRE_SPTR32);
PCRE_EXP_DECL int pcre_get_stringtable_entries(const pcre *, const char *,
char **, char **);
PCRE_EXP_DECL int pcre16_get_stringtable_entries(const pcre16 *, PCRE_SPTR16,
PCRE_UCHAR16 **, PCRE_UCHAR16 **);
PCRE_EXP_DECL int pcre32_get_stringtable_entries(const pcre32 *, PCRE_SPTR32,
PCRE_UCHAR32 **, PCRE_UCHAR32 **);
PCRE_EXP_DECL int pcre_get_substring(const char *, int *, int, int,
const char **);
PCRE_EXP_DECL int pcre16_get_substring(PCRE_SPTR16, int *, int, int,
PCRE_SPTR16 *);
PCRE_EXP_DECL int pcre32_get_substring(PCRE_SPTR32, int *, int, int,
PCRE_SPTR32 *);
PCRE_EXP_DECL int pcre_get_substring_list(const char *, int *, int,
const char ***);
PCRE_EXP_DECL int pcre16_get_substring_list(PCRE_SPTR16, int *, int,
PCRE_SPTR16 **);
PCRE_EXP_DECL int pcre32_get_substring_list(PCRE_SPTR32, int *, int,
PCRE_SPTR32 **);
PCRE_EXP_DECL const unsigned char *pcre_maketables(void);
PCRE_EXP_DECL const unsigned char *pcre16_maketables(void);
PCRE_EXP_DECL const unsigned char *pcre32_maketables(void);
PCRE_EXP_DECL int pcre_refcount(pcre *, int);
PCRE_EXP_DECL int pcre16_refcount(pcre16 *, int);
PCRE_EXP_DECL int pcre32_refcount(pcre32 *, int);
PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **);
PCRE_EXP_DECL pcre16_extra *pcre16_study(const pcre16 *, int, const char **);
PCRE_EXP_DECL pcre32_extra *pcre32_study(const pcre32 *, int, const char **);
PCRE_EXP_DECL void pcre_free_study(pcre_extra *);
PCRE_EXP_DECL void pcre16_free_study(pcre16_extra *);
PCRE_EXP_DECL void pcre32_free_study(pcre32_extra *);
PCRE_EXP_DECL const char *pcre_version(void);
PCRE_EXP_DECL const char *pcre16_version(void);
PCRE_EXP_DECL const char *pcre32_version(void);
/* Utility functions for byte order swaps. */
PCRE_EXP_DECL int pcre_pattern_to_host_byte_order(pcre *, pcre_extra *,
const unsigned char *);
PCRE_EXP_DECL int pcre16_pattern_to_host_byte_order(pcre16 *, pcre16_extra *,
const unsigned char *);
PCRE_EXP_DECL int pcre32_pattern_to_host_byte_order(pcre32 *, pcre32_extra *,
const unsigned char *);
PCRE_EXP_DECL int pcre16_utf16_to_host_byte_order(PCRE_UCHAR16 *,
PCRE_SPTR16, int, int *, int);
PCRE_EXP_DECL int pcre32_utf32_to_host_byte_order(PCRE_UCHAR32 *,
PCRE_SPTR32, int, int *, int);
/* JIT compiler related functions. */
PCRE_EXP_DECL pcre_jit_stack *pcre_jit_stack_alloc(int, int);
PCRE_EXP_DECL pcre16_jit_stack *pcre16_jit_stack_alloc(int, int);
PCRE_EXP_DECL pcre32_jit_stack *pcre32_jit_stack_alloc(int, int);
PCRE_EXP_DECL void pcre_jit_stack_free(pcre_jit_stack *);
PCRE_EXP_DECL void pcre16_jit_stack_free(pcre16_jit_stack *);
PCRE_EXP_DECL void pcre32_jit_stack_free(pcre32_jit_stack *);
PCRE_EXP_DECL void pcre_assign_jit_stack(pcre_extra *,
pcre_jit_callback, void *);
PCRE_EXP_DECL void pcre16_assign_jit_stack(pcre16_extra *,
pcre16_jit_callback, void *);
PCRE_EXP_DECL void pcre32_assign_jit_stack(pcre32_extra *,
pcre32_jit_callback, void *);
PCRE_EXP_DECL void pcre_jit_free_unused_memory(void);
PCRE_EXP_DECL void pcre16_jit_free_unused_memory(void);
PCRE_EXP_DECL void pcre32_jit_free_unused_memory(void);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* End of pcre.h */
// Copyright (c) 2005, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Author: Sanjay Ghemawat
// Support for PCRE_XXX modifiers added by Giuseppe Maxia, July 2005
#ifndef _PCRECPP_H
#define _PCRECPP_H
// C++ interface to the pcre regular-expression library. RE supports
// Perl-style regular expressions (with extensions like \d, \w, \s,
// ...).
//
// -----------------------------------------------------------------------
// REGEXP SYNTAX:
//
// This module is part of the pcre library and hence supports its syntax
// for regular expressions.
//
// The syntax is pretty similar to Perl's. For those not familiar
// with Perl's regular expressions, here are some examples of the most
// commonly used extensions:
//
// "hello (\\w+) world" -- \w matches a "word" character
// "version (\\d+)" -- \d matches a digit
// "hello\\s+world" -- \s matches any whitespace character
// "\\b(\\w+)\\b" -- \b matches empty string at a word boundary
// "(?i)hello" -- (?i) turns on case-insensitive matching
// "/\\*(.*?)\\*/" -- .*? matches . minimum no. of times possible
//
// -----------------------------------------------------------------------
// MATCHING INTERFACE:
//
// The "FullMatch" operation checks that supplied text matches a
// supplied pattern exactly.
//
// Example: successful match
// pcrecpp::RE re("h.*o");
// re.FullMatch("hello");
//
// Example: unsuccessful match (requires full match):
// pcrecpp::RE re("e");
// !re.FullMatch("hello");
//
// Example: creating a temporary RE object:
// pcrecpp::RE("h.*o").FullMatch("hello");
//
// You can pass in a "const char*" or a "string" for "text". The
// examples below tend to use a const char*.
//
// You can, as in the different examples above, store the RE object
// explicitly in a variable or use a temporary RE object. The
// examples below use one mode or the other arbitrarily. Either
// could correctly be used for any of these examples.
//
// -----------------------------------------------------------------------
// MATCHING WITH SUB-STRING EXTRACTION:
//
// You can supply extra pointer arguments to extract matched subpieces.
//
// Example: extracts "ruby" into "s" and 1234 into "i"
// int i;
// string s;
// pcrecpp::RE re("(\\w+):(\\d+)");
// re.FullMatch("ruby:1234", &s, &i);
//
// Example: does not try to extract any extra sub-patterns
// re.FullMatch("ruby:1234", &s);
//
// Example: does not try to extract into NULL
// re.FullMatch("ruby:1234", NULL, &i);
//
// Example: integer overflow causes failure
// !re.FullMatch("ruby:1234567891234", NULL, &i);
//
// Example: fails because there aren't enough sub-patterns:
// !pcrecpp::RE("\\w+:\\d+").FullMatch("ruby:1234", &s);
//
// Example: fails because string cannot be stored in integer
// !pcrecpp::RE("(.*)").FullMatch("ruby", &i);
//
// The provided pointer arguments can be pointers to any scalar numeric
// type, or one of
// string (matched piece is copied to string)
// StringPiece (StringPiece is mutated to point to matched piece)
// T (where "bool T::ParseFrom(const char*, int)" exists)
// NULL (the corresponding matched sub-pattern is not copied)
//
// CAVEAT: An optional sub-pattern that does not exist in the matched
// string is assigned the empty string. Therefore, the following will
// return false (because the empty string is not a valid number):
// int number;
// pcrecpp::RE::FullMatch("abc", "[a-z]+(\\d+)?", &number);
//
// -----------------------------------------------------------------------
// DO_MATCH
//
// The matching interface supports at most 16 arguments per call.
// If you need more, consider using the more general interface
// pcrecpp::RE::DoMatch(). See pcrecpp.h for the signature for DoMatch.
//
// -----------------------------------------------------------------------
// PARTIAL MATCHES
//
// You can use the "PartialMatch" operation when you want the pattern
// to match any substring of the text.
//
// Example: simple search for a string:
// pcrecpp::RE("ell").PartialMatch("hello");
//
// Example: find first number in a string:
// int number;
// pcrecpp::RE re("(\\d+)");
// re.PartialMatch("x*100 + 20", &number);
// assert(number == 100);
//
// -----------------------------------------------------------------------
// UTF-8 AND THE MATCHING INTERFACE:
//
// By default, pattern and text are plain text, one byte per character.
// The UTF8 flag, passed to the constructor, causes both pattern
// and string to be treated as UTF-8 text, still a byte stream but
// potentially multiple bytes per character. In practice, the text
// is likelier to be UTF-8 than the pattern, but the match returned
// may depend on the UTF8 flag, so always use it when matching
// UTF8 text. E.g., "." will match one byte normally but with UTF8
// set may match up to three bytes of a multi-byte character.
//
// Example:
// pcrecpp::RE_Options options;
// options.set_utf8();
// pcrecpp::RE re(utf8_pattern, options);
// re.FullMatch(utf8_string);
//
// Example: using the convenience function UTF8():
// pcrecpp::RE re(utf8_pattern, pcrecpp::UTF8());
// re.FullMatch(utf8_string);
//
// NOTE: The UTF8 option is ignored if pcre was not configured with the
// --enable-utf8 flag.
//
// -----------------------------------------------------------------------
// PASSING MODIFIERS TO THE REGULAR EXPRESSION ENGINE
//
// PCRE defines some modifiers to change the behavior of the regular
// expression engine.
// The C++ wrapper defines an auxiliary class, RE_Options, as a vehicle
// to pass such modifiers to a RE class.
//
// Currently, the following modifiers are supported
//
// modifier description Perl corresponding
//
// PCRE_CASELESS case insensitive match /i
// PCRE_MULTILINE multiple lines match /m
// PCRE_DOTALL dot matches newlines /s
// PCRE_DOLLAR_ENDONLY $ matches only at end N/A
// PCRE_EXTRA strict escape parsing N/A
// PCRE_EXTENDED ignore whitespaces /x
// PCRE_UTF8 handles UTF8 chars built-in
// PCRE_UNGREEDY reverses * and *? N/A
// PCRE_NO_AUTO_CAPTURE disables matching parens N/A (*)
//
// (For a full account on how each modifier works, please check the
// PCRE API reference manual).
//
// (*) Both Perl and PCRE allow non matching parentheses by means of the
// "?:" modifier within the pattern itself. e.g. (?:ab|cd) does not
// capture, while (ab|cd) does.
//
// For each modifier, there are two member functions whose name is made
// out of the modifier in lowercase, without the "PCRE_" prefix. For
// instance, PCRE_CASELESS is handled by
// bool caseless(),
// which returns true if the modifier is set, and
// RE_Options & set_caseless(bool),
// which sets or unsets the modifier.
//
// Moreover, PCRE_EXTRA_MATCH_LIMIT can be accessed through the
// set_match_limit() and match_limit() member functions.
// Setting match_limit to a non-zero value will limit the executation of
// pcre to keep it from doing bad things like blowing the stack or taking
// an eternity to return a result. A value of 5000 is good enough to stop
// stack blowup in a 2MB thread stack. Setting match_limit to zero will
// disable match limiting. Alternately, you can set match_limit_recursion()
// which uses PCRE_EXTRA_MATCH_LIMIT_RECURSION to limit how much pcre
// recurses. match_limit() caps the number of matches pcre does;
// match_limit_recrusion() caps the depth of recursion.
//
// Normally, to pass one or more modifiers to a RE class, you declare
// a RE_Options object, set the appropriate options, and pass this
// object to a RE constructor. Example:
//
// RE_options opt;
// opt.set_caseless(true);
//
// if (RE("HELLO", opt).PartialMatch("hello world")) ...
//
// RE_options has two constructors. The default constructor takes no
// arguments and creates a set of flags that are off by default.
//
// The optional parameter 'option_flags' is to facilitate transfer
// of legacy code from C programs. This lets you do
// RE(pattern, RE_Options(PCRE_CASELESS|PCRE_MULTILINE)).PartialMatch(str);
//
// But new code is better off doing
// RE(pattern,
// RE_Options().set_caseless(true).set_multiline(true)).PartialMatch(str);
// (See below)
//
// If you are going to pass one of the most used modifiers, there are some
// convenience functions that return a RE_Options class with the
// appropriate modifier already set:
// CASELESS(), UTF8(), MULTILINE(), DOTALL(), EXTENDED()
//
// If you need to set several options at once, and you don't want to go
// through the pains of declaring a RE_Options object and setting several
// options, there is a parallel method that give you such ability on the
// fly. You can concatenate several set_xxxxx member functions, since each
// of them returns a reference to its class object. e.g.: to pass
// PCRE_CASELESS, PCRE_EXTENDED, and PCRE_MULTILINE to a RE with one
// statement, you may write
//
// RE(" ^ xyz \\s+ .* blah$", RE_Options()
// .set_caseless(true)
// .set_extended(true)
// .set_multiline(true)).PartialMatch(sometext);
//
// -----------------------------------------------------------------------
// SCANNING TEXT INCREMENTALLY
//
// The "Consume" operation may be useful if you want to repeatedly
// match regular expressions at the front of a string and skip over
// them as they match. This requires use of the "StringPiece" type,
// which represents a sub-range of a real string. Like RE, StringPiece
// is defined in the pcrecpp namespace.
//
// Example: read lines of the form "var = value" from a string.
// string contents = ...; // Fill string somehow
// pcrecpp::StringPiece input(contents); // Wrap in a StringPiece
//
// string var;
// int value;
// pcrecpp::RE re("(\\w+) = (\\d+)\n");
// while (re.Consume(&input, &var, &value)) {
// ...;
// }
//
// Each successful call to "Consume" will set "var/value", and also
// advance "input" so it points past the matched text.
//
// The "FindAndConsume" operation is similar to "Consume" but does not
// anchor your match at the beginning of the string. For example, you
// could extract all words from a string by repeatedly calling
// pcrecpp::RE("(\\w+)").FindAndConsume(&input, &word)
//
// -----------------------------------------------------------------------
// PARSING HEX/OCTAL/C-RADIX NUMBERS
//
// By default, if you pass a pointer to a numeric value, the
// corresponding text is interpreted as a base-10 number. You can
// instead wrap the pointer with a call to one of the operators Hex(),
// Octal(), or CRadix() to interpret the text in another base. The
// CRadix operator interprets C-style "0" (base-8) and "0x" (base-16)
// prefixes, but defaults to base-10.
//
// Example:
// int a, b, c, d;
// pcrecpp::RE re("(.*) (.*) (.*) (.*)");
// re.FullMatch("100 40 0100 0x40",
// pcrecpp::Octal(&a), pcrecpp::Hex(&b),
// pcrecpp::CRadix(&c), pcrecpp::CRadix(&d));
// will leave 64 in a, b, c, and d.
//
// -----------------------------------------------------------------------
// REPLACING PARTS OF STRINGS
//
// You can replace the first match of "pattern" in "str" with
// "rewrite". Within "rewrite", backslash-escaped digits (\1 to \9)
// can be used to insert text matching corresponding parenthesized
// group from the pattern. \0 in "rewrite" refers to the entire
// matching text. E.g.,
//
// string s = "yabba dabba doo";
// pcrecpp::RE("b+").Replace("d", &s);
//
// will leave "s" containing "yada dabba doo". The result is true if
// the pattern matches and a replacement occurs, or false otherwise.
//
// GlobalReplace() is like Replace(), except that it replaces all
// occurrences of the pattern in the string with the rewrite.
// Replacements are not subject to re-matching. E.g.,
//
// string s = "yabba dabba doo";
// pcrecpp::RE("b+").GlobalReplace("d", &s);
//
// will leave "s" containing "yada dada doo". It returns the number
// of replacements made.
//
// Extract() is like Replace(), except that if the pattern matches,
// "rewrite" is copied into "out" (an additional argument) with
// substitutions. The non-matching portions of "text" are ignored.
// Returns true iff a match occurred and the extraction happened
// successfully. If no match occurs, the string is left unaffected.
#include <string>
#include <pcre.h>
#include <pcrecpparg.h> // defines the Arg class
// This isn't technically needed here, but we include it
// anyway so folks who include pcrecpp.h don't have to.
#include <pcre_stringpiece.h>
namespace pcrecpp {
#define PCRE_SET_OR_CLEAR(b, o) \
if (b) all_options_ |= (o); else all_options_ &= ~(o); \
return *this
#define PCRE_IS_SET(o) \
(all_options_ & o) == o
/***** Compiling regular expressions: the RE class *****/
// RE_Options allow you to set options to be passed along to pcre,
// along with other options we put on top of pcre.
// Only 9 modifiers, plus match_limit and match_limit_recursion,
// are supported now.
class PCRECPP_EXP_DEFN RE_Options {
public:
// constructor
RE_Options() : match_limit_(0), match_limit_recursion_(0), all_options_(0) {}
// alternative constructor.
// To facilitate transfer of legacy code from C programs
//
// This lets you do
// RE(pattern, RE_Options(PCRE_CASELESS|PCRE_MULTILINE)).PartialMatch(str);
// But new code is better off doing
// RE(pattern,
// RE_Options().set_caseless(true).set_multiline(true)).PartialMatch(str);
RE_Options(int option_flags) : match_limit_(0), match_limit_recursion_(0),
all_options_(option_flags) {}
// we're fine with the default destructor, copy constructor, etc.
// accessors and mutators
int match_limit() const { return match_limit_; };
RE_Options &set_match_limit(int limit) {
match_limit_ = limit;
return *this;
}
int match_limit_recursion() const { return match_limit_recursion_; };
RE_Options &set_match_limit_recursion(int limit) {
match_limit_recursion_ = limit;
return *this;
}
bool caseless() const {
return PCRE_IS_SET(PCRE_CASELESS);
}
RE_Options &set_caseless(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_CASELESS);
}
bool multiline() const {
return PCRE_IS_SET(PCRE_MULTILINE);
}
RE_Options &set_multiline(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_MULTILINE);
}
bool dotall() const {
return PCRE_IS_SET(PCRE_DOTALL);
}
RE_Options &set_dotall(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_DOTALL);
}
bool extended() const {
return PCRE_IS_SET(PCRE_EXTENDED);
}
RE_Options &set_extended(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_EXTENDED);
}
bool dollar_endonly() const {
return PCRE_IS_SET(PCRE_DOLLAR_ENDONLY);
}
RE_Options &set_dollar_endonly(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_DOLLAR_ENDONLY);
}
bool extra() const {
return PCRE_IS_SET(PCRE_EXTRA);
}
RE_Options &set_extra(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_EXTRA);
}
bool ungreedy() const {
return PCRE_IS_SET(PCRE_UNGREEDY);
}
RE_Options &set_ungreedy(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_UNGREEDY);
}
bool utf8() const {
return PCRE_IS_SET(PCRE_UTF8);
}
RE_Options &set_utf8(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_UTF8);
}
bool no_auto_capture() const {
return PCRE_IS_SET(PCRE_NO_AUTO_CAPTURE);
}
RE_Options &set_no_auto_capture(bool x) {
PCRE_SET_OR_CLEAR(x, PCRE_NO_AUTO_CAPTURE);
}
RE_Options &set_all_options(int opt) {
all_options_ = opt;
return *this;
}
int all_options() const {
return all_options_ ;
}
// TODO: add other pcre flags
private:
int match_limit_;
int match_limit_recursion_;
int all_options_;
};
// These functions return some common RE_Options
static inline RE_Options UTF8() {
return RE_Options().set_utf8(true);
}
static inline RE_Options CASELESS() {
return RE_Options().set_caseless(true);
}
static inline RE_Options MULTILINE() {
return RE_Options().set_multiline(true);
}
static inline RE_Options DOTALL() {
return RE_Options().set_dotall(true);
}
static inline RE_Options EXTENDED() {
return RE_Options().set_extended(true);
}
// Interface for regular expression matching. Also corresponds to a
// pre-compiled regular expression. An "RE" object is safe for
// concurrent use by multiple threads.
class PCRECPP_EXP_DEFN RE {
public:
// We provide implicit conversions from strings so that users can
// pass in a string or a "const char*" wherever an "RE" is expected.
RE(const string& pat) { Init(pat, NULL); }
RE(const string& pat, const RE_Options& option) { Init(pat, &option); }
RE(const char* pat) { Init(pat, NULL); }
RE(const char* pat, const RE_Options& option) { Init(pat, &option); }
RE(const unsigned char* pat) {
Init(reinterpret_cast<const char*>(pat), NULL);
}
RE(const unsigned char* pat, const RE_Options& option) {
Init(reinterpret_cast<const char*>(pat), &option);
}
// Copy constructor & assignment - note that these are expensive
// because they recompile the expression.
RE(const RE& re) { Init(re.pattern_, &re.options_); }
const RE& operator=(const RE& re) {
if (this != &re) {
Cleanup();
// This is the code that originally came from Google
// Init(re.pattern_.c_str(), &re.options_);
// This is the replacement from Ari Pollak
Init(re.pattern_, &re.options_);
}
return *this;
}
~RE();
// The string specification for this RE. E.g.
// RE re("ab*c?d+");
// re.pattern(); // "ab*c?d+"
const string& pattern() const { return pattern_; }
// If RE could not be created properly, returns an error string.
// Else returns the empty string.
const string& error() const { return *error_; }
/***** The useful part: the matching interface *****/
// This is provided so one can do pattern.ReplaceAll() just as
// easily as ReplaceAll(pattern-text, ....)
bool FullMatch(const StringPiece& text,
const Arg& ptr1 = no_arg,
const Arg& ptr2 = no_arg,
const Arg& ptr3 = no_arg,
const Arg& ptr4 = no_arg,
const Arg& ptr5 = no_arg,
const Arg& ptr6 = no_arg,
const Arg& ptr7 = no_arg,
const Arg& ptr8 = no_arg,
const Arg& ptr9 = no_arg,
const Arg& ptr10 = no_arg,
const Arg& ptr11 = no_arg,
const Arg& ptr12 = no_arg,
const Arg& ptr13 = no_arg,
const Arg& ptr14 = no_arg,
const Arg& ptr15 = no_arg,
const Arg& ptr16 = no_arg) const;
bool PartialMatch(const StringPiece& text,
const Arg& ptr1 = no_arg,
const Arg& ptr2 = no_arg,
const Arg& ptr3 = no_arg,
const Arg& ptr4 = no_arg,
const Arg& ptr5 = no_arg,
const Arg& ptr6 = no_arg,
const Arg& ptr7 = no_arg,
const Arg& ptr8 = no_arg,
const Arg& ptr9 = no_arg,
const Arg& ptr10 = no_arg,
const Arg& ptr11 = no_arg,
const Arg& ptr12 = no_arg,
const Arg& ptr13 = no_arg,
const Arg& ptr14 = no_arg,
const Arg& ptr15 = no_arg,
const Arg& ptr16 = no_arg) const;
bool Consume(StringPiece* input,
const Arg& ptr1 = no_arg,
const Arg& ptr2 = no_arg,
const Arg& ptr3 = no_arg,
const Arg& ptr4 = no_arg,
const Arg& ptr5 = no_arg,
const Arg& ptr6 = no_arg,
const Arg& ptr7 = no_arg,
const Arg& ptr8 = no_arg,
const Arg& ptr9 = no_arg,
const Arg& ptr10 = no_arg,
const Arg& ptr11 = no_arg,
const Arg& ptr12 = no_arg,
const Arg& ptr13 = no_arg,
const Arg& ptr14 = no_arg,
const Arg& ptr15 = no_arg,
const Arg& ptr16 = no_arg) const;
bool FindAndConsume(StringPiece* input,
const Arg& ptr1 = no_arg,
const Arg& ptr2 = no_arg,
const Arg& ptr3 = no_arg,
const Arg& ptr4 = no_arg,
const Arg& ptr5 = no_arg,
const Arg& ptr6 = no_arg,
const Arg& ptr7 = no_arg,
const Arg& ptr8 = no_arg,
const Arg& ptr9 = no_arg,
const Arg& ptr10 = no_arg,
const Arg& ptr11 = no_arg,
const Arg& ptr12 = no_arg,
const Arg& ptr13 = no_arg,
const Arg& ptr14 = no_arg,
const Arg& ptr15 = no_arg,
const Arg& ptr16 = no_arg) const;
bool Replace(const StringPiece& rewrite,
string *str) const;
int GlobalReplace(const StringPiece& rewrite,
string *str) const;
bool Extract(const StringPiece &rewrite,
const StringPiece &text,
string *out) const;
// Escapes all potentially meaningful regexp characters in
// 'unquoted'. The returned string, used as a regular expression,
// will exactly match the original string. For example,
// 1.5-2.0?
// may become:
// 1\.5\-2\.0\?
// Note QuoteMeta behaves the same as perl's QuoteMeta function,
// *except* that it escapes the NUL character (\0) as backslash + 0,
// rather than backslash + NUL.
static string QuoteMeta(const StringPiece& unquoted);
/***** Generic matching interface *****/
// Type of match (TODO: Should be restructured as part of RE_Options)
enum Anchor {
UNANCHORED, // No anchoring
ANCHOR_START, // Anchor at start only
ANCHOR_BOTH // Anchor at start and end
};
// General matching routine. Stores the length of the match in
// "*consumed" if successful.
bool DoMatch(const StringPiece& text,
Anchor anchor,
int* consumed,
const Arg* const* args, int n) const;
// Return the number of capturing subpatterns, or -1 if the
// regexp wasn't valid on construction.
int NumberOfCapturingGroups() const;
// The default value for an argument, to indicate the end of the argument
// list. This must be used only in optional argument defaults. It should NOT
// be passed explicitly. Some people have tried to use it like this:
//
// FullMatch(x, y, &z, no_arg, &w);
//
// This is a mistake, and will not work.
static Arg no_arg;
private:
void Init(const string& pattern, const RE_Options* options);
void Cleanup();
// Match against "text", filling in "vec" (up to "vecsize" * 2/3) with
// pairs of integers for the beginning and end positions of matched
// text. The first pair corresponds to the entire matched text;
// subsequent pairs correspond, in order, to parentheses-captured
// matches. Returns the number of pairs (one more than the number of
// the last subpattern with a match) if matching was successful
// and zero if the match failed.
// I.e. for RE("(foo)|(bar)|(baz)") it will return 2, 3, and 4 when matching
// against "foo", "bar", and "baz" respectively.
// When matching RE("(foo)|hello") against "hello", it will return 1.
// But the values for all subpattern are filled in into "vec".
int TryMatch(const StringPiece& text,
int startpos,
Anchor anchor,
bool empty_ok,
int *vec,
int vecsize) const;
// Append the "rewrite" string, with backslash subsitutions from "text"
// and "vec", to string "out".
bool Rewrite(string *out,
const StringPiece& rewrite,
const StringPiece& text,
int *vec,
int veclen) const;
// internal implementation for DoMatch
bool DoMatchImpl(const StringPiece& text,
Anchor anchor,
int* consumed,
const Arg* const args[],
int n,
int* vec,
int vecsize) const;
// Compile the regexp for the specified anchoring mode
pcre* Compile(Anchor anchor);
string pattern_;
RE_Options options_;
pcre* re_full_; // For full matches
pcre* re_partial_; // For partial matches
const string* error_; // Error indicator (or points to empty string)
};
} // namespace pcrecpp
#endif /* _PCRECPP_H */
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
/*
* sisfb.h - definitions for the SiS framebuffer driver
*
* Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the named License,
* or any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
*/
#ifndef _LINUX_SISFB_H_
#define _LINUX_SISFB_H_
#include <linux/types.h>
#include <asm/ioctl.h>
/**********************************************/
/* PUBLIC */
/**********************************************/
/* vbflags, public (others in sis.h) */
#define CRT2_DEFAULT 0x00000001
#define CRT2_LCD 0x00000002
#define CRT2_TV 0x00000004
#define CRT2_VGA 0x00000008
#define TV_NTSC 0x00000010
#define TV_PAL 0x00000020
#define TV_HIVISION 0x00000040
#define TV_YPBPR 0x00000080
#define TV_AVIDEO 0x00000100
#define TV_SVIDEO 0x00000200
#define TV_SCART 0x00000400
#define TV_PALM 0x00001000
#define TV_PALN 0x00002000
#define TV_NTSCJ 0x00001000
#define TV_CHSCART 0x00008000
#define TV_CHYPBPR525I 0x00010000
#define CRT1_VGA 0x00000000
#define CRT1_LCDA 0x00020000
#define VGA2_CONNECTED 0x00040000
#define VB_DISPTYPE_CRT1 0x00080000 /* CRT1 connected and used */
#define VB_SINGLE_MODE 0x20000000 /* CRT1 or CRT2; determined by DISPTYPE_CRTx */
#define VB_MIRROR_MODE 0x40000000 /* CRT1 + CRT2 identical (mirror mode) */
#define VB_DUALVIEW_MODE 0x80000000 /* CRT1 + CRT2 independent (dual head mode) */
/* Aliases: */
#define CRT2_ENABLE (CRT2_LCD | CRT2_TV | CRT2_VGA)
#define TV_STANDARD (TV_NTSC | TV_PAL | TV_PALM | TV_PALN | TV_NTSCJ)
#define TV_INTERFACE (TV_AVIDEO|TV_SVIDEO|TV_SCART|TV_HIVISION|TV_YPBPR|TV_CHSCART|TV_CHYPBPR525I)
/* Only if TV_YPBPR is set: */
#define TV_YPBPR525I TV_NTSC
#define TV_YPBPR525P TV_PAL
#define TV_YPBPR750P TV_PALM
#define TV_YPBPR1080I TV_PALN
#define TV_YPBPRALL (TV_YPBPR525I | TV_YPBPR525P | TV_YPBPR750P | TV_YPBPR1080I)
#define VB_DISPTYPE_DISP2 CRT2_ENABLE
#define VB_DISPTYPE_CRT2 CRT2_ENABLE
#define VB_DISPTYPE_DISP1 VB_DISPTYPE_CRT1
#define VB_DISPMODE_SINGLE VB_SINGLE_MODE
#define VB_DISPMODE_MIRROR VB_MIRROR_MODE
#define VB_DISPMODE_DUAL VB_DUALVIEW_MODE
#define VB_DISPLAY_MODE (SINGLE_MODE | MIRROR_MODE | DUALVIEW_MODE)
/* Structure argument for SISFB_GET_INFO ioctl */
struct sisfb_info {
__u32 sisfb_id; /* for identifying sisfb */
#ifndef SISFB_ID
#define SISFB_ID 0x53495346 /* Identify myself with 'SISF' */
#endif
__u32 chip_id; /* PCI-ID of detected chip */
__u32 memory; /* total video memory in KB */
__u32 heapstart; /* heap start offset in KB */
__u8 fbvidmode; /* current sisfb mode */
__u8 sisfb_version;
__u8 sisfb_revision;
__u8 sisfb_patchlevel;
__u8 sisfb_caps; /* sisfb capabilities */
__u32 sisfb_tqlen; /* turbo queue length (in KB) */
__u32 sisfb_pcibus; /* The card's PCI ID */
__u32 sisfb_pcislot;
__u32 sisfb_pcifunc;
__u8 sisfb_lcdpdc; /* PanelDelayCompensation */
__u8 sisfb_lcda; /* Detected status of LCDA for low res/text modes */
__u32 sisfb_vbflags;
__u32 sisfb_currentvbflags;
__u32 sisfb_scalelcd;
__u32 sisfb_specialtiming;
__u8 sisfb_haveemi;
__u8 sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33;
__u8 sisfb_haveemilcd;
__u8 sisfb_lcdpdca; /* PanelDelayCompensation for LCD-via-CRT1 */
__u16 sisfb_tvxpos, sisfb_tvypos; /* Warning: Values + 32 ! */
__u32 sisfb_heapsize; /* heap size (in KB) */
__u32 sisfb_videooffset; /* Offset of viewport in video memory (in bytes) */
__u32 sisfb_curfstn; /* currently running FSTN/DSTN mode */
__u32 sisfb_curdstn;
__u16 sisfb_pci_vendor; /* PCI vendor (SiS or XGI) */
__u32 sisfb_vbflags2; /* ivideo->vbflags2 */
__u8 sisfb_can_post; /* sisfb can POST this card */
__u8 sisfb_card_posted; /* card is POSTED */
__u8 sisfb_was_boot_device; /* This card was the boot video device (ie is primary) */
__u8 reserved[183]; /* for future use */
};
#define SISFB_CMD_GETVBFLAGS 0x55AA0001 /* no arg; result[1] = vbflags */
#define SISFB_CMD_SWITCHCRT1 0x55AA0010 /* arg[0]: 99 = query, 0 = off, 1 = on */
/* more to come */
#define SISFB_CMD_ERR_OK 0x80000000 /* command succeeded */
#define SISFB_CMD_ERR_LOCKED 0x80000001 /* sisfb is locked */
#define SISFB_CMD_ERR_EARLY 0x80000002 /* request before sisfb took over gfx system */
#define SISFB_CMD_ERR_NOVB 0x80000003 /* No video bridge */
#define SISFB_CMD_ERR_NOCRT2 0x80000004 /* can't change CRT1 status, CRT2 disabled */
/* more to come */
#define SISFB_CMD_ERR_UNKNOWN 0x8000ffff /* Unknown command */
#define SISFB_CMD_ERR_OTHER 0x80010000 /* Other error */
/* Argument for SISFB_CMD ioctl */
struct sisfb_cmd {
__u32 sisfb_cmd;
__u32 sisfb_arg[16];
__u32 sisfb_result[4];
};
/* Additional IOCTLs for communication sisfb <> X driver */
/* If changing this, vgatypes.h must also be changed (for X driver) */
/* ioctl for identifying and giving some info (esp. memory heap start) */
#define SISFB_GET_INFO_SIZE _IOR(0xF3,0x00,__u32)
#define SISFB_GET_INFO _IOR(0xF3,0x01,struct sisfb_info)
/* ioctrl to get current vertical retrace status */
#define SISFB_GET_VBRSTATUS _IOR(0xF3,0x02,__u32)
/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */
#define SISFB_GET_AUTOMAXIMIZE _IOR(0xF3,0x03,__u32)
#define SISFB_SET_AUTOMAXIMIZE _IOW(0xF3,0x03,__u32)
/* ioctls to relocate TV output (x=D[31:16], y=D[15:0], + 32)*/
#define SISFB_GET_TVPOSOFFSET _IOR(0xF3,0x04,__u32)
#define SISFB_SET_TVPOSOFFSET _IOW(0xF3,0x04,__u32)
/* ioctl for internal sisfb commands (sisfbctrl) */
#define SISFB_COMMAND _IOWR(0xF3,0x05,struct sisfb_cmd)
/* ioctl for locking sisfb (no register access during lock) */
/* As of now, only used to avoid register access during
* the ioctls listed above.
*/
#define SISFB_SET_LOCK _IOW(0xF3,0x06,__u32)
/* ioctls 0xF3 up to 0x3F reserved for sisfb */
/****************************************************************/
/* The following are deprecated and should not be used anymore: */
/****************************************************************/
/* ioctl for identifying and giving some info (esp. memory heap start) */
#define SISFB_GET_INFO_OLD _IOR('n',0xF8,__u32)
/* ioctrl to get current vertical retrace status */
#define SISFB_GET_VBRSTATUS_OLD _IOR('n',0xF9,__u32)
/* ioctl to enable/disable panning auto-maximize (like nomax parameter) */
#define SISFB_GET_AUTOMAXIMIZE_OLD _IOR('n',0xFA,__u32)
#define SISFB_SET_AUTOMAXIMIZE_OLD _IOW('n',0xFA,__u32)
/****************************************************************/
/* End of deprecated ioctl numbers */
/****************************************************************/
/* For fb memory manager (FBIO_ALLOC, FBIO_FREE) */
struct sis_memreq {
__u32 offset;
__u32 size;
};
/**********************************************/
/* PRIVATE */
/* (for IN-KERNEL usage only) */
/**********************************************/
#endif /* _LINUX_SISFB_H_ */
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __linux_video_edid_h__
#define __linux_video_edid_h__
struct edid_info {
unsigned char dummy[128];
};
#endif /* __linux_video_edid_h__ */
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UVESAFB_H
#define _UVESAFB_H
#include <linux/types.h>
struct v86_regs {
__u32 ebx;
__u32 ecx;
__u32 edx;
__u32 esi;
__u32 edi;
__u32 ebp;
__u32 eax;
__u32 eip;
__u32 eflags;
__u32 esp;
__u16 cs;
__u16 ss;
__u16 es;
__u16 ds;
__u16 fs;
__u16 gs;
};
/* Task flags */
#define TF_VBEIB 0x01
#define TF_BUF_ESDI 0x02
#define TF_BUF_ESBX 0x04
#define TF_BUF_RET 0x08
#define TF_EXIT 0x10
struct uvesafb_task {
__u8 flags;
int buf_len;
struct v86_regs regs;
};
/* Constants for the capabilities field
* in vbe_ib */
#define VBE_CAP_CAN_SWITCH_DAC 0x01
#define VBE_CAP_VGACOMPAT 0x02
/* The VBE Info Block */
struct vbe_ib {
char vbe_signature[4];
__u16 vbe_version;
__u32 oem_string_ptr;
__u32 capabilities;
__u32 mode_list_ptr;
__u16 total_memory;
__u16 oem_software_rev;
__u32 oem_vendor_name_ptr;
__u32 oem_product_name_ptr;
__u32 oem_product_rev_ptr;
__u8 reserved[222];
char oem_data[256];
char misc_data[512];
} __attribute__ ((packed));
#endif /* _UVESAFB_H */
/*
* This file generated automatically from record.xml by c_client.py.
* Edit at your peril.
*/
/**
* @defgroup XCB_Record_API XCB Record API
* @brief Record XCB Protocol Implementation.
* @{
**/
#ifndef __RECORD_H
#define __RECORD_H
#include "xcb.h"
#ifdef __cplusplus
extern "C" {
#endif
#define XCB_RECORD_MAJOR_VERSION 1
#define XCB_RECORD_MINOR_VERSION 13
extern xcb_extension_t xcb_record_id;
typedef uint32_t xcb_record_context_t;
/**
* @brief xcb_record_context_iterator_t
**/
typedef struct xcb_record_context_iterator_t {
xcb_record_context_t *data;
int rem;
int index;
} xcb_record_context_iterator_t;
/**
* @brief xcb_record_range_8_t
**/
typedef struct xcb_record_range_8_t {
uint8_t first;
uint8_t last;
} xcb_record_range_8_t;
/**
* @brief xcb_record_range_8_iterator_t
**/
typedef struct xcb_record_range_8_iterator_t {
xcb_record_range_8_t *data;
int rem;
int index;
} xcb_record_range_8_iterator_t;
/**
* @brief xcb_record_range_16_t
**/
typedef struct xcb_record_range_16_t {
uint16_t first;
uint16_t last;
} xcb_record_range_16_t;
/**
* @brief xcb_record_range_16_iterator_t
**/
typedef struct xcb_record_range_16_iterator_t {
xcb_record_range_16_t *data;
int rem;
int index;
} xcb_record_range_16_iterator_t;
/**
* @brief xcb_record_ext_range_t
**/
typedef struct xcb_record_ext_range_t {
xcb_record_range_8_t major;
xcb_record_range_16_t minor;
} xcb_record_ext_range_t;
/**
* @brief xcb_record_ext_range_iterator_t
**/
typedef struct xcb_record_ext_range_iterator_t {
xcb_record_ext_range_t *data;
int rem;
int index;
} xcb_record_ext_range_iterator_t;
/**
* @brief xcb_record_range_t
**/
typedef struct xcb_record_range_t {
xcb_record_range_8_t core_requests;
xcb_record_range_8_t core_replies;
xcb_record_ext_range_t ext_requests;
xcb_record_ext_range_t ext_replies;
xcb_record_range_8_t delivered_events;
xcb_record_range_8_t device_events;
xcb_record_range_8_t errors;
uint8_t client_started;
uint8_t client_died;
} xcb_record_range_t;
/**
* @brief xcb_record_range_iterator_t
**/
typedef struct xcb_record_range_iterator_t {
xcb_record_range_t *data;
int rem;
int index;
} xcb_record_range_iterator_t;
typedef uint8_t xcb_record_element_header_t;
/**
* @brief xcb_record_element_header_iterator_t
**/
typedef struct xcb_record_element_header_iterator_t {
xcb_record_element_header_t *data;
int rem;
int index;
} xcb_record_element_header_iterator_t;
typedef enum xcb_record_h_type_t {
XCB_RECORD_H_TYPE_FROM_SERVER_TIME = 1,
XCB_RECORD_H_TYPE_FROM_CLIENT_TIME = 2,
XCB_RECORD_H_TYPE_FROM_CLIENT_SEQUENCE = 4
} xcb_record_h_type_t;
typedef uint32_t xcb_record_client_spec_t;
/**
* @brief xcb_record_client_spec_iterator_t
**/
typedef struct xcb_record_client_spec_iterator_t {
xcb_record_client_spec_t *data;
int rem;
int index;
} xcb_record_client_spec_iterator_t;
typedef enum xcb_record_cs_t {
XCB_RECORD_CS_CURRENT_CLIENTS = 1,
XCB_RECORD_CS_FUTURE_CLIENTS = 2,
XCB_RECORD_CS_ALL_CLIENTS = 3
} xcb_record_cs_t;
/**
* @brief xcb_record_client_info_t
**/
typedef struct xcb_record_client_info_t {
xcb_record_client_spec_t client_resource;
uint32_t num_ranges;
} xcb_record_client_info_t;
/**
* @brief xcb_record_client_info_iterator_t
**/
typedef struct xcb_record_client_info_iterator_t {
xcb_record_client_info_t *data;
int rem;
int index;
} xcb_record_client_info_iterator_t;
/** Opcode for xcb_record_bad_context. */
#define XCB_RECORD_BAD_CONTEXT 0
/**
* @brief xcb_record_bad_context_error_t
**/
typedef struct xcb_record_bad_context_error_t {
uint8_t response_type;
uint8_t error_code;
uint16_t sequence;
uint32_t invalid_record;
} xcb_record_bad_context_error_t;
/**
* @brief xcb_record_query_version_cookie_t
**/
typedef struct xcb_record_query_version_cookie_t {
unsigned int sequence;
} xcb_record_query_version_cookie_t;
/** Opcode for xcb_record_query_version. */
#define XCB_RECORD_QUERY_VERSION 0
/**
* @brief xcb_record_query_version_request_t
**/
typedef struct xcb_record_query_version_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint16_t major_version;
uint16_t minor_version;
} xcb_record_query_version_request_t;
/**
* @brief xcb_record_query_version_reply_t
**/
typedef struct xcb_record_query_version_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint16_t major_version;
uint16_t minor_version;
} xcb_record_query_version_reply_t;
/** Opcode for xcb_record_create_context. */
#define XCB_RECORD_CREATE_CONTEXT 1
/**
* @brief xcb_record_create_context_request_t
**/
typedef struct xcb_record_create_context_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
xcb_record_element_header_t element_header;
uint8_t pad0[3];
uint32_t num_client_specs;
uint32_t num_ranges;
} xcb_record_create_context_request_t;
/** Opcode for xcb_record_register_clients. */
#define XCB_RECORD_REGISTER_CLIENTS 2
/**
* @brief xcb_record_register_clients_request_t
**/
typedef struct xcb_record_register_clients_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
xcb_record_element_header_t element_header;
uint8_t pad0[3];
uint32_t num_client_specs;
uint32_t num_ranges;
} xcb_record_register_clients_request_t;
/** Opcode for xcb_record_unregister_clients. */
#define XCB_RECORD_UNREGISTER_CLIENTS 3
/**
* @brief xcb_record_unregister_clients_request_t
**/
typedef struct xcb_record_unregister_clients_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
uint32_t num_client_specs;
} xcb_record_unregister_clients_request_t;
/**
* @brief xcb_record_get_context_cookie_t
**/
typedef struct xcb_record_get_context_cookie_t {
unsigned int sequence;
} xcb_record_get_context_cookie_t;
/** Opcode for xcb_record_get_context. */
#define XCB_RECORD_GET_CONTEXT 4
/**
* @brief xcb_record_get_context_request_t
**/
typedef struct xcb_record_get_context_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
} xcb_record_get_context_request_t;
/**
* @brief xcb_record_get_context_reply_t
**/
typedef struct xcb_record_get_context_reply_t {
uint8_t response_type;
uint8_t enabled;
uint16_t sequence;
uint32_t length;
xcb_record_element_header_t element_header;
uint8_t pad0[3];
uint32_t num_intercepted_clients;
uint8_t pad1[16];
} xcb_record_get_context_reply_t;
/**
* @brief xcb_record_enable_context_cookie_t
**/
typedef struct xcb_record_enable_context_cookie_t {
unsigned int sequence;
} xcb_record_enable_context_cookie_t;
/** Opcode for xcb_record_enable_context. */
#define XCB_RECORD_ENABLE_CONTEXT 5
/**
* @brief xcb_record_enable_context_request_t
**/
typedef struct xcb_record_enable_context_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
} xcb_record_enable_context_request_t;
/**
* @brief xcb_record_enable_context_reply_t
**/
typedef struct xcb_record_enable_context_reply_t {
uint8_t response_type;
uint8_t category;
uint16_t sequence;
uint32_t length;
xcb_record_element_header_t element_header;
uint8_t client_swapped;
uint8_t pad0[2];
uint32_t xid_base;
uint32_t server_time;
uint32_t rec_sequence_num;
uint8_t pad1[8];
} xcb_record_enable_context_reply_t;
/** Opcode for xcb_record_disable_context. */
#define XCB_RECORD_DISABLE_CONTEXT 6
/**
* @brief xcb_record_disable_context_request_t
**/
typedef struct xcb_record_disable_context_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
} xcb_record_disable_context_request_t;
/** Opcode for xcb_record_free_context. */
#define XCB_RECORD_FREE_CONTEXT 7
/**
* @brief xcb_record_free_context_request_t
**/
typedef struct xcb_record_free_context_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_record_context_t context;
} xcb_record_free_context_request_t;
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_context_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_context_t)
*/
void
xcb_record_context_next (xcb_record_context_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_context_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_context_end (xcb_record_context_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_range_8_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_range_8_t)
*/
void
xcb_record_range_8_next (xcb_record_range_8_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_range_8_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_range_8_end (xcb_record_range_8_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_range_16_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_range_16_t)
*/
void
xcb_record_range_16_next (xcb_record_range_16_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_range_16_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_range_16_end (xcb_record_range_16_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_ext_range_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_ext_range_t)
*/
void
xcb_record_ext_range_next (xcb_record_ext_range_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_ext_range_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_ext_range_end (xcb_record_ext_range_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_range_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_range_t)
*/
void
xcb_record_range_next (xcb_record_range_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_range_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_range_end (xcb_record_range_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_element_header_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_element_header_t)
*/
void
xcb_record_element_header_next (xcb_record_element_header_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_element_header_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_element_header_end (xcb_record_element_header_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_client_spec_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_client_spec_t)
*/
void
xcb_record_client_spec_next (xcb_record_client_spec_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_client_spec_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_client_spec_end (xcb_record_client_spec_iterator_t i);
int
xcb_record_client_info_sizeof (const void *_buffer);
xcb_record_range_t *
xcb_record_client_info_ranges (const xcb_record_client_info_t *R);
int
xcb_record_client_info_ranges_length (const xcb_record_client_info_t *R);
xcb_record_range_iterator_t
xcb_record_client_info_ranges_iterator (const xcb_record_client_info_t *R);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_record_client_info_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_record_client_info_t)
*/
void
xcb_record_client_info_next (xcb_record_client_info_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_record_client_info_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_record_client_info_end (xcb_record_client_info_iterator_t i);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_record_query_version_cookie_t
xcb_record_query_version (xcb_connection_t *c,
uint16_t major_version,
uint16_t minor_version);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_record_query_version_cookie_t
xcb_record_query_version_unchecked (xcb_connection_t *c,
uint16_t major_version,
uint16_t minor_version);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_record_query_version_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_record_query_version_reply_t *
xcb_record_query_version_reply (xcb_connection_t *c,
xcb_record_query_version_cookie_t cookie /**< */,
xcb_generic_error_t **e);
int
xcb_record_create_context_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_record_create_context_checked (xcb_connection_t *c,
xcb_record_context_t context,
xcb_record_element_header_t element_header,
uint32_t num_client_specs,
uint32_t num_ranges,
const xcb_record_client_spec_t *client_specs,
const xcb_record_range_t *ranges);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_record_create_context (xcb_connection_t *c,
xcb_record_context_t context,
xcb_record_element_header_t element_header,
uint32_t num_client_specs,
uint32_t num_ranges,
const xcb_record_client_spec_t *client_specs,
const xcb_record_range_t *ranges);
xcb_record_client_spec_t *
xcb_record_create_context_client_specs (const xcb_record_create_context_request_t *R);
int
xcb_record_create_context_client_specs_length (const xcb_record_create_context_request_t *R);
xcb_generic_iterator_t
xcb_record_create_context_client_specs_end (const xcb_record_create_context_request_t *R);
xcb_record_range_t *
xcb_record_create_context_ranges (const xcb_record_create_context_request_t *R);
int
xcb_record_create_context_ranges_length (const xcb_record_create_context_request_t *R);
xcb_record_range_iterator_t
xcb_record_create_context_ranges_iterator (const xcb_record_create_context_request_t *R);
int
xcb_record_register_clients_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_record_register_clients_checked (xcb_connection_t *c,
xcb_record_context_t context,
xcb_record_element_header_t element_header,
uint32_t num_client_specs,
uint32_t num_ranges,
const xcb_record_client_spec_t *client_specs,
const xcb_record_range_t *ranges);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_record_register_clients (xcb_connection_t *c,
xcb_record_context_t context,
xcb_record_element_header_t element_header,
uint32_t num_client_specs,
uint32_t num_ranges,
const xcb_record_client_spec_t *client_specs,
const xcb_record_range_t *ranges);
xcb_record_client_spec_t *
xcb_record_register_clients_client_specs (const xcb_record_register_clients_request_t *R);
int
xcb_record_register_clients_client_specs_length (const xcb_record_register_clients_request_t *R);
xcb_generic_iterator_t
xcb_record_register_clients_client_specs_end (const xcb_record_register_clients_request_t *R);
xcb_record_range_t *
xcb_record_register_clients_ranges (const xcb_record_register_clients_request_t *R);
int
xcb_record_register_clients_ranges_length (const xcb_record_register_clients_request_t *R);
xcb_record_range_iterator_t
xcb_record_register_clients_ranges_iterator (const xcb_record_register_clients_request_t *R);
int
xcb_record_unregister_clients_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_record_unregister_clients_checked (xcb_connection_t *c,
xcb_record_context_t context,
uint32_t num_client_specs,
const xcb_record_client_spec_t *client_specs);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_record_unregister_clients (xcb_connection_t *c,
xcb_record_context_t context,
uint32_t num_client_specs,
const xcb_record_client_spec_t *client_specs);
xcb_record_client_spec_t *
xcb_record_unregister_clients_client_specs (const xcb_record_unregister_clients_request_t *R);
int
xcb_record_unregister_clients_client_specs_length (const xcb_record_unregister_clients_request_t *R);
xcb_generic_iterator_t
xcb_record_unregister_clients_client_specs_end (const xcb_record_unregister_clients_request_t *R);
int
xcb_record_get_context_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_record_get_context_cookie_t
xcb_record_get_context (xcb_connection_t *c,
xcb_record_context_t context);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_record_get_context_cookie_t
xcb_record_get_context_unchecked (xcb_connection_t *c,
xcb_record_context_t context);
int
xcb_record_get_context_intercepted_clients_length (const xcb_record_get_context_reply_t *R);
xcb_record_client_info_iterator_t
xcb_record_get_context_intercepted_clients_iterator (const xcb_record_get_context_reply_t *R);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_record_get_context_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_record_get_context_reply_t *
xcb_record_get_context_reply (xcb_connection_t *c,
xcb_record_get_context_cookie_t cookie /**< */,
xcb_generic_error_t **e);
int
xcb_record_enable_context_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_record_enable_context_cookie_t
xcb_record_enable_context (xcb_connection_t *c,
xcb_record_context_t context);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_record_enable_context_cookie_t
xcb_record_enable_context_unchecked (xcb_connection_t *c,
xcb_record_context_t context);
uint8_t *
xcb_record_enable_context_data (const xcb_record_enable_context_reply_t *R);
int
xcb_record_enable_context_data_length (const xcb_record_enable_context_reply_t *R);
xcb_generic_iterator_t
xcb_record_enable_context_data_end (const xcb_record_enable_context_reply_t *R);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_record_enable_context_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_record_enable_context_reply_t *
xcb_record_enable_context_reply (xcb_connection_t *c,
xcb_record_enable_context_cookie_t cookie /**< */,
xcb_generic_error_t **e);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_record_disable_context_checked (xcb_connection_t *c,
xcb_record_context_t context);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_record_disable_context (xcb_connection_t *c,
xcb_record_context_t context);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_record_free_context_checked (xcb_connection_t *c,
xcb_record_context_t context);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_record_free_context (xcb_connection_t *c,
xcb_record_context_t context);
#ifdef __cplusplus
}
#endif
#endif
/**
* @}
*/
/*
* This file generated automatically from dpms.xml by c_client.py.
* Edit at your peril.
*/
/**
* @defgroup XCB_DPMS_API XCB DPMS API
* @brief DPMS XCB Protocol Implementation.
* @{
**/
#ifndef __DPMS_H
#define __DPMS_H
#include "xcb.h"
#ifdef __cplusplus
extern "C" {
#endif
#define XCB_DPMS_MAJOR_VERSION 0
#define XCB_DPMS_MINOR_VERSION 0
extern xcb_extension_t xcb_dpms_id;
/**
* @brief xcb_dpms_get_version_cookie_t
**/
typedef struct xcb_dpms_get_version_cookie_t {
unsigned int sequence;
} xcb_dpms_get_version_cookie_t;
/** Opcode for xcb_dpms_get_version. */
#define XCB_DPMS_GET_VERSION 0
/**
* @brief xcb_dpms_get_version_request_t
**/
typedef struct xcb_dpms_get_version_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint16_t client_major_version;
uint16_t client_minor_version;
} xcb_dpms_get_version_request_t;
/**
* @brief xcb_dpms_get_version_reply_t
**/
typedef struct xcb_dpms_get_version_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint16_t server_major_version;
uint16_t server_minor_version;
} xcb_dpms_get_version_reply_t;
/**
* @brief xcb_dpms_capable_cookie_t
**/
typedef struct xcb_dpms_capable_cookie_t {
unsigned int sequence;
} xcb_dpms_capable_cookie_t;
/** Opcode for xcb_dpms_capable. */
#define XCB_DPMS_CAPABLE 1
/**
* @brief xcb_dpms_capable_request_t
**/
typedef struct xcb_dpms_capable_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
} xcb_dpms_capable_request_t;
/**
* @brief xcb_dpms_capable_reply_t
**/
typedef struct xcb_dpms_capable_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint8_t capable;
uint8_t pad1[23];
} xcb_dpms_capable_reply_t;
/**
* @brief xcb_dpms_get_timeouts_cookie_t
**/
typedef struct xcb_dpms_get_timeouts_cookie_t {
unsigned int sequence;
} xcb_dpms_get_timeouts_cookie_t;
/** Opcode for xcb_dpms_get_timeouts. */
#define XCB_DPMS_GET_TIMEOUTS 2
/**
* @brief xcb_dpms_get_timeouts_request_t
**/
typedef struct xcb_dpms_get_timeouts_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
} xcb_dpms_get_timeouts_request_t;
/**
* @brief xcb_dpms_get_timeouts_reply_t
**/
typedef struct xcb_dpms_get_timeouts_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint16_t standby_timeout;
uint16_t suspend_timeout;
uint16_t off_timeout;
uint8_t pad1[18];
} xcb_dpms_get_timeouts_reply_t;
/** Opcode for xcb_dpms_set_timeouts. */
#define XCB_DPMS_SET_TIMEOUTS 3
/**
* @brief xcb_dpms_set_timeouts_request_t
**/
typedef struct xcb_dpms_set_timeouts_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint16_t standby_timeout;
uint16_t suspend_timeout;
uint16_t off_timeout;
} xcb_dpms_set_timeouts_request_t;
/** Opcode for xcb_dpms_enable. */
#define XCB_DPMS_ENABLE 4
/**
* @brief xcb_dpms_enable_request_t
**/
typedef struct xcb_dpms_enable_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
} xcb_dpms_enable_request_t;
/** Opcode for xcb_dpms_disable. */
#define XCB_DPMS_DISABLE 5
/**
* @brief xcb_dpms_disable_request_t
**/
typedef struct xcb_dpms_disable_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
} xcb_dpms_disable_request_t;
typedef enum xcb_dpms_dpms_mode_t {
XCB_DPMS_DPMS_MODE_ON = 0,
XCB_DPMS_DPMS_MODE_STANDBY = 1,
XCB_DPMS_DPMS_MODE_SUSPEND = 2,
XCB_DPMS_DPMS_MODE_OFF = 3
} xcb_dpms_dpms_mode_t;
/** Opcode for xcb_dpms_force_level. */
#define XCB_DPMS_FORCE_LEVEL 6
/**
* @brief xcb_dpms_force_level_request_t
**/
typedef struct xcb_dpms_force_level_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint16_t power_level;
} xcb_dpms_force_level_request_t;
/**
* @brief xcb_dpms_info_cookie_t
**/
typedef struct xcb_dpms_info_cookie_t {
unsigned int sequence;
} xcb_dpms_info_cookie_t;
/** Opcode for xcb_dpms_info. */
#define XCB_DPMS_INFO 7
/**
* @brief xcb_dpms_info_request_t
**/
typedef struct xcb_dpms_info_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
} xcb_dpms_info_request_t;
/**
* @brief xcb_dpms_info_reply_t
**/
typedef struct xcb_dpms_info_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint16_t power_level;
uint8_t state;
uint8_t pad1[21];
} xcb_dpms_info_reply_t;
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_dpms_get_version_cookie_t
xcb_dpms_get_version (xcb_connection_t *c,
uint16_t client_major_version,
uint16_t client_minor_version);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_dpms_get_version_cookie_t
xcb_dpms_get_version_unchecked (xcb_connection_t *c,
uint16_t client_major_version,
uint16_t client_minor_version);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_dpms_get_version_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_dpms_get_version_reply_t *
xcb_dpms_get_version_reply (xcb_connection_t *c,
xcb_dpms_get_version_cookie_t cookie /**< */,
xcb_generic_error_t **e);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_dpms_capable_cookie_t
xcb_dpms_capable (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_dpms_capable_cookie_t
xcb_dpms_capable_unchecked (xcb_connection_t *c);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_dpms_capable_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_dpms_capable_reply_t *
xcb_dpms_capable_reply (xcb_connection_t *c,
xcb_dpms_capable_cookie_t cookie /**< */,
xcb_generic_error_t **e);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_dpms_get_timeouts_cookie_t
xcb_dpms_get_timeouts (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_dpms_get_timeouts_cookie_t
xcb_dpms_get_timeouts_unchecked (xcb_connection_t *c);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_dpms_get_timeouts_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_dpms_get_timeouts_reply_t *
xcb_dpms_get_timeouts_reply (xcb_connection_t *c,
xcb_dpms_get_timeouts_cookie_t cookie /**< */,
xcb_generic_error_t **e);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_dpms_set_timeouts_checked (xcb_connection_t *c,
uint16_t standby_timeout,
uint16_t suspend_timeout,
uint16_t off_timeout);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_dpms_set_timeouts (xcb_connection_t *c,
uint16_t standby_timeout,
uint16_t suspend_timeout,
uint16_t off_timeout);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_dpms_enable_checked (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_dpms_enable (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_dpms_disable_checked (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_dpms_disable (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_dpms_force_level_checked (xcb_connection_t *c,
uint16_t power_level);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_dpms_force_level (xcb_connection_t *c,
uint16_t power_level);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_dpms_info_cookie_t
xcb_dpms_info (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_dpms_info_cookie_t
xcb_dpms_info_unchecked (xcb_connection_t *c);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_dpms_info_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_dpms_info_reply_t *
xcb_dpms_info_reply (xcb_connection_t *c,
xcb_dpms_info_cookie_t cookie /**< */,
xcb_generic_error_t **e);
#ifdef __cplusplus
}
#endif
#endif
/**
* @}
*/
/*
* This file generated automatically from render.xml by c_client.py.
* Edit at your peril.
*/
/**
* @defgroup XCB_Render_API XCB Render API
* @brief Render XCB Protocol Implementation.
* @{
**/
#ifndef __RENDER_H
#define __RENDER_H
#include "xcb.h"
#include "xproto.h"
#ifdef __cplusplus
extern "C" {
#endif
#define XCB_RENDER_MAJOR_VERSION 0
#define XCB_RENDER_MINOR_VERSION 11
extern xcb_extension_t xcb_render_id;
typedef enum xcb_render_pict_type_t {
XCB_RENDER_PICT_TYPE_INDEXED = 0,
XCB_RENDER_PICT_TYPE_DIRECT = 1
} xcb_render_pict_type_t;
typedef enum xcb_render_picture_enum_t {
XCB_RENDER_PICTURE_NONE = 0
} xcb_render_picture_enum_t;
typedef enum xcb_render_pict_op_t {
XCB_RENDER_PICT_OP_CLEAR = 0,
XCB_RENDER_PICT_OP_SRC = 1,
XCB_RENDER_PICT_OP_DST = 2,
XCB_RENDER_PICT_OP_OVER = 3,
XCB_RENDER_PICT_OP_OVER_REVERSE = 4,
XCB_RENDER_PICT_OP_IN = 5,
XCB_RENDER_PICT_OP_IN_REVERSE = 6,
XCB_RENDER_PICT_OP_OUT = 7,
XCB_RENDER_PICT_OP_OUT_REVERSE = 8,
XCB_RENDER_PICT_OP_ATOP = 9,
XCB_RENDER_PICT_OP_ATOP_REVERSE = 10,
XCB_RENDER_PICT_OP_XOR = 11,
XCB_RENDER_PICT_OP_ADD = 12,
XCB_RENDER_PICT_OP_SATURATE = 13,
XCB_RENDER_PICT_OP_DISJOINT_CLEAR = 16,
XCB_RENDER_PICT_OP_DISJOINT_SRC = 17,
XCB_RENDER_PICT_OP_DISJOINT_DST = 18,
XCB_RENDER_PICT_OP_DISJOINT_OVER = 19,
XCB_RENDER_PICT_OP_DISJOINT_OVER_REVERSE = 20,
XCB_RENDER_PICT_OP_DISJOINT_IN = 21,
XCB_RENDER_PICT_OP_DISJOINT_IN_REVERSE = 22,
XCB_RENDER_PICT_OP_DISJOINT_OUT = 23,
XCB_RENDER_PICT_OP_DISJOINT_OUT_REVERSE = 24,
XCB_RENDER_PICT_OP_DISJOINT_ATOP = 25,
XCB_RENDER_PICT_OP_DISJOINT_ATOP_REVERSE = 26,
XCB_RENDER_PICT_OP_DISJOINT_XOR = 27,
XCB_RENDER_PICT_OP_CONJOINT_CLEAR = 32,
XCB_RENDER_PICT_OP_CONJOINT_SRC = 33,
XCB_RENDER_PICT_OP_CONJOINT_DST = 34,
XCB_RENDER_PICT_OP_CONJOINT_OVER = 35,
XCB_RENDER_PICT_OP_CONJOINT_OVER_REVERSE = 36,
XCB_RENDER_PICT_OP_CONJOINT_IN = 37,
XCB_RENDER_PICT_OP_CONJOINT_IN_REVERSE = 38,
XCB_RENDER_PICT_OP_CONJOINT_OUT = 39,
XCB_RENDER_PICT_OP_CONJOINT_OUT_REVERSE = 40,
XCB_RENDER_PICT_OP_CONJOINT_ATOP = 41,
XCB_RENDER_PICT_OP_CONJOINT_ATOP_REVERSE = 42,
XCB_RENDER_PICT_OP_CONJOINT_XOR = 43,
XCB_RENDER_PICT_OP_MULTIPLY = 48,
XCB_RENDER_PICT_OP_SCREEN = 49,
XCB_RENDER_PICT_OP_OVERLAY = 50,
XCB_RENDER_PICT_OP_DARKEN = 51,
XCB_RENDER_PICT_OP_LIGHTEN = 52,
XCB_RENDER_PICT_OP_COLOR_DODGE = 53,
XCB_RENDER_PICT_OP_COLOR_BURN = 54,
XCB_RENDER_PICT_OP_HARD_LIGHT = 55,
XCB_RENDER_PICT_OP_SOFT_LIGHT = 56,
XCB_RENDER_PICT_OP_DIFFERENCE = 57,
XCB_RENDER_PICT_OP_EXCLUSION = 58,
XCB_RENDER_PICT_OP_HSL_HUE = 59,
XCB_RENDER_PICT_OP_HSL_SATURATION = 60,
XCB_RENDER_PICT_OP_HSL_COLOR = 61,
XCB_RENDER_PICT_OP_HSL_LUMINOSITY = 62
} xcb_render_pict_op_t;
typedef enum xcb_render_poly_edge_t {
XCB_RENDER_POLY_EDGE_SHARP = 0,
XCB_RENDER_POLY_EDGE_SMOOTH = 1
} xcb_render_poly_edge_t;
typedef enum xcb_render_poly_mode_t {
XCB_RENDER_POLY_MODE_PRECISE = 0,
XCB_RENDER_POLY_MODE_IMPRECISE = 1
} xcb_render_poly_mode_t;
typedef enum xcb_render_cp_t {
XCB_RENDER_CP_REPEAT = 1,
XCB_RENDER_CP_ALPHA_MAP = 2,
XCB_RENDER_CP_ALPHA_X_ORIGIN = 4,
XCB_RENDER_CP_ALPHA_Y_ORIGIN = 8,
XCB_RENDER_CP_CLIP_X_ORIGIN = 16,
XCB_RENDER_CP_CLIP_Y_ORIGIN = 32,
XCB_RENDER_CP_CLIP_MASK = 64,
XCB_RENDER_CP_GRAPHICS_EXPOSURE = 128,
XCB_RENDER_CP_SUBWINDOW_MODE = 256,
XCB_RENDER_CP_POLY_EDGE = 512,
XCB_RENDER_CP_POLY_MODE = 1024,
XCB_RENDER_CP_DITHER = 2048,
XCB_RENDER_CP_COMPONENT_ALPHA = 4096
} xcb_render_cp_t;
typedef enum xcb_render_sub_pixel_t {
XCB_RENDER_SUB_PIXEL_UNKNOWN = 0,
XCB_RENDER_SUB_PIXEL_HORIZONTAL_RGB = 1,
XCB_RENDER_SUB_PIXEL_HORIZONTAL_BGR = 2,
XCB_RENDER_SUB_PIXEL_VERTICAL_RGB = 3,
XCB_RENDER_SUB_PIXEL_VERTICAL_BGR = 4,
XCB_RENDER_SUB_PIXEL_NONE = 5
} xcb_render_sub_pixel_t;
typedef enum xcb_render_repeat_t {
XCB_RENDER_REPEAT_NONE = 0,
XCB_RENDER_REPEAT_NORMAL = 1,
XCB_RENDER_REPEAT_PAD = 2,
XCB_RENDER_REPEAT_REFLECT = 3
} xcb_render_repeat_t;
typedef uint32_t xcb_render_glyph_t;
/**
* @brief xcb_render_glyph_iterator_t
**/
typedef struct xcb_render_glyph_iterator_t {
xcb_render_glyph_t *data;
int rem;
int index;
} xcb_render_glyph_iterator_t;
typedef uint32_t xcb_render_glyphset_t;
/**
* @brief xcb_render_glyphset_iterator_t
**/
typedef struct xcb_render_glyphset_iterator_t {
xcb_render_glyphset_t *data;
int rem;
int index;
} xcb_render_glyphset_iterator_t;
typedef uint32_t xcb_render_picture_t;
/**
* @brief xcb_render_picture_iterator_t
**/
typedef struct xcb_render_picture_iterator_t {
xcb_render_picture_t *data;
int rem;
int index;
} xcb_render_picture_iterator_t;
typedef uint32_t xcb_render_pictformat_t;
/**
* @brief xcb_render_pictformat_iterator_t
**/
typedef struct xcb_render_pictformat_iterator_t {
xcb_render_pictformat_t *data;
int rem;
int index;
} xcb_render_pictformat_iterator_t;
typedef int32_t xcb_render_fixed_t;
/**
* @brief xcb_render_fixed_iterator_t
**/
typedef struct xcb_render_fixed_iterator_t {
xcb_render_fixed_t *data;
int rem;
int index;
} xcb_render_fixed_iterator_t;
/** Opcode for xcb_render_pict_format. */
#define XCB_RENDER_PICT_FORMAT 0
/**
* @brief xcb_render_pict_format_error_t
**/
typedef struct xcb_render_pict_format_error_t {
uint8_t response_type;
uint8_t error_code;
uint16_t sequence;
} xcb_render_pict_format_error_t;
/** Opcode for xcb_render_picture. */
#define XCB_RENDER_PICTURE 1
/**
* @brief xcb_render_picture_error_t
**/
typedef struct xcb_render_picture_error_t {
uint8_t response_type;
uint8_t error_code;
uint16_t sequence;
} xcb_render_picture_error_t;
/** Opcode for xcb_render_pict_op. */
#define XCB_RENDER_PICT_OP 2
/**
* @brief xcb_render_pict_op_error_t
**/
typedef struct xcb_render_pict_op_error_t {
uint8_t response_type;
uint8_t error_code;
uint16_t sequence;
} xcb_render_pict_op_error_t;
/** Opcode for xcb_render_glyph_set. */
#define XCB_RENDER_GLYPH_SET 3
/**
* @brief xcb_render_glyph_set_error_t
**/
typedef struct xcb_render_glyph_set_error_t {
uint8_t response_type;
uint8_t error_code;
uint16_t sequence;
} xcb_render_glyph_set_error_t;
/** Opcode for xcb_render_glyph. */
#define XCB_RENDER_GLYPH 4
/**
* @brief xcb_render_glyph_error_t
**/
typedef struct xcb_render_glyph_error_t {
uint8_t response_type;
uint8_t error_code;
uint16_t sequence;
} xcb_render_glyph_error_t;
/**
* @brief xcb_render_directformat_t
**/
typedef struct xcb_render_directformat_t {
uint16_t red_shift;
uint16_t red_mask;
uint16_t green_shift;
uint16_t green_mask;
uint16_t blue_shift;
uint16_t blue_mask;
uint16_t alpha_shift;
uint16_t alpha_mask;
} xcb_render_directformat_t;
/**
* @brief xcb_render_directformat_iterator_t
**/
typedef struct xcb_render_directformat_iterator_t {
xcb_render_directformat_t *data;
int rem;
int index;
} xcb_render_directformat_iterator_t;
/**
* @brief xcb_render_pictforminfo_t
**/
typedef struct xcb_render_pictforminfo_t {
xcb_render_pictformat_t id;
uint8_t type;
uint8_t depth;
uint8_t pad0[2];
xcb_render_directformat_t direct;
xcb_colormap_t colormap;
} xcb_render_pictforminfo_t;
/**
* @brief xcb_render_pictforminfo_iterator_t
**/
typedef struct xcb_render_pictforminfo_iterator_t {
xcb_render_pictforminfo_t *data;
int rem;
int index;
} xcb_render_pictforminfo_iterator_t;
/**
* @brief xcb_render_pictvisual_t
**/
typedef struct xcb_render_pictvisual_t {
xcb_visualid_t visual;
xcb_render_pictformat_t format;
} xcb_render_pictvisual_t;
/**
* @brief xcb_render_pictvisual_iterator_t
**/
typedef struct xcb_render_pictvisual_iterator_t {
xcb_render_pictvisual_t *data;
int rem;
int index;
} xcb_render_pictvisual_iterator_t;
/**
* @brief xcb_render_pictdepth_t
**/
typedef struct xcb_render_pictdepth_t {
uint8_t depth;
uint8_t pad0;
uint16_t num_visuals;
uint8_t pad1[4];
} xcb_render_pictdepth_t;
/**
* @brief xcb_render_pictdepth_iterator_t
**/
typedef struct xcb_render_pictdepth_iterator_t {
xcb_render_pictdepth_t *data;
int rem;
int index;
} xcb_render_pictdepth_iterator_t;
/**
* @brief xcb_render_pictscreen_t
**/
typedef struct xcb_render_pictscreen_t {
uint32_t num_depths;
xcb_render_pictformat_t fallback;
} xcb_render_pictscreen_t;
/**
* @brief xcb_render_pictscreen_iterator_t
**/
typedef struct xcb_render_pictscreen_iterator_t {
xcb_render_pictscreen_t *data;
int rem;
int index;
} xcb_render_pictscreen_iterator_t;
/**
* @brief xcb_render_indexvalue_t
**/
typedef struct xcb_render_indexvalue_t {
uint32_t pixel;
uint16_t red;
uint16_t green;
uint16_t blue;
uint16_t alpha;
} xcb_render_indexvalue_t;
/**
* @brief xcb_render_indexvalue_iterator_t
**/
typedef struct xcb_render_indexvalue_iterator_t {
xcb_render_indexvalue_t *data;
int rem;
int index;
} xcb_render_indexvalue_iterator_t;
/**
* @brief xcb_render_color_t
**/
typedef struct xcb_render_color_t {
uint16_t red;
uint16_t green;
uint16_t blue;
uint16_t alpha;
} xcb_render_color_t;
/**
* @brief xcb_render_color_iterator_t
**/
typedef struct xcb_render_color_iterator_t {
xcb_render_color_t *data;
int rem;
int index;
} xcb_render_color_iterator_t;
/**
* @brief xcb_render_pointfix_t
**/
typedef struct xcb_render_pointfix_t {
xcb_render_fixed_t x;
xcb_render_fixed_t y;
} xcb_render_pointfix_t;
/**
* @brief xcb_render_pointfix_iterator_t
**/
typedef struct xcb_render_pointfix_iterator_t {
xcb_render_pointfix_t *data;
int rem;
int index;
} xcb_render_pointfix_iterator_t;
/**
* @brief xcb_render_linefix_t
**/
typedef struct xcb_render_linefix_t {
xcb_render_pointfix_t p1;
xcb_render_pointfix_t p2;
} xcb_render_linefix_t;
/**
* @brief xcb_render_linefix_iterator_t
**/
typedef struct xcb_render_linefix_iterator_t {
xcb_render_linefix_t *data;
int rem;
int index;
} xcb_render_linefix_iterator_t;
/**
* @brief xcb_render_triangle_t
**/
typedef struct xcb_render_triangle_t {
xcb_render_pointfix_t p1;
xcb_render_pointfix_t p2;
xcb_render_pointfix_t p3;
} xcb_render_triangle_t;
/**
* @brief xcb_render_triangle_iterator_t
**/
typedef struct xcb_render_triangle_iterator_t {
xcb_render_triangle_t *data;
int rem;
int index;
} xcb_render_triangle_iterator_t;
/**
* @brief xcb_render_trapezoid_t
**/
typedef struct xcb_render_trapezoid_t {
xcb_render_fixed_t top;
xcb_render_fixed_t bottom;
xcb_render_linefix_t left;
xcb_render_linefix_t right;
} xcb_render_trapezoid_t;
/**
* @brief xcb_render_trapezoid_iterator_t
**/
typedef struct xcb_render_trapezoid_iterator_t {
xcb_render_trapezoid_t *data;
int rem;
int index;
} xcb_render_trapezoid_iterator_t;
/**
* @brief xcb_render_glyphinfo_t
**/
typedef struct xcb_render_glyphinfo_t {
uint16_t width;
uint16_t height;
int16_t x;
int16_t y;
int16_t x_off;
int16_t y_off;
} xcb_render_glyphinfo_t;
/**
* @brief xcb_render_glyphinfo_iterator_t
**/
typedef struct xcb_render_glyphinfo_iterator_t {
xcb_render_glyphinfo_t *data;
int rem;
int index;
} xcb_render_glyphinfo_iterator_t;
/**
* @brief xcb_render_query_version_cookie_t
**/
typedef struct xcb_render_query_version_cookie_t {
unsigned int sequence;
} xcb_render_query_version_cookie_t;
/** Opcode for xcb_render_query_version. */
#define XCB_RENDER_QUERY_VERSION 0
/**
* @brief xcb_render_query_version_request_t
**/
typedef struct xcb_render_query_version_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint32_t client_major_version;
uint32_t client_minor_version;
} xcb_render_query_version_request_t;
/**
* @brief xcb_render_query_version_reply_t
**/
typedef struct xcb_render_query_version_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint32_t major_version;
uint32_t minor_version;
uint8_t pad1[16];
} xcb_render_query_version_reply_t;
/**
* @brief xcb_render_query_pict_formats_cookie_t
**/
typedef struct xcb_render_query_pict_formats_cookie_t {
unsigned int sequence;
} xcb_render_query_pict_formats_cookie_t;
/** Opcode for xcb_render_query_pict_formats. */
#define XCB_RENDER_QUERY_PICT_FORMATS 1
/**
* @brief xcb_render_query_pict_formats_request_t
**/
typedef struct xcb_render_query_pict_formats_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
} xcb_render_query_pict_formats_request_t;
/**
* @brief xcb_render_query_pict_formats_reply_t
**/
typedef struct xcb_render_query_pict_formats_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint32_t num_formats;
uint32_t num_screens;
uint32_t num_depths;
uint32_t num_visuals;
uint32_t num_subpixel;
uint8_t pad1[4];
} xcb_render_query_pict_formats_reply_t;
/**
* @brief xcb_render_query_pict_index_values_cookie_t
**/
typedef struct xcb_render_query_pict_index_values_cookie_t {
unsigned int sequence;
} xcb_render_query_pict_index_values_cookie_t;
/** Opcode for xcb_render_query_pict_index_values. */
#define XCB_RENDER_QUERY_PICT_INDEX_VALUES 2
/**
* @brief xcb_render_query_pict_index_values_request_t
**/
typedef struct xcb_render_query_pict_index_values_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_pictformat_t format;
} xcb_render_query_pict_index_values_request_t;
/**
* @brief xcb_render_query_pict_index_values_reply_t
**/
typedef struct xcb_render_query_pict_index_values_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint32_t num_values;
uint8_t pad1[20];
} xcb_render_query_pict_index_values_reply_t;
/**
* @brief xcb_render_create_picture_value_list_t
**/
typedef struct xcb_render_create_picture_value_list_t {
uint32_t repeat;
xcb_render_picture_t alphamap;
int32_t alphaxorigin;
int32_t alphayorigin;
int32_t clipxorigin;
int32_t clipyorigin;
xcb_pixmap_t clipmask;
uint32_t graphicsexposure;
uint32_t subwindowmode;
uint32_t polyedge;
uint32_t polymode;
xcb_atom_t dither;
uint32_t componentalpha;
} xcb_render_create_picture_value_list_t;
/** Opcode for xcb_render_create_picture. */
#define XCB_RENDER_CREATE_PICTURE 4
/**
* @brief xcb_render_create_picture_request_t
**/
typedef struct xcb_render_create_picture_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t pid;
xcb_drawable_t drawable;
xcb_render_pictformat_t format;
uint32_t value_mask;
} xcb_render_create_picture_request_t;
/**
* @brief xcb_render_change_picture_value_list_t
**/
typedef struct xcb_render_change_picture_value_list_t {
uint32_t repeat;
xcb_render_picture_t alphamap;
int32_t alphaxorigin;
int32_t alphayorigin;
int32_t clipxorigin;
int32_t clipyorigin;
xcb_pixmap_t clipmask;
uint32_t graphicsexposure;
uint32_t subwindowmode;
uint32_t polyedge;
uint32_t polymode;
xcb_atom_t dither;
uint32_t componentalpha;
} xcb_render_change_picture_value_list_t;
/** Opcode for xcb_render_change_picture. */
#define XCB_RENDER_CHANGE_PICTURE 5
/**
* @brief xcb_render_change_picture_request_t
**/
typedef struct xcb_render_change_picture_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
uint32_t value_mask;
} xcb_render_change_picture_request_t;
/** Opcode for xcb_render_set_picture_clip_rectangles. */
#define XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES 6
/**
* @brief xcb_render_set_picture_clip_rectangles_request_t
**/
typedef struct xcb_render_set_picture_clip_rectangles_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
int16_t clip_x_origin;
int16_t clip_y_origin;
} xcb_render_set_picture_clip_rectangles_request_t;
/** Opcode for xcb_render_free_picture. */
#define XCB_RENDER_FREE_PICTURE 7
/**
* @brief xcb_render_free_picture_request_t
**/
typedef struct xcb_render_free_picture_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
} xcb_render_free_picture_request_t;
/** Opcode for xcb_render_composite. */
#define XCB_RENDER_COMPOSITE 8
/**
* @brief xcb_render_composite_request_t
**/
typedef struct xcb_render_composite_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t mask;
xcb_render_picture_t dst;
int16_t src_x;
int16_t src_y;
int16_t mask_x;
int16_t mask_y;
int16_t dst_x;
int16_t dst_y;
uint16_t width;
uint16_t height;
} xcb_render_composite_request_t;
/** Opcode for xcb_render_trapezoids. */
#define XCB_RENDER_TRAPEZOIDS 10
/**
* @brief xcb_render_trapezoids_request_t
**/
typedef struct xcb_render_trapezoids_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
int16_t src_x;
int16_t src_y;
} xcb_render_trapezoids_request_t;
/** Opcode for xcb_render_triangles. */
#define XCB_RENDER_TRIANGLES 11
/**
* @brief xcb_render_triangles_request_t
**/
typedef struct xcb_render_triangles_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
int16_t src_x;
int16_t src_y;
} xcb_render_triangles_request_t;
/** Opcode for xcb_render_tri_strip. */
#define XCB_RENDER_TRI_STRIP 12
/**
* @brief xcb_render_tri_strip_request_t
**/
typedef struct xcb_render_tri_strip_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
int16_t src_x;
int16_t src_y;
} xcb_render_tri_strip_request_t;
/** Opcode for xcb_render_tri_fan. */
#define XCB_RENDER_TRI_FAN 13
/**
* @brief xcb_render_tri_fan_request_t
**/
typedef struct xcb_render_tri_fan_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
int16_t src_x;
int16_t src_y;
} xcb_render_tri_fan_request_t;
/** Opcode for xcb_render_create_glyph_set. */
#define XCB_RENDER_CREATE_GLYPH_SET 17
/**
* @brief xcb_render_create_glyph_set_request_t
**/
typedef struct xcb_render_create_glyph_set_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_glyphset_t gsid;
xcb_render_pictformat_t format;
} xcb_render_create_glyph_set_request_t;
/** Opcode for xcb_render_reference_glyph_set. */
#define XCB_RENDER_REFERENCE_GLYPH_SET 18
/**
* @brief xcb_render_reference_glyph_set_request_t
**/
typedef struct xcb_render_reference_glyph_set_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_glyphset_t gsid;
xcb_render_glyphset_t existing;
} xcb_render_reference_glyph_set_request_t;
/** Opcode for xcb_render_free_glyph_set. */
#define XCB_RENDER_FREE_GLYPH_SET 19
/**
* @brief xcb_render_free_glyph_set_request_t
**/
typedef struct xcb_render_free_glyph_set_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_glyphset_t glyphset;
} xcb_render_free_glyph_set_request_t;
/** Opcode for xcb_render_add_glyphs. */
#define XCB_RENDER_ADD_GLYPHS 20
/**
* @brief xcb_render_add_glyphs_request_t
**/
typedef struct xcb_render_add_glyphs_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_glyphset_t glyphset;
uint32_t glyphs_len;
} xcb_render_add_glyphs_request_t;
/** Opcode for xcb_render_free_glyphs. */
#define XCB_RENDER_FREE_GLYPHS 22
/**
* @brief xcb_render_free_glyphs_request_t
**/
typedef struct xcb_render_free_glyphs_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_glyphset_t glyphset;
} xcb_render_free_glyphs_request_t;
/** Opcode for xcb_render_composite_glyphs_8. */
#define XCB_RENDER_COMPOSITE_GLYPHS_8 23
/**
* @brief xcb_render_composite_glyphs_8_request_t
**/
typedef struct xcb_render_composite_glyphs_8_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
xcb_render_glyphset_t glyphset;
int16_t src_x;
int16_t src_y;
} xcb_render_composite_glyphs_8_request_t;
/** Opcode for xcb_render_composite_glyphs_16. */
#define XCB_RENDER_COMPOSITE_GLYPHS_16 24
/**
* @brief xcb_render_composite_glyphs_16_request_t
**/
typedef struct xcb_render_composite_glyphs_16_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
xcb_render_glyphset_t glyphset;
int16_t src_x;
int16_t src_y;
} xcb_render_composite_glyphs_16_request_t;
/** Opcode for xcb_render_composite_glyphs_32. */
#define XCB_RENDER_COMPOSITE_GLYPHS_32 25
/**
* @brief xcb_render_composite_glyphs_32_request_t
**/
typedef struct xcb_render_composite_glyphs_32_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t src;
xcb_render_picture_t dst;
xcb_render_pictformat_t mask_format;
xcb_render_glyphset_t glyphset;
int16_t src_x;
int16_t src_y;
} xcb_render_composite_glyphs_32_request_t;
/** Opcode for xcb_render_fill_rectangles. */
#define XCB_RENDER_FILL_RECTANGLES 26
/**
* @brief xcb_render_fill_rectangles_request_t
**/
typedef struct xcb_render_fill_rectangles_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
uint8_t op;
uint8_t pad0[3];
xcb_render_picture_t dst;
xcb_render_color_t color;
} xcb_render_fill_rectangles_request_t;
/** Opcode for xcb_render_create_cursor. */
#define XCB_RENDER_CREATE_CURSOR 27
/**
* @brief xcb_render_create_cursor_request_t
**/
typedef struct xcb_render_create_cursor_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_cursor_t cid;
xcb_render_picture_t source;
uint16_t x;
uint16_t y;
} xcb_render_create_cursor_request_t;
/**
* @brief xcb_render_transform_t
**/
typedef struct xcb_render_transform_t {
xcb_render_fixed_t matrix11;
xcb_render_fixed_t matrix12;
xcb_render_fixed_t matrix13;
xcb_render_fixed_t matrix21;
xcb_render_fixed_t matrix22;
xcb_render_fixed_t matrix23;
xcb_render_fixed_t matrix31;
xcb_render_fixed_t matrix32;
xcb_render_fixed_t matrix33;
} xcb_render_transform_t;
/**
* @brief xcb_render_transform_iterator_t
**/
typedef struct xcb_render_transform_iterator_t {
xcb_render_transform_t *data;
int rem;
int index;
} xcb_render_transform_iterator_t;
/** Opcode for xcb_render_set_picture_transform. */
#define XCB_RENDER_SET_PICTURE_TRANSFORM 28
/**
* @brief xcb_render_set_picture_transform_request_t
**/
typedef struct xcb_render_set_picture_transform_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
xcb_render_transform_t transform;
} xcb_render_set_picture_transform_request_t;
/**
* @brief xcb_render_query_filters_cookie_t
**/
typedef struct xcb_render_query_filters_cookie_t {
unsigned int sequence;
} xcb_render_query_filters_cookie_t;
/** Opcode for xcb_render_query_filters. */
#define XCB_RENDER_QUERY_FILTERS 29
/**
* @brief xcb_render_query_filters_request_t
**/
typedef struct xcb_render_query_filters_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_drawable_t drawable;
} xcb_render_query_filters_request_t;
/**
* @brief xcb_render_query_filters_reply_t
**/
typedef struct xcb_render_query_filters_reply_t {
uint8_t response_type;
uint8_t pad0;
uint16_t sequence;
uint32_t length;
uint32_t num_aliases;
uint32_t num_filters;
uint8_t pad1[16];
} xcb_render_query_filters_reply_t;
/** Opcode for xcb_render_set_picture_filter. */
#define XCB_RENDER_SET_PICTURE_FILTER 30
/**
* @brief xcb_render_set_picture_filter_request_t
**/
typedef struct xcb_render_set_picture_filter_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
uint16_t filter_len;
uint8_t pad0[2];
} xcb_render_set_picture_filter_request_t;
/**
* @brief xcb_render_animcursorelt_t
**/
typedef struct xcb_render_animcursorelt_t {
xcb_cursor_t cursor;
uint32_t delay;
} xcb_render_animcursorelt_t;
/**
* @brief xcb_render_animcursorelt_iterator_t
**/
typedef struct xcb_render_animcursorelt_iterator_t {
xcb_render_animcursorelt_t *data;
int rem;
int index;
} xcb_render_animcursorelt_iterator_t;
/** Opcode for xcb_render_create_anim_cursor. */
#define XCB_RENDER_CREATE_ANIM_CURSOR 31
/**
* @brief xcb_render_create_anim_cursor_request_t
**/
typedef struct xcb_render_create_anim_cursor_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_cursor_t cid;
} xcb_render_create_anim_cursor_request_t;
/**
* @brief xcb_render_spanfix_t
**/
typedef struct xcb_render_spanfix_t {
xcb_render_fixed_t l;
xcb_render_fixed_t r;
xcb_render_fixed_t y;
} xcb_render_spanfix_t;
/**
* @brief xcb_render_spanfix_iterator_t
**/
typedef struct xcb_render_spanfix_iterator_t {
xcb_render_spanfix_t *data;
int rem;
int index;
} xcb_render_spanfix_iterator_t;
/**
* @brief xcb_render_trap_t
**/
typedef struct xcb_render_trap_t {
xcb_render_spanfix_t top;
xcb_render_spanfix_t bot;
} xcb_render_trap_t;
/**
* @brief xcb_render_trap_iterator_t
**/
typedef struct xcb_render_trap_iterator_t {
xcb_render_trap_t *data;
int rem;
int index;
} xcb_render_trap_iterator_t;
/** Opcode for xcb_render_add_traps. */
#define XCB_RENDER_ADD_TRAPS 32
/**
* @brief xcb_render_add_traps_request_t
**/
typedef struct xcb_render_add_traps_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
int16_t x_off;
int16_t y_off;
} xcb_render_add_traps_request_t;
/** Opcode for xcb_render_create_solid_fill. */
#define XCB_RENDER_CREATE_SOLID_FILL 33
/**
* @brief xcb_render_create_solid_fill_request_t
**/
typedef struct xcb_render_create_solid_fill_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
xcb_render_color_t color;
} xcb_render_create_solid_fill_request_t;
/** Opcode for xcb_render_create_linear_gradient. */
#define XCB_RENDER_CREATE_LINEAR_GRADIENT 34
/**
* @brief xcb_render_create_linear_gradient_request_t
**/
typedef struct xcb_render_create_linear_gradient_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
xcb_render_pointfix_t p1;
xcb_render_pointfix_t p2;
uint32_t num_stops;
} xcb_render_create_linear_gradient_request_t;
/** Opcode for xcb_render_create_radial_gradient. */
#define XCB_RENDER_CREATE_RADIAL_GRADIENT 35
/**
* @brief xcb_render_create_radial_gradient_request_t
**/
typedef struct xcb_render_create_radial_gradient_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
xcb_render_pointfix_t inner;
xcb_render_pointfix_t outer;
xcb_render_fixed_t inner_radius;
xcb_render_fixed_t outer_radius;
uint32_t num_stops;
} xcb_render_create_radial_gradient_request_t;
/** Opcode for xcb_render_create_conical_gradient. */
#define XCB_RENDER_CREATE_CONICAL_GRADIENT 36
/**
* @brief xcb_render_create_conical_gradient_request_t
**/
typedef struct xcb_render_create_conical_gradient_request_t {
uint8_t major_opcode;
uint8_t minor_opcode;
uint16_t length;
xcb_render_picture_t picture;
xcb_render_pointfix_t center;
xcb_render_fixed_t angle;
uint32_t num_stops;
} xcb_render_create_conical_gradient_request_t;
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_glyph_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_glyph_t)
*/
void
xcb_render_glyph_next (xcb_render_glyph_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_glyph_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_glyph_end (xcb_render_glyph_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_glyphset_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_glyphset_t)
*/
void
xcb_render_glyphset_next (xcb_render_glyphset_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_glyphset_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_glyphset_end (xcb_render_glyphset_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_picture_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_picture_t)
*/
void
xcb_render_picture_next (xcb_render_picture_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_picture_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_picture_end (xcb_render_picture_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_pictformat_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_pictformat_t)
*/
void
xcb_render_pictformat_next (xcb_render_pictformat_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_pictformat_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_pictformat_end (xcb_render_pictformat_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_fixed_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_fixed_t)
*/
void
xcb_render_fixed_next (xcb_render_fixed_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_fixed_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_fixed_end (xcb_render_fixed_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_directformat_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_directformat_t)
*/
void
xcb_render_directformat_next (xcb_render_directformat_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_directformat_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_directformat_end (xcb_render_directformat_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_pictforminfo_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_pictforminfo_t)
*/
void
xcb_render_pictforminfo_next (xcb_render_pictforminfo_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_pictforminfo_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_pictforminfo_end (xcb_render_pictforminfo_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_pictvisual_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_pictvisual_t)
*/
void
xcb_render_pictvisual_next (xcb_render_pictvisual_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_pictvisual_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_pictvisual_end (xcb_render_pictvisual_iterator_t i);
int
xcb_render_pictdepth_sizeof (const void *_buffer);
xcb_render_pictvisual_t *
xcb_render_pictdepth_visuals (const xcb_render_pictdepth_t *R);
int
xcb_render_pictdepth_visuals_length (const xcb_render_pictdepth_t *R);
xcb_render_pictvisual_iterator_t
xcb_render_pictdepth_visuals_iterator (const xcb_render_pictdepth_t *R);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_pictdepth_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_pictdepth_t)
*/
void
xcb_render_pictdepth_next (xcb_render_pictdepth_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_pictdepth_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_pictdepth_end (xcb_render_pictdepth_iterator_t i);
int
xcb_render_pictscreen_sizeof (const void *_buffer);
int
xcb_render_pictscreen_depths_length (const xcb_render_pictscreen_t *R);
xcb_render_pictdepth_iterator_t
xcb_render_pictscreen_depths_iterator (const xcb_render_pictscreen_t *R);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_pictscreen_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_pictscreen_t)
*/
void
xcb_render_pictscreen_next (xcb_render_pictscreen_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_pictscreen_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_pictscreen_end (xcb_render_pictscreen_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_indexvalue_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_indexvalue_t)
*/
void
xcb_render_indexvalue_next (xcb_render_indexvalue_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_indexvalue_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_indexvalue_end (xcb_render_indexvalue_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_color_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_color_t)
*/
void
xcb_render_color_next (xcb_render_color_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_color_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_color_end (xcb_render_color_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_pointfix_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_pointfix_t)
*/
void
xcb_render_pointfix_next (xcb_render_pointfix_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_pointfix_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_pointfix_end (xcb_render_pointfix_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_linefix_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_linefix_t)
*/
void
xcb_render_linefix_next (xcb_render_linefix_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_linefix_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_linefix_end (xcb_render_linefix_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_triangle_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_triangle_t)
*/
void
xcb_render_triangle_next (xcb_render_triangle_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_triangle_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_triangle_end (xcb_render_triangle_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_trapezoid_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_trapezoid_t)
*/
void
xcb_render_trapezoid_next (xcb_render_trapezoid_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_trapezoid_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_trapezoid_end (xcb_render_trapezoid_iterator_t i);
/**
* Get the next element of the iterator
* @param i Pointer to a xcb_render_glyphinfo_iterator_t
*
* Get the next element in the iterator. The member rem is
* decreased by one. The member data points to the next
* element. The member index is increased by sizeof(xcb_render_glyphinfo_t)
*/
void
xcb_render_glyphinfo_next (xcb_render_glyphinfo_iterator_t *i);
/**
* Return the iterator pointing to the last element
* @param i An xcb_render_glyphinfo_iterator_t
* @return The iterator pointing to the last element
*
* Set the current element in the iterator to the last element.
* The member rem is set to 0. The member data points to the
* last element.
*/
xcb_generic_iterator_t
xcb_render_glyphinfo_end (xcb_render_glyphinfo_iterator_t i);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_render_query_version_cookie_t
xcb_render_query_version (xcb_connection_t *c,
uint32_t client_major_version,
uint32_t client_minor_version);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_render_query_version_cookie_t
xcb_render_query_version_unchecked (xcb_connection_t *c,
uint32_t client_major_version,
uint32_t client_minor_version);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_render_query_version_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_render_query_version_reply_t *
xcb_render_query_version_reply (xcb_connection_t *c,
xcb_render_query_version_cookie_t cookie /**< */,
xcb_generic_error_t **e);
int
xcb_render_query_pict_formats_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_render_query_pict_formats_cookie_t
xcb_render_query_pict_formats (xcb_connection_t *c);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_render_query_pict_formats_cookie_t
xcb_render_query_pict_formats_unchecked (xcb_connection_t *c);
xcb_render_pictforminfo_t *
xcb_render_query_pict_formats_formats (const xcb_render_query_pict_formats_reply_t *R);
int
xcb_render_query_pict_formats_formats_length (const xcb_render_query_pict_formats_reply_t *R);
xcb_render_pictforminfo_iterator_t
xcb_render_query_pict_formats_formats_iterator (const xcb_render_query_pict_formats_reply_t *R);
int
xcb_render_query_pict_formats_screens_length (const xcb_render_query_pict_formats_reply_t *R);
xcb_render_pictscreen_iterator_t
xcb_render_query_pict_formats_screens_iterator (const xcb_render_query_pict_formats_reply_t *R);
uint32_t *
xcb_render_query_pict_formats_subpixels (const xcb_render_query_pict_formats_reply_t *R);
int
xcb_render_query_pict_formats_subpixels_length (const xcb_render_query_pict_formats_reply_t *R);
xcb_generic_iterator_t
xcb_render_query_pict_formats_subpixels_end (const xcb_render_query_pict_formats_reply_t *R);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_render_query_pict_formats_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_render_query_pict_formats_reply_t *
xcb_render_query_pict_formats_reply (xcb_connection_t *c,
xcb_render_query_pict_formats_cookie_t cookie /**< */,
xcb_generic_error_t **e);
int
xcb_render_query_pict_index_values_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_render_query_pict_index_values_cookie_t
xcb_render_query_pict_index_values (xcb_connection_t *c,
xcb_render_pictformat_t format);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will cause
* a reply to be generated. Any returned error will be
* placed in the event queue.
*/
xcb_render_query_pict_index_values_cookie_t
xcb_render_query_pict_index_values_unchecked (xcb_connection_t *c,
xcb_render_pictformat_t format);
xcb_render_indexvalue_t *
xcb_render_query_pict_index_values_values (const xcb_render_query_pict_index_values_reply_t *R);
int
xcb_render_query_pict_index_values_values_length (const xcb_render_query_pict_index_values_reply_t *R);
xcb_render_indexvalue_iterator_t
xcb_render_query_pict_index_values_values_iterator (const xcb_render_query_pict_index_values_reply_t *R);
/**
* Return the reply
* @param c The connection
* @param cookie The cookie
* @param e The xcb_generic_error_t supplied
*
* Returns the reply of the request asked by
*
* The parameter @p e supplied to this function must be NULL if
* xcb_render_query_pict_index_values_unchecked(). is used.
* Otherwise, it stores the error if any.
*
* The returned value must be freed by the caller using free().
*/
xcb_render_query_pict_index_values_reply_t *
xcb_render_query_pict_index_values_reply (xcb_connection_t *c,
xcb_render_query_pict_index_values_cookie_t cookie /**< */,
xcb_generic_error_t **e);
int
xcb_render_create_picture_value_list_serialize (void **_buffer,
uint32_t value_mask,
const xcb_render_create_picture_value_list_t *_aux);
int
xcb_render_create_picture_value_list_unpack (const void *_buffer,
uint32_t value_mask,
xcb_render_create_picture_value_list_t *_aux);
int
xcb_render_create_picture_value_list_sizeof (const void *_buffer,
uint32_t value_mask);
int
xcb_render_create_picture_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_create_picture_checked (xcb_connection_t *c,
xcb_render_picture_t pid,
xcb_drawable_t drawable,
xcb_render_pictformat_t format,
uint32_t value_mask,
const void *value_list);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_create_picture (xcb_connection_t *c,
xcb_render_picture_t pid,
xcb_drawable_t drawable,
xcb_render_pictformat_t format,
uint32_t value_mask,
const void *value_list);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_create_picture_aux_checked (xcb_connection_t *c,
xcb_render_picture_t pid,
xcb_drawable_t drawable,
xcb_render_pictformat_t format,
uint32_t value_mask,
const xcb_render_create_picture_value_list_t *value_list);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_create_picture_aux (xcb_connection_t *c,
xcb_render_picture_t pid,
xcb_drawable_t drawable,
xcb_render_pictformat_t format,
uint32_t value_mask,
const xcb_render_create_picture_value_list_t *value_list);
void *
xcb_render_create_picture_value_list (const xcb_render_create_picture_request_t *R);
int
xcb_render_change_picture_value_list_serialize (void **_buffer,
uint32_t value_mask,
const xcb_render_change_picture_value_list_t *_aux);
int
xcb_render_change_picture_value_list_unpack (const void *_buffer,
uint32_t value_mask,
xcb_render_change_picture_value_list_t *_aux);
int
xcb_render_change_picture_value_list_sizeof (const void *_buffer,
uint32_t value_mask);
int
xcb_render_change_picture_sizeof (const void *_buffer);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_change_picture_checked (xcb_connection_t *c,
xcb_render_picture_t picture,
uint32_t value_mask,
const void *value_list);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_change_picture (xcb_connection_t *c,
xcb_render_picture_t picture,
uint32_t value_mask,
const void *value_list);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_change_picture_aux_checked (xcb_connection_t *c,
xcb_render_picture_t picture,
uint32_t value_mask,
const xcb_render_change_picture_value_list_t *value_list);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_change_picture_aux (xcb_connection_t *c,
xcb_render_picture_t picture,
uint32_t value_mask,
const xcb_render_change_picture_value_list_t *value_list);
void *
xcb_render_change_picture_value_list (const xcb_render_change_picture_request_t *R);
int
xcb_render_set_picture_clip_rectangles_sizeof (const void *_buffer,
uint32_t rectangles_len);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_set_picture_clip_rectangles_checked (xcb_connection_t *c,
xcb_render_picture_t picture,
int16_t clip_x_origin,
int16_t clip_y_origin,
uint32_t rectangles_len,
const xcb_rectangle_t *rectangles);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_set_picture_clip_rectangles (xcb_connection_t *c,
xcb_render_picture_t picture,
int16_t clip_x_origin,
int16_t clip_y_origin,
uint32_t rectangles_len,
const xcb_rectangle_t *rectangles);
xcb_rectangle_t *
xcb_render_set_picture_clip_rectangles_rectangles (const xcb_render_set_picture_clip_rectangles_request_t *R);
int
xcb_render_set_picture_clip_rectangles_rectangles_length (const xcb_render_set_picture_clip_rectangles_request_t *R);
xcb_rectangle_iterator_t
xcb_render_set_picture_clip_rectangles_rectangles_iterator (const xcb_render_set_picture_clip_rectangles_request_t *R);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_free_picture_checked (xcb_connection_t *c,
xcb_render_picture_t picture);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_free_picture (xcb_connection_t *c,
xcb_render_picture_t picture);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_composite_checked (xcb_connection_t *c,
uint8_t op,
xcb_render_picture_t src,
xcb_render_picture_t mask,
xcb_render_picture_t dst,
int16_t src_x,
int16_t src_y,
int16_t mask_x,
int16_t mask_y,
int16_t dst_x,
int16_t dst_y,
uint16_t width,
uint16_t height);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_composite (xcb_connection_t *c,
uint8_t op,
xcb_render_picture_t src,
xcb_render_picture_t mask,
xcb_render_picture_t dst,
int16_t src_x,
int16_t src_y,
int16_t mask_x,
int16_t mask_y,
int16_t dst_x,
int16_t dst_y,
uint16_t width,
uint16_t height);
int
xcb_render_trapezoids_sizeof (const void *_buffer,
uint32_t traps_len);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_trapezoids_checked (xcb_connection_t *c,
uint8_t op,
xcb_render_picture_t src,
xcb_render_picture_t dst,
xcb_render_pictformat_t mask_format,
int16_t src_x,
int16_t src_y,
uint32_t traps_len,
const xcb_render_trapezoid_t *traps);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_trapezoids (xcb_connection_t *c,
uint8_t op,
xcb_render_picture_t src,
xcb_render_picture_t dst,
xcb_render_pictformat_t mask_format,
int16_t src_x,
int16_t src_y,
uint32_t traps_len,
const xcb_render_trapezoid_t *traps);
xcb_render_trapezoid_t *
xcb_render_trapezoids_traps (const xcb_render_trapezoids_request_t *R);
int
xcb_render_trapezoids_traps_length (const xcb_render_trapezoids_request_t *R);
xcb_render_trapezoid_iterator_t
xcb_render_trapezoids_traps_iterator (const xcb_render_trapezoids_request_t *R);
int
xcb_render_triangles_sizeof (const void *_buffer,
uint32_t triangles_len);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
* This form can be used only if the request will not cause
* a reply to be generated. Any returned error will be
* saved for handling by xcb_request_check().
*/
xcb_void_cookie_t
xcb_render_triangles_checked (xcb_connection_t *c,
uint8_t op,
xcb_render_picture_t src,
xcb_render_picture_t dst,
xcb_render_pictformat_t mask_format,
int16_t src_x,
int16_t src_y,
uint32_t triangles_len,
const xcb_render_triangle_t *triangles);
/**
*
* @param c The connection
* @return A cookie
*
* Delivers a request to the X server.
*
*/
xcb_void_cookie_t
xcb_render_triangles (xcb_connection_t