ReactOS  0.4.14-dev-608-gd495a4f
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 
28 void *xmalloc(size_t);
29 void *xrealloc(void *, size_t);
30 char *xstrdup(const char *str);
31 int strendswith(const char* str, const char* end);
32 
33 #ifndef __GNUC__
34 #define __attribute__(X)
35 #endif
36 
37 void parser_error(const char *s) __attribute__((noreturn));
38 int parser_warning(const char *s, ...) __attribute__((format (printf, 1, 2)));
39 void error_loc(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn));
40 void error(const char *s, ...) __attribute__((format (printf, 1, 2))) __attribute__((noreturn));
41 void error_loc_info(const loc_info_t *, const char *s, ...) __attribute__((format (printf, 2, 3))) __attribute__((noreturn));
42 void warning(const char *s, ...) __attribute__((format (printf, 1, 2)));
43 void warning_loc_info(const loc_info_t *, const char *s, ...) __attribute__((format (printf, 2, 3)));
44 void chat(const char *s, ...) __attribute__((format (printf, 1, 2)));
45 
46 char *dup_basename(const char *name, const char *ext);
47 size_t widl_getline(char **linep, size_t *lenp, FILE *fp);
48 
49 UUID *parse_uuid(const char *u);
50 int is_valid_uuid(const char *s);
51 
52 /* buffer management */
53 
54 extern int byte_swapped;
55 extern unsigned char *output_buffer;
56 extern size_t output_buffer_pos;
57 extern size_t output_buffer_size;
58 
59 extern void init_output_buffer(void);
60 extern void flush_output_buffer( const char *name );
61 extern void add_output_to_resources( const char *type, const char *name );
62 extern void flush_output_resources( const char *name );
63 extern void put_data( const void *data, size_t size );
64 extern void put_byte( unsigned char val );
65 extern void put_word( unsigned short val );
66 extern void put_dword( unsigned int val );
67 extern void put_qword( unsigned int val );
68 extern void put_pword( unsigned int val );
69 extern void put_str( int indent, const char *format, ... ) __attribute__((format (printf, 2, 3)));
70 extern 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
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
void parser_error(const char *s) __attribute__((noreturn))
Definition: utils.c:80
void void align_output(unsigned int align)
Definition: utils.c:449
static const WCHAR indent[]
Definition: object.c:1156
void flush_output_resources(const char *name)
Definition: utils.c:341
int is_valid_uuid(const char *s)
Definition: parser.tab.c:7046
void put_dword(unsigned int val)
Definition: utils.c:395
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint GLuint end
Definition: gl.h:1545
int align(int length, int align)
Definition: dsound8.c:36
void put_str(int indent, const char *format,...) __attribute__((format(printf
size_t output_buffer_size
Definition: utils.c:254
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
void put_pword(unsigned int val)
Definition: utils.c:417
void error_loc_info(const loc_info_t *, const char *s,...) __attribute__((format(printf
int void error_loc(const char *s,...) __attribute__((format(printf
void void void chat(const char *s,...) __attribute__((format(printf
void void warning_loc_info(const loc_info_t *, const char *s,...) __attribute__((format(printf
const WCHAR * str
char ext[3]
Definition: mkdosfs.c:358
void * xrealloc(void *, size_t)
Definition: uimain.c:736
void put_byte(unsigned char val)
Definition: utils.c:383
GLuint GLfloat * val
Definition: glext.h:7180
void * xmalloc(size_t)
Definition: util.c:27
void error(const char *s,...) __attribute__((format(printf
GLsizeiptr size
Definition: glext.h:5919
int parser_warning(const char *s,...) __attribute__((format(printf
void init_output_buffer(void)
Definition: utils.c:272
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
void put_data(const void *data, size_t size)
Definition: utils.c:376
void warning(const char *s,...) __attribute__((format(printf
GLdouble s
Definition: gl.h:2039
size_t output_buffer_pos
Definition: utils.c:253
int byte_swapped
Definition: utils.c:251
void put_word(unsigned short val)
Definition: utils.c:389
#define __attribute__(X)
Definition: utils.h:34
void flush_output_buffer(const char *name)
Definition: utils.c:279
Definition: name.c:38
void add_output_to_resources(const char *type, const char *name)
Definition: utils.c:307
#define const
Definition: zconf.h:230
UUID * parse_uuid(const char *u)
Definition: parser.yy.c:793
void put_qword(unsigned int val)
Definition: utils.c:402
int strendswith(const char *str, const char *end)
Definition: utils.c:238
size_t widl_getline(char **linep, size_t *lenp, FILE *fp)
Definition: utils.c:172
char * xstrdup(const char *str)
Definition: uimain.c:768
#define printf
Definition: config.h:203
void void void char * dup_basename(const char *name, const char *ext)
Definition: utils.c:143