OpenVAS Scanner 23.23.1
nasl_var.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Greenbone AG
2 * SPDX-FileCopyrightText: 2002-2003 Michel Arboi
3 * SPDX-FileCopyrightText: 2002-2003 Renaud Deraison
4 *
5 * SPDX-License-Identifier: GPL-2.0-only
6 */
7
8#ifndef NASL_NASL_VAR_H
9#define NASL_NASL_VAR_H
10
11#include "nasl_tree.h"
12
13enum
14{
20};
21
22#define VAR_NAME_HASH 17
23
24typedef struct st_nasl_string
25{
26 unsigned char *s_val;
27 int s_siz;
29
30struct st_a_nasl_var;
31
32typedef struct st_nasl_array
33{
34 int max_idx; /* max index - 1! */
35 struct st_a_nasl_var **num_elt; /* max_idx elements */
36 struct st_n_nasl_var **hash_elt; /* VAR_NAME_HASH elements */
38
39typedef struct st_a_nasl_var
40{
42#ifdef ALL_VARIABLES_NAMED
43 char *av_name;
44#endif
45 union
46 {
47 nasl_string_t v_str; /* character string / data */
48 long int v_int; /* integer */
49 nasl_array v_arr; /* array */
50 } v;
53
54typedef struct st_n_nasl_var
55{
57#ifndef ALL_VARIABLES_NAMED
58 char *var_name;
59#else
60#define var_name u.av_name
61#endif
62 struct st_n_nasl_var *next_var; /* next variable with same name hash */
64
65typedef struct
66{
67 nasl_array *a; /* array */
68 int i1; /* index of numbered elements */
69 int iH; /* index of hash */
70 named_nasl_var *v; /* current variable in hash */
72
75
76void
78
79const char *
81
83nasl_get_var_by_num (void *, nasl_array *, int, int);
84
87
90
91int
93
94int
95add_var_to_array (nasl_array *, char *, const anon_nasl_var *);
96
97int
99
100void
102
103tree_cell *
104copy_ref_array (const tree_cell *);
105
106int
107hash_str2 (const char *, int);
108
109tree_cell *
111
112tree_cell *
114
115char *
116array2str (const nasl_array *);
117
118#endif
struct TC tree_cell
struct st_a_nasl_var anon_nasl_var
int add_var_to_array(nasl_array *, char *, const anon_nasl_var *)
Definition nasl_var.c:1277
struct st_nasl_array nasl_array
tree_cell * nasl_iterate_array(nasl_iterator *)
Definition nasl_var.c:1205
tree_cell * make_array_from_elems(tree_cell *)
Definition nasl_var.c:1323
int array_max_index(nasl_array *)
Definition nasl_var.c:1302
void free_array(nasl_array *)
Definition nasl_var.c:339
tree_cell * copy_ref_array(const tree_cell *)
Definition nasl_var.c:534
char * array2str(const nasl_array *)
Definition nasl_var.c:990
struct st_nasl_string nasl_string_t
tree_cell * var2cell(anon_nasl_var *)
Definition nasl_var.c:168
void clear_unnamed_var(anon_nasl_var *)
tree_cell * nasl_affect(tree_cell *, tree_cell *)
Definition nasl_var.c:697
int add_var_to_list(nasl_array *, int, const anon_nasl_var *)
Definition nasl_var.c:1245
anon_nasl_var * nasl_get_var_by_num(void *, nasl_array *, int, int)
Definition nasl_var.c:43
nasl_iterator nasl_array_iterator(void *, tree_cell *)
Definition nasl_var.c:1169
int hash_str2(const char *, int)
Definition nasl_var.c:23
const char * var2str(anon_nasl_var *)
Definition nasl_var.c:1062
@ VAR2_STRING
Definition nasl_var.h:17
@ VAR2_DATA
Definition nasl_var.h:18
@ VAR2_ARRAY
Definition nasl_var.h:19
@ VAR2_INT
Definition nasl_var.h:16
@ VAR2_UNDEF
Definition nasl_var.h:15
struct st_n_nasl_var named_nasl_var
Definition nasl_var.h:66
named_nasl_var * v
Definition nasl_var.h:70
nasl_array * a
Definition nasl_var.h:67
int iH
Definition nasl_var.h:69
int i1
Definition nasl_var.h:68
Definition nasl_var.h:40
nasl_string_t v_str
Definition nasl_var.h:47
char * string_form
Definition nasl_var.h:51
nasl_array v_arr
Definition nasl_var.h:49
int var_type
Definition nasl_var.h:41
union st_a_nasl_var::@154137074032032170165360023270032033276061363156 v
long int v_int
Definition nasl_var.h:48
Definition nasl_var.h:55
char * var_name
Definition nasl_var.h:58
struct st_n_nasl_var * next_var
Definition nasl_var.h:62
struct st_a_nasl_var u
Definition nasl_var.h:56
Definition nasl_var.h:33
struct st_n_nasl_var ** hash_elt
Definition nasl_var.h:36
struct st_a_nasl_var ** num_elt
Definition nasl_var.h:35
int max_idx
Definition nasl_var.h:34
Definition nasl_var.h:25
unsigned char * s_val
Definition nasl_var.h:26
int s_siz
Definition nasl_var.h:27