2 * Copyright (c) 2018 The strace developers.
5 * SPDX-License-Identifier: LGPL-2.1-or-later
11 static kernel_long_t *retval_vec;
12 static size_t retval_vec_capacity; /* size of the arena */
13 static size_t retval_vec_size; /* size of the used arena */
16 expand_retval_vec(void)
18 const size_t old_capacity = retval_vec_capacity;
19 retval_vec = xgrowarray(retval_vec, &retval_vec_capacity,
21 memset(retval_vec + old_capacity, 0,
22 (retval_vec_capacity - old_capacity)
23 * sizeof(*retval_vec));
27 retval_new(const kernel_long_t rval)
29 const uint16_t idx = retval_vec_size;
31 if (idx < retval_vec_size)
32 error_func_msg_and_die("retval index overflow");
34 if (retval_vec_size == retval_vec_capacity)
37 retval_vec[idx] = rval;
44 retval_get(const uint16_t rval_idx)
46 if (rval_idx >= retval_vec_size)
47 error_func_msg_and_die("rval_idx >= retval_vec_size");
49 return retval_vec[rval_idx];