ReactOS 0.4.16-dev-1946-g52006dd
widl.h
Go to the documentation of this file.
1/*
2 * IDL Compiler
3 *
4 * Copyright 2002 Ove Kaaven
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_WIDL_H
22#define __WIDL_WIDL_H
23
24#include "../tools.h"
25#include "widltypes.h"
26
27#include <time.h>
28
29extern int debuglevel;
30#define DEBUGLEVEL_NONE 0x0000
31#define DEBUGLEVEL_CHAT 0x0001
32#define DEBUGLEVEL_DUMP 0x0002
33#define DEBUGLEVEL_TRACE 0x0004
34#define DEBUGLEVEL_PPMSG 0x0008
35#define DEBUGLEVEL_PPLEX 0x0010
36#define DEBUGLEVEL_PPTRACE 0x0020
37
38extern int pedantic;
39extern int do_everything;
40extern int do_header;
41extern int do_typelib;
42extern int do_proxies;
43extern int do_client;
44extern int do_server;
45extern int do_regscript;
46extern int do_idfile;
47extern int do_dlldata;
48extern int old_names;
49extern int old_typelib;
50extern int winrt_mode;
51extern int interpreted_mode;
52extern int use_abi_namespace;
53
54extern char *input_name;
55extern char *idl_name;
56extern char *acf_name;
57extern char *header_name;
58extern char *header_token;
59extern char *local_stubs_name;
60extern char *typelib_name;
61extern char *dlldata_name;
62extern char *proxy_name;
63extern char *proxy_token;
64extern char *client_name;
65extern char *client_token;
66extern char *server_name;
67extern char *server_token;
68extern char *regscript_name;
69extern char *regscript_token;
70extern const char *prefix_client;
71extern const char *prefix_server;
72extern unsigned int packing;
73extern unsigned int pointer_size;
74extern struct target target;
75extern time_t now;
76
77extern int open_typelib( const char *name );
78
79extern void write_header(const statement_list_t *stmts);
80extern void write_id_data(const statement_list_t *stmts);
81extern void write_proxies(const statement_list_t *stmts);
82extern void write_client(const statement_list_t *stmts);
83extern void write_server(const statement_list_t *stmts);
84extern void write_regscript(const statement_list_t *stmts);
85extern void write_typelib_regscript(const statement_list_t *stmts);
86extern void output_typelib_regscript( const typelib_t *typelib );
87extern void write_local_stubs(const statement_list_t *stmts);
88extern void write_dlldata(const statement_list_t *stmts);
89
90extern void start_cplusplus_guard(FILE *fp);
91extern void end_cplusplus_guard(FILE *fp);
92
93/* attribute.c */
94
95extern attr_t *attr_int( struct location where, enum attr_type attr_type, unsigned int val );
96extern attr_t *attr_ptr( struct location where, enum attr_type attr_type, void *val );
97
98extern int is_attr( const attr_list_t *list, enum attr_type attr_type );
99extern int is_ptrchain_attr( const var_t *var, enum attr_type attr_type );
100extern int is_aliaschain_attr( const type_t *type, enum attr_type attr_type );
101
102extern unsigned int get_attrv( const attr_list_t *list, enum attr_type attr_type );
103extern void *get_attrp( const attr_list_t *list, enum attr_type attr_type );
104extern void *get_aliaschain_attrp( const type_t *type, enum attr_type attr_type );
105
106typedef int (*map_attrs_filter_t)( attr_list_t *, const attr_t * );
108extern attr_list_t *append_attr_list( attr_list_t *new_list, attr_list_t *old_list );
112
113extern attr_list_t *check_apicontract_attrs( const char *name, attr_list_t *attrs );
114extern attr_list_t *check_coclass_attrs( const char *name, attr_list_t *attrs );
115extern attr_list_t *check_dispiface_attrs( const char *name, attr_list_t *attrs );
118extern attr_list_t *check_field_attrs( const char *name, attr_list_t *attrs );
119extern attr_list_t *check_function_attrs( const char *name, attr_list_t *attrs );
120extern attr_list_t *check_interface_attrs( const char *name, attr_list_t *attrs );
121extern attr_list_t *check_library_attrs( const char *name, attr_list_t *attrs );
122extern attr_list_t *check_module_attrs( const char *name, attr_list_t *attrs );
123extern attr_list_t *check_runtimeclass_attrs( const char *name, attr_list_t *attrs );
127extern void check_arg_attrs( const var_t *arg );
128
129#endif
Definition: list.h:37
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
__kernel_time_t time_t
Definition: linux.h:252
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005
GLuint GLfloat * val
Definition: glext.h:7180
const char * var
Definition: shader.c:5666
Definition: cookie.c:202
Definition: name.c:39
Definition: tools.h:99
unsigned int packing
Definition: widl.c:146
attr_list_t * check_module_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:464
void start_cplusplus_guard(FILE *fp)
Definition: widl.c:268
void output_typelib_regscript(const typelib_t *typelib)
Definition: register.c:334
int(* map_attrs_filter_t)(attr_list_t *, const attr_t *)
Definition: widl.h:106
void * get_attrp(const attr_list_t *list, enum attr_type attr_type)
Definition: attribute.c:87
attr_list_t * check_struct_attrs(attr_list_t *attrs)
Definition: attribute.c:490
char * acf_name
Definition: widl.c:118
int do_header
Definition: widl.c:100
const char * prefix_server
Definition: widl.c:136
int use_abi_namespace
Definition: widl.c:113
int interpreted_mode
Definition: widl.c:112
attr_list_t * move_attr(attr_list_t *dst, attr_list_t *src, enum attr_type type)
Definition: attribute.c:322
int do_idfile
Definition: widl.c:106
int do_regscript
Definition: widl.c:105
attr_list_t * check_enum_attrs(attr_list_t *attrs)
Definition: attribute.c:376
char * client_token
Definition: widl.c:127
time_t now
Definition: finger.c:65
void write_local_stubs(const statement_list_t *stmts)
Definition: header.c:1448
attr_list_t * check_apicontract_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:337
attr_t * attr_ptr(struct location where, enum attr_type attr_type, void *val)
Definition: attribute.c:36
char * typelib_name
Definition: widl.c:122
unsigned int pointer_size
Definition: widl.c:147
int do_server
Definition: widl.c:104
unsigned int get_attrv(const attr_list_t *list, enum attr_type attr_type)
Definition: attribute.c:78
char * dlldata_name
Definition: widl.c:123
char * server_name
Definition: widl.c:128
int do_everything
Definition: widl.c:98
attr_list_t * check_function_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:415
char * proxy_name
Definition: widl.c:124
attr_list_t * check_dispiface_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:363
attr_list_t * check_typedef_attrs(attr_list_t *attrs)
Definition: attribute.c:504
void write_regscript(const statement_list_t *stmts)
Definition: register.c:244
attr_list_t * check_runtimeclass_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:477
char * local_stubs_name
Definition: widl.c:120
char * regscript_name
Definition: widl.c:130
char * header_token
Definition: widl.c:121
attr_list_t * append_attr_list(attr_list_t *new_list, attr_list_t *old_list)
Definition: attribute.c:279
attr_list_t * check_coclass_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:350
int do_typelib
Definition: widl.c:101
attr_list_t * check_library_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:451
int is_aliaschain_attr(const type_t *type, enum attr_type attr_type)
Definition: attribute.c:67
attr_list_t * append_attr(attr_list_t *list, attr_t *attr)
Definition: attribute.c:255
void write_server(const statement_list_t *stmts)
Definition: server.c:541
attr_list_t * append_attribs(attr_list_t *, attr_list_t *)
Definition: attribute.c:294
int is_ptrchain_attr(const var_t *var, enum attr_type attr_type)
Definition: attribute.c:54
char * idl_name
Definition: widl.c:117
int old_names
Definition: widl.c:109
char * server_token
Definition: widl.c:129
int winrt_mode
Definition: widl.c:111
attr_list_t * check_enum_member_attrs(attr_list_t *attrs)
Definition: attribute.c:389
int old_typelib
Definition: widl.c:110
void write_typelib_regscript(const statement_list_t *stmts)
Definition: register.c:311
attr_list_t * check_field_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:402
attr_list_t * map_attrs(const attr_list_t *list, map_attrs_filter_t filter)
Definition: attribute.c:302
int is_attr(const attr_list_t *list, enum attr_type attr_type)
Definition: attribute.c:45
void write_client(const statement_list_t *stmts)
Definition: client.c:613
void write_header(const statement_list_t *stmts)
Definition: header.c:2083
void check_arg_attrs(const var_t *arg)
Definition: attribute.c:530
int do_proxies
Definition: widl.c:102
char * regscript_token
Definition: widl.c:131
void write_dlldata(const statement_list_t *stmts)
Definition: widl.c:329
char * client_name
Definition: widl.c:126
void write_proxies(const statement_list_t *stmts)
Definition: proxy.c:1072
void end_cplusplus_guard(FILE *fp)
Definition: widl.c:275
char * proxy_token
Definition: widl.c:125
void * get_aliaschain_attrp(const type_t *type, enum attr_type attr_type)
Definition: attribute.c:96
void write_id_data(const statement_list_t *stmts)
Definition: widl.c:431
int do_client
Definition: widl.c:103
int debuglevel
Definition: widl.c:94
int pedantic
Definition: widl.c:97
int do_dlldata
Definition: widl.c:107
attr_t * attr_int(struct location where, enum attr_type attr_type, unsigned int val)
Definition: attribute.c:27
char * header_name
Definition: widl.c:119
char * input_name
Definition: widl.c:116
const char * prefix_client
Definition: widl.c:135
attr_list_t * check_interface_attrs(const char *name, attr_list_t *attrs)
Definition: attribute.c:428
int open_typelib(const char *name)
Definition: widl.c:650
attr_list_t * check_union_attrs(attr_list_t *attrs)
Definition: attribute.c:517
attr_type
Definition: widltypes.h:72