blob: bfa055b8f98382e16b1ebf93c8eb3d09e3e74319 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001/*
2 * This header exports fixer procedures that are common enough to be used
3 * in other modules.
4 */
Lev Walkinc6cac8e2016-03-14 02:57:07 -07005#ifndef ASN1FIX_EXPORT_H
6#define ASN1FIX_EXPORT_H
Lev Walkinf15320b2004-06-03 03:38:44 +00007
Lev Walkin4efbfb72005-02-25 14:20:30 +00008#include "asn1fix_tags.h"
Lev Walkinf15320b2004-06-03 03:38:44 +00009
Lev Walkinc0e03b92017-08-22 01:48:23 -070010struct asn1_namespace_s; /* Forward declaration. */
11
12void asn1f_use_standard_namespaces(asn1p_t *asn);
13
14/*
15 * Lookup the module by its oid. oid is mandatory.
16 */
17asn1p_module_t *asn1f_lookup_module_ex(asn1p_t *asn, const char *module_name,
18 const asn1p_oid_t *oid);
19
Lev Walkinf15320b2004-06-03 03:38:44 +000020/*
Lev Walkinb45e0672004-08-18 05:42:05 +000021 * Create a human-readable representation of a reference and value.
22 */
Lev Walkinea6635b2017-08-06 23:23:04 -070023char const *asn1f_printable_reference(const asn1p_ref_t *ref);
Lev Walkinb45e0672004-08-18 05:42:05 +000024char const *asn1f_printable_value(asn1p_value_t *value);
25
26/*
Lev Walkinf15320b2004-06-03 03:38:44 +000027 * Exportable version of an asn1f_lookup_symbol().
28 */
29asn1p_expr_t *asn1f_lookup_symbol_ex(
30 asn1p_t *asn,
Lev Walkinc0e03b92017-08-22 01:48:23 -070031 struct asn1_namespace_s *ns,
Lev Walkinf15320b2004-06-03 03:38:44 +000032 asn1p_expr_t *expr,
Lev Walkinea6635b2017-08-06 23:23:04 -070033 const asn1p_ref_t *ref);
Lev Walkinf15320b2004-06-03 03:38:44 +000034
35/*
36 * Exportable version of an asn1f_class_access().
37 */
38asn1p_expr_t *asn1f_class_access_ex(asn1p_t *asn, asn1p_module_t *mod,
Lev Walkinc0e03b92017-08-22 01:48:23 -070039 struct asn1_namespace_s *ns,
40 asn1p_expr_t *expr,
41 asn1p_expr_t *rhs_rspecs,
42 const asn1p_ref_t *);
Lev Walkinf15320b2004-06-03 03:38:44 +000043
44/*
45 * Exportable version of asn1f_find_terminal_type().
46 */
Lev Walkinc0e03b92017-08-22 01:48:23 -070047asn1p_expr_t *asn1f_find_terminal_type_ex(asn1p_t *asn,
48 struct asn1_namespace_s *ns,
49 asn1p_expr_t *tc);
Lev Walkinf15320b2004-06-03 03:38:44 +000050
Lev Walkinb45e0672004-08-18 05:42:05 +000051/*
52 * Exportable version of asn1f_fix_dereference_values();
53 */
54int asn1f_fix_dereference_values_ex(asn1p_t *asn, asn1p_module_t *mod,
55 asn1p_expr_t *expr);
Lev Walkinf15320b2004-06-03 03:38:44 +000056
Bi-Ruei, Chiu1fa31c92016-05-16 13:50:09 +080057/*
58 * Exportable version of asn1f_find_ancestor_type_with_PER_constraint().
59 */
60asn1p_expr_t *asn1f_find_ancestor_type_with_PER_constraint_ex(asn1p_t *asn,
61 asn1p_expr_t *expr);
62
Lev Walkinc6cac8e2016-03-14 02:57:07 -070063#endif /* ASN1FIX_EXPORT_H */