~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to internal.h

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2011-09-24 19:16:17 UTC
  • mfrom: (1.1.8 upstream) (13.1.7 experimental)
  • Revision ID: james.westby@ubuntu.com-20110924191617-o1qz4rcmqjot8zuy
Tags: 1.9.3~rc1-1
* New upstream release: 1.9.3 RC1.
  + Includes load.c fixes. Closes: #639959.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**********************************************************************
 
2
 
 
3
  internal.h -
 
4
 
 
5
  $Author$
 
6
  created at: Tue May 17 11:42:20 JST 2011
 
7
 
 
8
  Copyright (C) 2011 Yukihiro Matsumoto
 
9
 
 
10
**********************************************************************/
 
11
 
 
12
#ifndef RUBY_INTERNAL_H
 
13
#define RUBY_INTERNAL_H 1
 
14
 
 
15
#if defined(__cplusplus)
 
16
extern "C" {
 
17
#if 0
 
18
} /* satisfy cc-mode */
 
19
#endif
 
20
#endif
 
21
 
 
22
struct rb_deprecated_classext_struct {
 
23
    char conflict[sizeof(VALUE) * 3];
 
24
};
 
25
 
 
26
struct rb_classext_struct {
 
27
    VALUE super;
 
28
    struct st_table *iv_tbl;
 
29
    struct st_table *const_tbl;
 
30
};
 
31
 
 
32
#undef RCLASS_SUPER
 
33
#define RCLASS_EXT(c) (RCLASS(c)->ptr)
 
34
#define RCLASS_SUPER(c) (RCLASS_EXT(c)->super)
 
35
#define RCLASS_IV_TBL(c) (RCLASS_EXT(c)->iv_tbl)
 
36
#define RCLASS_CONST_TBL(c) (RCLASS_EXT(c)->const_tbl)
 
37
#define RCLASS_M_TBL(c) (RCLASS(c)->m_tbl)
 
38
#define RCLASS_IV_INDEX_TBL(c) (RCLASS(c)->iv_index_tbl)
 
39
 
 
40
struct vtm; /* defined by timev.h */
 
41
 
 
42
/* array.c */
 
43
VALUE rb_ary_last(int, VALUE *, VALUE);
 
44
 
 
45
/* bignum.c */
 
46
VALUE rb_big_fdiv(VALUE x, VALUE y);
 
47
VALUE rb_big_uminus(VALUE x);
 
48
 
 
49
/* class.c */
 
50
VALUE rb_obj_methods(int argc, VALUE *argv, VALUE obj);
 
51
VALUE rb_obj_protected_methods(int argc, VALUE *argv, VALUE obj);
 
52
VALUE rb_obj_private_methods(int argc, VALUE *argv, VALUE obj);
 
53
VALUE rb_obj_public_methods(int argc, VALUE *argv, VALUE obj);
 
54
int rb_obj_basic_to_s_p(VALUE);
 
55
void Init_class_hierarchy(void);
 
56
 
 
57
/* compile.c */
 
58
int rb_dvar_defined(ID);
 
59
int rb_local_defined(ID);
 
60
int rb_parse_in_eval(void);
 
61
int rb_parse_in_main(void);
 
62
VALUE rb_insns_name_array(void);
 
63
 
 
64
/* debug.c */
 
65
PRINTF_ARGS(void ruby_debug_printf(const char*, ...), 1, 2);
 
66
 
 
67
/* dmyext.c */
 
68
void Init_ext(void);
 
69
 
 
70
/* encoding.c */
 
71
ID rb_id_encoding(void);
 
72
 
 
73
/* encoding.c */
 
74
void rb_gc_mark_encodings(void);
 
75
 
 
76
/* error.c */
 
77
NORETURN(PRINTF_ARGS(void rb_compile_bug(const char*, int, const char*, ...), 3, 4));
 
78
VALUE rb_check_backtrace(VALUE);
 
79
NORETURN(void rb_async_bug_errno(const char *,int));
 
80
 
 
81
/* eval_error.c */
 
82
void ruby_error_print(void);
 
83
VALUE rb_get_backtrace(VALUE info);
 
84
 
 
85
/* eval_jump.c */
 
86
void rb_call_end_proc(VALUE data);
 
87
 
 
88
/* file.c */
 
89
VALUE rb_home_dir(const char *user, VALUE result);
 
90
VALUE rb_realpath_internal(VALUE basedir, VALUE path, int strict);
 
91
void Init_File(void);
 
92
 
 
93
/* gc.c */
 
94
void Init_heap(void);
 
95
 
 
96
/* inits.c */
 
97
void rb_call_inits(void);
 
98
 
 
99
/* io.c */
 
100
const char *ruby_get_inplace_mode(void);
 
101
void ruby_set_inplace_mode(const char *);
 
102
ssize_t rb_io_bufread(VALUE io, void *buf, size_t size);
 
103
void rb_stdio_set_default_encoding(void);
 
104
 
 
105
/* iseq.c */
 
106
VALUE rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt);
 
107
VALUE rb_iseq_clone(VALUE iseqval, VALUE newcbase);
 
108
 
 
109
/* load.c */
 
110
VALUE rb_get_load_path(void);
 
111
 
 
112
/* math.c */
 
113
VALUE rb_math_atan2(VALUE, VALUE);
 
114
VALUE rb_math_cos(VALUE);
 
115
VALUE rb_math_cosh(VALUE);
 
116
VALUE rb_math_exp(VALUE);
 
117
VALUE rb_math_hypot(VALUE, VALUE);
 
118
VALUE rb_math_log(int argc, VALUE *argv);
 
119
VALUE rb_math_sin(VALUE);
 
120
VALUE rb_math_sinh(VALUE);
 
121
VALUE rb_math_sqrt(VALUE);
 
122
 
 
123
/* newline.c */
 
124
void Init_newline(void);
 
125
 
 
126
/* numeric.c */
 
127
int rb_num_to_uint(VALUE val, unsigned int *ret);
 
128
int ruby_float_step(VALUE from, VALUE to, VALUE step, int excl);
 
129
 
 
130
/* object.c */
 
131
VALUE rb_obj_equal(VALUE obj1, VALUE obj2);
 
132
 
 
133
/* parse.y */
 
134
VALUE rb_parser_get_yydebug(VALUE);
 
135
VALUE rb_parser_set_yydebug(VALUE, VALUE);
 
136
 
 
137
/* proc.c */
 
138
VALUE rb_proc_location(VALUE self);
 
139
 
 
140
/* rational.c */
 
141
VALUE rb_lcm(VALUE x, VALUE y);
 
142
VALUE rb_rational_reciprocal(VALUE x);
 
143
 
 
144
/* re.c */
 
145
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);
 
146
VALUE rb_reg_check_preprocess(VALUE);
 
147
 
 
148
/* signal.c */
 
149
int rb_get_next_signal(void);
 
150
 
 
151
/* strftime.c */
 
152
size_t rb_strftime_timespec(char *s, size_t maxsize, const char *format, const struct vtm *vtm, struct timespec *ts, int gmt);
 
153
 
 
154
/* string.c */
 
155
int rb_str_buf_cat_escaped_char(VALUE result, unsigned int c, int unicode_p);
 
156
 
 
157
/* struct.c */
 
158
VALUE rb_struct_init_copy(VALUE copy, VALUE s);
 
159
 
 
160
/* time.c */
 
161
struct timeval rb_time_timeval(VALUE);
 
162
 
 
163
/* thread.c */
 
164
VALUE rb_obj_is_mutex(VALUE obj);
 
165
VALUE ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always);
 
166
void rb_thread_execute_interrupts(VALUE th);
 
167
void rb_clear_trace_func(void);
 
168
VALUE rb_thread_backtrace(VALUE thval);
 
169
VALUE rb_get_coverages(void);
 
170
 
 
171
/* thread_pthread.c, thread_win32.c */
 
172
void Init_native_thread(void);
 
173
 
 
174
/* vm.c */
 
175
VALUE rb_obj_is_thread(VALUE obj);
 
176
void rb_vm_mark(void *ptr);
 
177
void Init_BareVM(void);
 
178
VALUE rb_vm_top_self(void);
 
179
void rb_thread_recycle_stack_release(VALUE *);
 
180
void rb_vm_change_state(void);
 
181
void rb_vm_inc_const_missing_count(void);
 
182
void rb_thread_mark(void *th);
 
183
const void **rb_vm_get_insns_address_table(void);
 
184
 
 
185
/* vm_dump.c */
 
186
void rb_vm_bugreport(void);
 
187
 
 
188
/* vm_eval.c */
 
189
void Init_vm_eval(void);
 
190
VALUE rb_current_realfilepath(void);
 
191
 
 
192
/* vm_method.c */
 
193
void Init_eval_method(void);
 
194
 
 
195
/* miniprelude.c, prelude.c */
 
196
void Init_prelude(void);
 
197
 
 
198
#if defined __GNUC__ && __GNUC__ >= 4
 
199
#pragma GCC visibility push(default)
 
200
#endif
 
201
const char *rb_objspace_data_type_name(VALUE obj);
 
202
 
 
203
/* Temporary.  This API will be removed (renamed). */
 
204
VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd);
 
205
 
 
206
/* experimental.
 
207
 * These APIs can be changed on Ruby 1.9.4 or later.
 
208
 * We will change these APIs (spac, name and so on) if there are something wrong.
 
209
 * If you use these APIs, catch up future changes.
 
210
 */
 
211
void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1);
 
212
VALUE rb_thread_call_without_gvl(
 
213
    rb_blocking_function_t *func, void *data1,
 
214
    rb_unblock_function_t *ubf, void *data2);
 
215
 
 
216
#if defined __GNUC__ && __GNUC__ >= 4
 
217
#pragma GCC visibility pop
 
218
#endif
 
219
 
 
220
#if defined(__cplusplus)
 
221
#if 0
 
222
{ /* satisfy cc-mode */
 
223
#endif
 
224
}  /* extern "C" { */
 
225
#endif
 
226
 
 
227
#endif /* RUBY_INTERNAL_H */