2 * Copyright (C) 2004, The Perl Foundation.
6 * Contains accessor functions for the _parrotlib bytecode interface
7 * Data Structure and Algorithms:
13 #ifndef PARROT_LIBRARY_H_GUARD
14 #define PARROT_LIBRARY_H_GUARD
17 PARROT_RUNTIME_FT_LIBRARY
= 0x0001,
18 PARROT_RUNTIME_FT_INCLUDE
= 0x0002,
19 PARROT_RUNTIME_FT_DYNEXT
= 0x0004,
20 PARROT_RUNTIME_FT_PBC
= 0x0010,
21 PARROT_RUNTIME_FT_PASM
= 0x0100,
22 PARROT_RUNTIME_FT_PIR
= 0x0200,
23 PARROT_RUNTIME_FT_PAST
= 0x0400,
24 PARROT_RUNTIME_FT_SOURCE
= 0x0F00
28 PARROT_LIB_PATH_INCLUDE
, /* .include "foo" */
29 PARROT_LIB_PATH_LIBRARY
, /* load_bytecode "bar" */
30 PARROT_LIB_PATH_DYNEXT
, /* loadlib "baz" */
31 PARROT_LIB_DYN_EXTS
, /* ".so", ".dylib" .. */
36 /* HEADERIZER BEGIN: src/library.c */
37 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
40 void Parrot_add_library_path(PARROT_INTERP
,
41 ARGIN(const char *path
),
43 __attribute__nonnull__(1)
44 __attribute__nonnull__(2);
48 PARROT_CANNOT_RETURN_NULL
49 char* Parrot_get_runtime_prefix(PARROT_INTERP
)
50 __attribute__nonnull__(1);
53 PARROT_WARN_UNUSED_RESULT
54 PARROT_CAN_RETURN_NULL
56 char* Parrot_locate_runtime_file(PARROT_INTERP
,
57 ARGIN(const char *file_name
),
59 __attribute__nonnull__(1)
60 __attribute__nonnull__(2);
63 PARROT_WARN_UNUSED_RESULT
64 PARROT_CAN_RETURN_NULL
65 STRING
* Parrot_locate_runtime_file_str(PARROT_INTERP
,
68 __attribute__nonnull__(1)
69 __attribute__nonnull__(2)
72 void parrot_init_library_paths(PARROT_INTERP
)
73 __attribute__nonnull__(1);
75 PARROT_IGNORABLE_RESULT
76 PARROT_CANNOT_RETURN_NULL
77 STRING
* parrot_split_path_ext(PARROT_INTERP
,
79 ARGOUT(STRING
**wo_ext
),
81 __attribute__nonnull__(1)
82 __attribute__nonnull__(2)
83 __attribute__nonnull__(3)
84 __attribute__nonnull__(4)
86 FUNC_MODIFIES(*wo_ext
)
89 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
90 /* HEADERIZER END: src/library.c */
92 #endif /* PARROT_LIBRARY_H_GUARD */
96 * c-file-style: "parrot"
98 * vim: expandtab shiftwidth=4: