ReactOS 0.4.16-dev-197-g92996da
utils.h
Go to the documentation of this file.
1/*
2 * Utility routines' prototypes etc.
3 *
4 * Copyright 1998 Bertho A. Stultiens (BS)
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WIDL_UTILS_H
22#define __WIDL_UTILS_H
23
24#include "widltypes.h"
25
26#include <stddef.h> /* size_t */
27
28void *xmalloc(size_t);
29void *xrealloc(void *, size_t);
30char *xstrdup(const char *str);
31int strendswith(const char* str, const char* end);
32
33#ifndef __GNUC__
34#define __attribute__(X)
35#endif
36
37void parser_error(const char *s) __attribute__((noreturn));
38int parser_warning(const char *s, ...) __attribute__((format (printf, 1, 2)));
39void error_loc(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn));
40void error(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn));
41void error_loc_info(const loc_info_t *, const char *s, ...) __attribute__((format (printf, 2, 3))) __attribute__((noreturn));
42void warning(const char *s, ...) __attribute__((format (printf, 1, 2)));
44void chat(const char *s, ...) __attribute__((format (printf, 1, 2)));
45
46char *dup_basename(const char *name, const char *ext);
47size_t widl_getline(char **linep, size_t *lenp, FILE *fp);
48
51
52/* buffer management */
53
54extern int byte_swapped;
55extern unsigned char *output_buffer;
56extern size_t output_buffer_pos;
57extern size_t output_buffer_size;
58
59extern void init_output_buffer(void);
60extern void flush_output_buffer( const char *name );
61extern void add_output_to_resources( const char *type, const char *name );
62extern void flush_output_resources( const char *name );
63extern void put_data( const void *data, size_t size );
64extern void put_byte( unsigned char val );
65extern void put_word( unsigned short val );
66extern void put_dword( unsigned int val );
67extern void put_qword( unsigned int val );
68extern void put_pword( unsigned int val );
69extern void put_str( int indent, const char *format, ... ) __attribute__((format (printf, 2, 3)));
70extern void align_output( unsigned int align );
71
72/* typelibs expect the minor version to be stored in the higher bits and
73 * major to be stored in the lower bits */
74#define MAKEVERSION(major, minor) ((((minor) & 0xffff) << 16) | ((major) & 0xffff))
75#define MAJORVERSION(version) ((version) & 0xffff)
76#define MINORVERSION(version) (((version) >> 16) & 0xffff)
77
78#ifndef max
79#define max(a,b) (((a) > (b)) ? (a) : (b))
80#endif
81#ifndef min
82#define min(a,b) (((a) < (b)) ? (a) : (b))
83#endif
84
85#endif
#define put_byte(s, c)
Definition: deflate.h:276
static const WCHAR indent[]
Definition: object.c:1156
static const WCHAR *const ext[]
Definition: module.c:53
int align(int length, int align)
Definition: dsound8.c:36
#define printf
Definition: freeldr.h:97
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble s
Definition: gl.h:2039
GLuint GLuint end
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
GLuint GLfloat * val
Definition: glext.h:7180
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
#define error(str)
Definition: mkdosfs.c:1605
const WCHAR * str
#define warning(s)
Definition: debug.h:83
size_t widl_getline(char **linep, size_t *lenp, FILE *fp)
Definition: utils.c:172
void put_qword(unsigned int val)
Definition: utils.c:402
void flush_output_buffer(const char *name)
Definition: utils.c:279
#define __attribute__(X)
Definition: utils.h:34
int is_valid_uuid(const char *s)
void * xmalloc(size_t)
Definition: util.c:27
void put_pword(unsigned int val)
Definition: utils.c:417
UUID * parse_uuid(const char *u)
char * xstrdup(const char *str)
Definition: uimain.c:768
size_t output_buffer_pos
Definition: utils.c:253
size_t output_buffer_size
Definition: utils.c:254
void put_word(unsigned short val)
Definition: utils.c:389
void add_output_to_resources(const char *type, const char *name)
Definition: utils.c:307
void put_dword(unsigned int val)
Definition: utils.c:395
void void void char * dup_basename(const char *name, const char *ext)
Definition: utils.c:143
int void error_loc(const char *s,...) __attribute__((format(printf
void void warning_loc_info(const loc_info_t *, const char *s,...) __attribute__((format(printf
void flush_output_resources(const char *name)
Definition: utils.c:341
void put_data(const void *data, size_t size)
Definition: utils.c:376
void error_loc_info(const loc_info_t *, const char *s,...) __attribute__((format(printf
int strendswith(const char *str, const char *end)
Definition: utils.c:238
void void align_output(unsigned int align)
Definition: utils.c:449
void parser_error(const char *s) __attribute__((noreturn))
Definition: utils.c:80
void * xrealloc(void *, size_t)
Definition: uimain.c:736
int parser_warning(const char *s,...) __attribute__((format(printf
void init_output_buffer(void)
Definition: utils.c:272
void void void chat(const char *s,...) __attribute__((format(printf
void put_str(int indent, const char *format,...) __attribute__((format(printf
int byte_swapped
Definition: utils.c:251
Definition: format.c:58
Definition: name.c:39
#define const
Definition: zconf.h:233