1/* 2 * Copyright (c) 2010 Apple Inc. All rights reserved. 3 * 4 * @APPLE_LICENSE_HEADER_START@ 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. Neither the name of Apple Inc. ("Apple") nor the names of its 16 * contributors may be used to endorse or promote products derived from 17 * this software without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 20 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * 30 * Portions of this software have been released under the following terms: 31 * 32 * (c) Copyright 1989-1993 OPEN SOFTWARE FOUNDATION, INC. 33 * (c) Copyright 1989-1993 HEWLETT-PACKARD COMPANY 34 * (c) Copyright 1989-1993 DIGITAL EQUIPMENT CORPORATION 35 * 36 * To anyone who acknowledges that this file is provided "AS IS" 37 * without any express or implied warranty: 38 * permission to use, copy, modify, and distribute this file for any 39 * purpose is hereby granted without fee, provided that the above 40 * copyright notices and this notice appears in all source code copies, 41 * and that none of the names of Open Software Foundation, Inc., Hewlett- 42 * Packard Company or Digital Equipment Corporation be used 43 * in advertising or publicity pertaining to distribution of the software 44 * without specific, written prior permission. Neither Open Software 45 * Foundation, Inc., Hewlett-Packard Company nor Digital 46 * Equipment Corporation makes any representations about the suitability 47 * of this software for any purpose. 48 * 49 * Copyright (c) 2007, Novell, Inc. All rights reserved. 50 * Redistribution and use in source and binary forms, with or without 51 * modification, are permitted provided that the following conditions 52 * are met: 53 * 54 * 1. Redistributions of source code must retain the above copyright 55 * notice, this list of conditions and the following disclaimer. 56 * 2. Redistributions in binary form must reproduce the above copyright 57 * notice, this list of conditions and the following disclaimer in the 58 * documentation and/or other materials provided with the distribution. 59 * 3. Neither the name of Novell Inc. nor the names of its contributors 60 * may be used to endorse or promote products derived from this 61 * this software without specific prior written permission. 62 * 63 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 64 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 65 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 66 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY 67 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 68 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 69 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 70 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 71 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 72 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 73 * 74 * @APPLE_LICENSE_HEADER_END@ 75 */ 76 77/* 78** NAME: 79** 80** be_pvt.h 81** 82** FACILITY: 83** 84** Interface Definition Language (IDL) Compiler 85** 86** ABSTRACT: 87** 88** Backend private global definitions 89** 90** VERSION: DCE 1.0 91** 92*/ 93 94#ifndef BE_PVT_H 95#define BE_PVT_H 96 97#include <nametbl.h> 98 99/* 100 * Some backend private globals 101 */ 102extern struct AST_type_n_t *BE_ulong_int_p, *BE_ushort_int_p; 103extern struct AST_type_n_t *BE_pointer_p, *BE_function_p; 104extern struct AST_type_n_t *BE_hyper_null_p, *BE_long_null_p, *BE_short_null_p; 105 106#ifndef MIA 107extern boolean BE_bug_array_no_ref_hole; 108#endif 109extern boolean BE_space_opt, BE_bug_array_align, BE_bug_array_align2, BE_bug_boolean_def; 110#ifdef DUMPERS 111extern boolean BE_dump_debug, BE_dump_flat, BE_dump_mnode, BE_dump_mool, 112 BE_dump_recs, BE_dump_sends, BE_dump_unode, BE_dump_uool; 113#endif 114 115/* 116 * The runtime will give us at least this many bytes 117 */ 118#define MIN_BUFF_SIZE 880 119/* 120 * The maximum alignment required by any type 121 */ 122#define RPC_MAX_ALIGNMENT 8 123 124typedef enum { 125 BE_client_stub_k, 126 BE_server_stub_k, 127 BE_server_aux_k, 128 BE_client_aux_k 129} BE_output_k_t; 130 131typedef enum {BE_client_side, BE_server_side, BE_both_sides} BE_side_t; 132typedef enum {BE_in, BE_out} BE_direction_t; 133typedef enum {BE_caller, BE_callee} BE_call_side_t; 134typedef enum {BE_pipe_push_k, BE_pipe_pull_k, BE_pipe_alloc_k} 135 BE_pipe_routine_k_t; 136typedef enum {BE_marshalling_k, BE_unmarshalling_k} BE_marshalling_k_t; 137 138typedef union be_info_t { 139 struct BE_pipe_i_t *pipe; 140 struct BE_type_i_t *type; 141 struct BE_param_i_t *param; 142 struct BE_field_i_t *field; 143 struct BE_oper_i_t *oper; 144#ifndef ultrix 145 void *other; /* "other" since "default" is C keyword */ 146#else 147 char *other; 148#endif 149 struct DDBE_type_i_t *dd_type; 150 struct DDBE_oper_i_t *dd_oper; 151 struct DDBE_param_i_t *dd_param; 152} be_info_t; 153 154typedef struct BE_local_var_t 155{ 156 NAMETABLE_id_t name; 157 char *comment; 158 boolean volatility; 159 struct AST_type_n_t *type; 160 struct BE_local_var_t *next; 161} BE_local_var_t; 162 163#ifdef DEBUG_VERBOSE 164# define debug(x) do { if (BE_dump_debug) printf x ; } while (0) 165#else 166# define debug(x) 167#endif 168 169#endif 170