ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

typegen.c File Reference
#include "config.h"
#include "wine/port.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
#include <limits.h>
#include "widl.h"
#include "utils.h"
#include "parser.h"
#include "header.h"
#include "typetree.h"
#include "typegen.h"
#include "expr.h"

Go to the source code of this file.

Data Structures

struct  expr_eval_routine

Defines

#define ROUND_SIZE(size, alignment)   (((size) + ((alignment) - 1)) & ~((alignment) - 1))
#define ROUNDING(size, alignment)   (((alignment) - 1) - (((size) + ((alignment) - 1)) & ((alignment) - 1)))
#define WRITE_FCTYPE(file, fctype, typestring_offset)

Enumerations

enum  type_context { TYPE_CONTEXT_TOPLEVELPARAM, TYPE_CONTEXT_PARAM, TYPE_CONTEXT_CONTAINER, TYPE_CONTEXT_CONTAINER_NO_POINTERS }

Functions

static unsigned int field_memsize (const type_t *type, unsigned int *offset)
static unsigned int fields_memsize (const var_list_t *fields, unsigned int *align)
static unsigned int type_memsize_and_alignment (const type_t *t, unsigned int *align)
static unsigned int write_struct_tfs (FILE *file, type_t *type, const char *name, unsigned int *tfsoff)
static int write_embedded_types (FILE *file, const attr_list_t *attrs, type_t *type, const char *name, int write_ptr, unsigned int *tfsoff)
static const var_t * find_array_or_string_in_struct (const type_t *type)
static unsigned int write_string_tfs (FILE *file, const attr_list_t *attrs, type_t *type, enum type_context context, const char *name, unsigned int *typestring_offset)
static unsigned int get_required_buffer_size_type (const type_t *type, const char *name, const attr_list_t *attrs, int toplevel_param, unsigned int *alignment)
static unsigned int get_function_buffer_size (const var_t *func, enum pass pass)
static const charstring_of_type (unsigned char type)
static voidget_aliaschain_attrp (const type_t *type, enum attr_type attr)
unsigned char get_basic_fc (const type_t *type)
static unsigned char get_basic_fc_signed (const type_t *type)
static unsigned int clamp_align (unsigned int align)
unsigned char get_pointer_fc (const type_t *type, const attr_list_t *attrs, int toplevel_param)
static unsigned char get_pointer_fc_context (const type_t *type, const attr_list_t *attrs, enum type_context context)
static unsigned char get_enum_fc (const type_t *type)
static type_t * get_user_type (const type_t *t, const char **pname)
static int is_user_type (const type_t *t)
enum typegen_type typegen_detect_type (const type_t *type, const attr_list_t *attrs, unsigned int flags)
static int cant_be_null (const var_t *v)
static int get_padding (const var_list_t *fields)
static unsigned int get_stack_size (const type_t *type, const attr_list_t *attrs, int *by_value)
static unsigned char get_contexthandle_flags (const type_t *iface, const attr_list_t *attrs, const type_t *type)
static unsigned int get_rpc_flags (const attr_list_t *attrs)
unsigned char get_struct_fc (const type_t *type)
static unsigned char get_array_fc (const type_t *type)
static int is_non_complex_struct (const type_t *type)
static int type_has_pointers (const type_t *type)
static int type_has_full_pointer (const type_t *type, const attr_list_t *attrs, int toplevel_param)
static unsigned short user_type_offset (const char *name)
static void update_tfsoff (type_t *type, unsigned int offset, FILE *file)
static void guard_rec (type_t *type)
static int is_embedded_complex (const type_t *type)
static const charget_context_handle_type_name (const type_t *type)
static void print_file (FILE *file, int indent, const char *format,...) __attribute__((format(printf
void print (FILE *file, int indent, const char *format, va_list va)
static void write_var_init (FILE *file, int indent, const type_t *t, const char *n, const char *local_var_prefix)
void write_parameters_init (FILE *file, int indent, const var_t *func, const char *local_var_prefix)
static void write_formatdesc (FILE *f, int indent, const char *str)
void write_formatstringsdecl (FILE *f, int indent, const statement_list_t *stmts, type_pred_t pred)
int decl_indirect (const type_t *t)
static unsigned char get_parameter_fc (const type_t *type, const attr_list_t *attrs, int is_return, unsigned short *flags, unsigned int *stack_size, unsigned int *typestring_offset)
static unsigned char get_func_oi2_flags (const var_t *func)
static unsigned int write_new_procformatstring_type (FILE *file, int indent, const type_t *type, const attr_list_t *attrs, int is_return, unsigned int *stack_offset)
static unsigned int write_old_procformatstring_type (FILE *file, int indent, const type_t *type, const attr_list_t *attrs, int is_return, int is_interpreted)
int is_interpreted_func (const type_t *iface, const var_t *func)
static void write_proc_func_header (FILE *file, int indent, const type_t *iface, const var_t *func, unsigned int *offset, unsigned short num_proc)
static void write_procformatstring_func (FILE *file, int indent, const type_t *iface, const var_t *func, unsigned int *offset, unsigned short num_proc)
static void write_procformatstring_stmts (FILE *file, int indent, const statement_list_t *stmts, type_pred_t pred, unsigned int *offset)
void write_procformatstring (FILE *file, const statement_list_t *stmts, type_pred_t pred)
void write_procformatstring_offsets (FILE *file, const type_t *iface)
static int write_base_type (FILE *file, const type_t *type, unsigned int *typestring_offset)
static unsigned int write_conf_or_var_desc (FILE *file, const type_t *cont_type, unsigned int baseoff, const type_t *type, const expr_t *expr)
static unsigned int union_memsize (const var_list_t *fields, unsigned int *pmaxa)
unsigned int type_memsize (const type_t *t)
static unsigned int type_buffer_alignment (const type_t *t)
int is_full_pointer_function (const var_t *func)
void write_full_pointer_init (FILE *file, int indent, const var_t *func, int is_server)
void write_full_pointer_free (FILE *file, int indent, const var_t *func)
static unsigned int write_nonsimple_pointer (FILE *file, const attr_list_t *attrs, const type_t *type, enum type_context context, unsigned int offset, unsigned int *typeformat_offset)
static unsigned int write_simple_pointer (FILE *file, const attr_list_t *attrs, const type_t *type, enum type_context context)
static void print_start_tfs_comment (FILE *file, type_t *t, unsigned int tfsoff)
static unsigned int write_pointer_tfs (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int ref_offset, enum type_context context, unsigned int *typestring_offset)
static int processed (const type_t *type)
static int user_type_has_variable_size (const type_t *t)
static unsigned int write_user_tfs (FILE *file, type_t *type, unsigned int *tfsoff)
static void write_member_type (FILE *file, const type_t *cont, int cont_is_complex, const attr_list_t *attrs, const type_t *type, unsigned int *corroff, unsigned int *tfsoff)
static void write_array_element_type (FILE *file, const type_t *type, int cont_is_complex, unsigned int *tfsoff)
static void write_end (FILE *file, unsigned int *tfsoff)
static void write_descriptors (FILE *file, type_t *type, unsigned int *tfsoff)
static int write_pointer_description_offsets (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int *offset_in_memory, unsigned int *offset_in_buffer, unsigned int *typestring_offset)
static int write_no_repeat_pointer_descriptions (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int *offset_in_memory, unsigned int *offset_in_buffer, unsigned int *typestring_offset)
static int write_fixed_array_pointer_descriptions (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int *offset_in_memory, unsigned int *offset_in_buffer, unsigned int *typestring_offset)
static int write_conformant_array_pointer_descriptions (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int offset_in_memory, unsigned int *typestring_offset)
static int write_varying_array_pointer_descriptions (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int *offset_in_memory, unsigned int *offset_in_buffer, unsigned int *typestring_offset)
static void write_pointer_description (FILE *file, type_t *type, unsigned int *typestring_offset)
int is_declptr (const type_t *t)
static unsigned int write_array_tfs (FILE *file, const attr_list_t *attrs, type_t *type, const char *name, unsigned int *typestring_offset)
static void write_struct_members (FILE *file, const type_t *type, int is_complex, unsigned int *corroff, unsigned int *typestring_offset)
static void write_branch_type (FILE *file, const type_t *t, unsigned int *tfsoff)
static unsigned int write_union_tfs (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int *tfsoff)
static unsigned int write_ip_tfs (FILE *file, const attr_list_t *attrs, type_t *type, unsigned int *typeformat_offset)
static unsigned int write_contexthandle_tfs (FILE *file, const attr_list_t *attrs, type_t *type, int toplevel_param, unsigned int *typeformat_offset)
static unsigned int write_range_tfs (FILE *file, const attr_list_t *attrs, type_t *type, expr_list_t *range_list, unsigned int *typeformat_offset)
static unsigned int write_type_tfs (FILE *file, int indent, const attr_list_t *attrs, type_t *type, const char *name, enum type_context context, unsigned int *typeformat_offset)
static unsigned int process_tfs_stmts (FILE *file, const statement_list_t *stmts, type_pred_t pred, unsigned int *typeformat_offset)
static unsigned int process_tfs (FILE *file, const statement_list_t *stmts, type_pred_t pred)
void write_typeformatstring (FILE *file, const statement_list_t *stmts, type_pred_t pred)
static unsigned int get_required_buffer_size (const var_t *var, unsigned int *alignment, enum pass pass)
static unsigned int get_function_buffer_size (const var_t *func, enum pass pass)
static void print_phase_function (FILE *file, int indent, const char *type, const char *local_var_prefix, enum remoting_phase phase, const var_t *var, unsigned int type_offset)
void print_phase_basetype (FILE *file, int indent, const char *local_var_prefix, enum remoting_phase phase, enum pass pass, const var_t *var, const char *varname)
static int is_conformance_needed_for_phase (enum remoting_phase phase)
expr_t * get_size_is_expr (const type_t *t, const char *name)
void write_parameter_conf_or_var_exprs (FILE *file, int indent, const char *local_var_prefix, enum remoting_phase phase, const var_t *var, int valid_variance)
static void write_remoting_arg (FILE *file, int indent, const var_t *func, const char *local_var_prefix, enum pass pass, enum remoting_phase phase, const var_t *var)
void write_remoting_arguments (FILE *file, int indent, const var_t *func, const char *local_var_prefix, enum pass pass, enum remoting_phase phase)
unsigned int get_size_procformatstring_func (const type_t *iface, const var_t *func)
unsigned int get_size_procformatstring (const statement_list_t *stmts, type_pred_t pred)
unsigned int get_size_typeformatstring (const statement_list_t *stmts, type_pred_t pred)
void declare_stub_args (FILE *file, int indent, const var_t *func)
void assign_stub_out_args (FILE *file, int indent, const var_t *func, const char *local_var_prefix)
void write_func_param_struct (FILE *file, const type_t *iface, const type_t *func, const char *var_decl, int add_retval)
void write_pointer_checks (FILE *file, int indent, const var_t *func)
int write_expr_eval_routines (FILE *file, const char *iface)
void write_expr_eval_routine_list (FILE *file, const char *iface)
void write_user_quad_list (FILE *file)
void write_endpoints (FILE *f, const char *prefix, const str_list_t *list)
void write_client_call_routine (FILE *file, const type_t *iface, const var_t *func, const char *prefix, unsigned int proc_offset)
void write_exceptions (FILE *file)

Variables

static const type_t * current_structure
static const var_t * current_func
static const type_t * current_iface
static struct list expr_eval_routines = LIST_INIT(expr_eval_routines)
static const unsigned short MustSize = 0x0001
static const unsigned short MustFree = 0x0002
static const unsigned short IsPipe = 0x0004
static const unsigned short IsIn = 0x0008
static const unsigned short IsOut = 0x0010
static const unsigned short IsReturn = 0x0020
static const unsigned short IsBasetype = 0x0040
static const unsigned short IsByValue = 0x0080
static const unsigned short IsSimpleRef = 0x0100

Generated on Sun May 27 2012 06:09:23 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.