blob: afa68b088c73e6faaa1b83c9e40a215642329f75 [file] [log] [blame]
Julian Hall1d313022021-05-07 14:27:55 +01001/*
2 * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <stdlib.h>
8#include "claim_vector.h"
9
10void claim_vector_init(struct claim_vector *v, size_t limit)
11{
12 v->claims = malloc(sizeof(struct claim) * limit);
13 v->limit = (v->claims) ? limit : 0;
14 v->size = 0;
15}
16
17void claim_vector_deinit(struct claim_vector *v)
18{
19 free(v->claims);
20 v->claims = NULL;
21 v->limit = 0;
22 v->size = 0;
23}
24
25void claim_vector_push_back(struct claim_vector *v, const struct claim *claim)
26{
27 if (v->size < v->limit) {
28
29 v->claims[v->size] = *claim;
30 ++v->size;
31 }
32}
33
34size_t claim_vector_size(const struct claim_vector *v)
35{
36 return v->size;
37}
38
39const struct claim *claim_vector_get_claim(const struct claim_vector *v, size_t index)
40{
41 const struct claim *claim = NULL;
42 if (index < v->size) claim = &v->claims[index];
43 return claim;
44}