* src/pmc/multisub.pmc:
[parrot.git] / src / call_list.txt
blob7cdff350a89d937df9f33fac92aaa6c8674b7166
1 # Copyright (C) 2002-2007, The Perl Foundation.
2 # $Id$
4 # Function signature declarations for Parrot Native Call Interface.
5 # The first alphanumeric is the type of the return value,
6 # the other alphanumerics denote the input parameter types.
8 # Types
10 # INT register stuff
11 # I - INTVAL
12 # c - char
13 # s - short
14 # i - int
15 # l - long
17 # NUM register stuff
18 # N - FLOATVAL
19 # f - float
20 # d - double
22 # STR register stuff
23 # S - pointer to a STRING-register
24 # t - character string (0-terminated)
25 # Buffers are not valid return parameters,
26 # use 'p' when the native function returns a pointer value
27 # b - void *
28 # B - void **
30 # PMC register stuff
31 # P - pointer to a PMC-register
32 # O - pointer to PMC-register (object)
33 # p - data pointer from PMC (on store into a new UnManagedStruct PMC)
34 # 2 - pointer to short
35 # 3 - pointer to int
36 # 4 - pointer to long
38 # void stuff
39 # v - void
41 # special stuff
42 # 0 - insert a NULL (pointer) - doesn't comsume a register
43 # J - Parrot_Interp param
44 # @ - slurpy array
46 # Callback Things
48 # U - Single PMC parameter to pass into callback - user data
50 c                # t/pmc/nci.t
51 c       p
52 c       pi
54 d                # t/pmc/nci.t
55 d       d
56 d       JOd      # Parrot builtins
57 I       JOS
58 S       JOS      # ParrotIO.readline
59 I       JI       # Parrot_is_char_*
60 v       JOSP     # String.trans
61 v       JOS      # String.reverse
62 P       JOS      # Added for os.stat
63 I       JOI      # os.umask
64 P       JOPS     # Namespace.get_global
65 v       JOPSP    # Namespace.set_global
67 v       JPPP     # infix MMD
68 v       JPIP
69 v       JPSP
70 v       JPNP
72 v       JPP      # inplace infix MMD
73 v       JPI
74 v       JPS
75 v       JPN
77 P       JPPP     # infix MMD new
78 P       JPIP
79 P       JPSP
80 P       JPNP
82 I       JPP      # MMD compare
84 f                # t/pmc/nci.t
85 f       ff       # t/pmc/nci.t
86 f       is
89 i       b        # t/pmc/nci.t
90 i       d
91 i       i
92 i       ii
93 i       ii4
94 i       ii4i
95 i       iiii
96 i       iiilsp
97 i       iil
98 i       iili
99 i       iip
100 i       iit
101 i       iiti
102 i       ilsp
103 i       iti
104 i       l
105 i       li
106 i       lp
107 i       lsp
108 i       p
109 i       p33
110 i       p333
111 i       p333333
112 i       p4
113 i       p42p
114 i       p4i
115 i       pb
116 i       pi
117 i       pii
118 i       pii4
119 i       pii4i
120 i       piii
121 i       piiiiii
122 i       piiilsp
123 i       piil
124 i       piili
125 i       piit
126 i       piiti
127 i       pilsp
128 i       pit
129 i       pl
130 i       pli
131 i       pll
132 i       pllllllll
133 i       plp
134 i       plsp
135 i       pp
136 i       ppi
137 i       ppiiiiiiii
138 i       pppp
139 i       psp
140 i       pt
141 i       pti
142 i       pitl
143 i       s
144 i       s22
145 i       s222
146 i       sp
147 i       sss
148 i       ssss
149 i       t
150 i       ti
151 i       4
152 i       4i
153 i       42p
155 l               # t/pmc/nci.t
156 l       ii
157 l       l4
158 l       p
159 l       pi
160 l       pii
161 l       p33l
162 l       33l
164 P       Ji       # Needed for parrot threads
165 P       JOl      # Parrot builtins
166 P       JOP      # PerlHash fromkeys, obsolete
167 P       Jt
170 p       B
171 p       b
172 p       Jt
173 p       i
174 p       ii
175 p       iiii
176 p       iiiiii
177 p       iiiiiiii
178 p       p
179 p       pt
180 p       pi
181 p       pii
182 p       piiii
183 p       t
184 p       tpp
185 p       ttttttt
187 s             # t/pmc/nci.t
189 t             # t/pmc/nci.t
190 t       i
191 t       ii
192 t       p
193 t       pi
194 t       pii
195 t       pt
196 t       t
197 t       tl4
198 t       t4
201 v       Jiiip    # examples/japh/japh11.pasm
202 v       JOP      # Needed for parrot threads
203 v       i
204 v       ii
205 v       illllllll
206 v       l
207 v       p
208 v       pbip     # for libsyck
209 v       pi
210 v       piiii
211 v       pl
212 v       pp
214 # These are needed for parrotio.pmc
215 i       JP
216 v       JP
217 i       JPi
218 i       JPii
219 i       JPiii
220 i       JPt
221 P       JOSSS
223 # Needed by string.pmc
224 v       JOSS
226 # Py_func signatures
227 P       JP
228 P       JPP
229 P       JO
230 S       JO
231 i       P
233 # Needed by integer.pmc
234 S       JOI
237 # the following are use by t/pmc/nci.t
238 i       sc
239 s       sc
240 c       sc
241 i       iii
242 i       i3
243 t       b
244 t       B
245 v       P
246 v       pP
247 p       ip
248 i       33
249 v       pii
250 v       JO
251 i       JO
252 i       JOi
253 i       JOt
254 i       Jt
255 i       Ji
257 # Oddball ones for postgres
258 p       ptippppi    PQexecParams
259 p       pi33ipi     PQfn
260 p       pttip       PQprepage
261 p       ptipppi     PQexecPrepared
262 p       ppP         PQsetNoticeReceiver
264 # The following are used by library/pcre.pir
265 p       tiB3P
266 p       tip3P
267 i       pPtiiipi
268 i       tpiibi
270 # Used by SDL
271 p       iiil
272 i       ppl
273 v       pip
274 p       pti
275 i       ppp
277 # Used by SDL::Font
278 p       ti
279 p       ptp
280 i       pt33
282 # For python
283 i       JPP
285 #required for mod_parrot
286 i       ip
287 i       JPip
288 i       JpP
289 i       Jpii
290 i       p
291 i       tp
292 p       J
293 p       Jp
294 t       J
295 t       Jpti
296 t       p
297 t       pt
298 v       p
299 v       pit
300 v       ptt
301 v       tiiiptt
303 # PyBuiltins
304 P       JOPP
305 P       JOPPP
306 v       JOPP
307 v       JOPPP
308 P       JOPPPP
309 P       JOPPPPP
311 # Added for Tcl
312 I       JOSI
313 P       JOSII
315 # libpast
316 p       Ji
317 p       Jipp
318 p       Jbip
319 v       Jp
320 v       JS
322 # crypt
323 t       tt
325 # Sub.__get_regs_used
326 I       JOt
328 # declare_lex_preg
329 v       JOSI
331 # Added for .NET => PIR translator dynamic PMCs.
332 S      JOi
333 v      JOi
334 I      JO
335 N      JO
336 v      JON
337 P      JOi
338 v      JOI
340 # Make lua stop panic'ing.
341 P      JOI
342 S      JOSP
344 # ParrotThread creation
345 i      JOP@
346 I      JOP@
347 I      JOIP@
348 # other ParrotThread
349 P      JO
351 # src/pmc/nci.pmc
352 v JOb
354 # --- start mysqlclient library ---
355 # Created from mysql.h using the following manual method:
356 # Edited copy of mysql.h using vi by doing g/, *$/j (repeat) then g/\* *$/j (repeat)
357 # to get all functions on one line each.
358 # Extracted list of api func names from http://dev.mysql.com/doc/refman/4.1/en/c-api-functions.html
359 # and copied to a temporary file to clean up (mysql_api_names.txt)
360 # Stripped down to bare names and merged into one line separated by |
361 # then egrep -w `cat mysql_api_names.txt` mysql.h > mysql_api.ncidef
362 # then edit mysql_api.ncidef in vi: %s/^/   #  /
363 # to create space for nci signatures and to use original definition as a # comment.
364 # This method isn't ideal, I'm just noting it here in case it helps others.
365 # Ideally the process should be automated - but there be many dragons along # that path.
367 # long long values (my_ulonglong) aren't handled by nci - spec'd as just long for now
369 #       MYSQL_FIELD and MYSQL_RES are structs
370 #       typedef char **MYSQL_ROW;               /* return data as array of strings */
371 #       typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */
372 #       typedef MYSQL_ROWS *MYSQL_ROW_OFFSET;   /* offset to current row */
374 l p     #! my_ulonglong mysql_num_rows(MYSQL_RES *res)
375 i p     #  unsigned int mysql_num_fields(MYSQL_RES *res)
376 c p     #  my_bool mysql_eof(MYSQL_RES *res)
377 p pi    #  MYSQL_FIELD *mysql_fetch_field_direct(MYSQL_RES *res, unsigned int fieldnr)
378 p p     #  MYSQL_FIELD * mysql_fetch_fields(MYSQL_RES *res)
379 p p     #  MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *res)
380 i p     #  MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RES *res)
381 i p     #  unsigned int mysql_field_count(MYSQL *mysql)
382 l p     #! my_ulonglong mysql_affected_rows(MYSQL *mysql)
383 l p     #! my_ulonglong mysql_insert_id(MYSQL *mysql)
384 i p     #  unsigned int mysql_errno(MYSQL *mysql)
385 t p     #  const char * mysql_error(MYSQL *mysql)
386 t p     #  const char * mysql_info(MYSQL *mysql)
387 l p     #  unsigned long mysql_thread_id(MYSQL *mysql)
388 t p     #  const char * mysql_character_set_name(MYSQL *mysql)
389 p p     #  MYSQL * mysql_init(MYSQL *mysql)
390 i pttttt        #  int mysql_ssl_set(MYSQL *mysql, const char *key, const char *cert, const char *ca, const char *capath, const char *cipher)
391 c pttt          #  my_bool mysql_change_user(MYSQL *mysql, const char *user, const char *passwd, const char *db)
392 p pttttiti      #  MYSQL * mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned int clientflag)
393 v p     #  void mysql_close(MYSQL *sock)
394 i pt    #  int mysql_select_db(MYSQL *mysql, const char *db)
395 i pt    #  int mysql_query(MYSQL *mysql, const char *q)
396 i ptl   #  int mysql_real_query(MYSQL *mysql, const char *q, unsigned long length)
397 i p     #  int mysql_shutdown(MYSQL *mysql)
398 i p     #  int mysql_dump_debug_info(MYSQL *mysql)
399 i pi    #  int mysql_refresh(MYSQL *mysql, unsigned int refresh_options)
400 i pl    #  int mysql_kill(MYSQL *mysql,unsigned long pid)
401 i p     #  int mysql_ping(MYSQL *mysql)
402 t p     #  const char * mysql_stat(MYSQL *mysql)
403 t p     #  const char * mysql_get_server_info(MYSQL *mysql)
404 t p     #  const char * mysql_get_client_info(void)
405 l       #  unsigned long mysql_get_client_version(void)
406 t p     #  const char * mysql_get_host_info(MYSQL *mysql)
407 t p     #  unsigned int mysql_get_proto_info(MYSQL *mysql)
408 p pt    #  MYSQL_RES * mysql_list_dbs(MYSQL *mysql,const char *wild)
409 p pt    #  MYSQL_RES * mysql_list_tables(MYSQL *mysql,const char *wild)
410 p ptt   #  MYSQL_RES * mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
411 p p     #  MYSQL_RES * mysql_list_processes(MYSQL *mysql)
412 p p     #  MYSQL_RES * mysql_store_result(MYSQL *mysql)
413 p p     #  MYSQL_RES * mysql_use_result(MYSQL *mysql)
414 i pit   #  int mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)
415 v p     #  void mysql_free_result(MYSQL_RES *result)
416 v pl    #  void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset)
417 p pp    #  MYSQL_ROW_OFFSET mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET offset)
418 i pi    #  MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)
419 p p     #  MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
420 l p     #  unsigned long * mysql_fetch_lengths(MYSQL_RES *result)
421 p p     #  MYSQL_FIELD * mysql_fetch_field(MYSQL_RES *result)
422 l ttl   #  unsigned long mysql_escape_string(char *to,const char *from, unsigned long from_length)
423 l pttl  #  unsigned long mysql_real_escape_string(MYSQL *mysql, char *to,const char *from, unsigned long length)
424 v t     #  void mysql_debug(const char *debug)
425 # --- end mysqlclient library ---
427 i       # void function returning int like fork()
428 i i3i   # POSIX's waitpid
429 i ibi   # POSIX's read
431 # win32
432 l lttl
434 i pip
435 i piS
436 S i