1 /*
2  * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include "null_store.h"
8 #include <protocols/service/psa/packed-c/status.h>
9 #include <stddef.h>
10 
null_store_set(void * context,uint32_t client_id,uint64_t uid,size_t data_length,const void * p_data,uint32_t create_flags)11 static psa_status_t null_store_set(void *context,
12                             uint32_t client_id,
13                             uint64_t uid,
14                             size_t data_length,
15                             const void *p_data,
16                             uint32_t create_flags)
17 {
18     (void)context;
19     (void)client_id;
20     (void)uid;
21     (void)data_length;
22     (void)p_data;
23     (void)create_flags;
24 
25     return PSA_ERROR_STORAGE_FAILURE;
26 }
27 
null_store_get(void * context,uint32_t client_id,uint64_t uid,size_t data_offset,size_t data_size,void * p_data,size_t * p_data_length)28 static psa_status_t null_store_get(void *context,
29                             uint32_t client_id,
30                             uint64_t uid,
31                             size_t data_offset,
32                             size_t data_size,
33                             void *p_data,
34                             size_t *p_data_length)
35 {
36     (void)context;
37     (void)client_id;
38     (void)uid;
39     (void)data_offset;
40     (void)data_size;
41     (void)p_data;
42     (void)p_data_length;
43 
44     return PSA_ERROR_STORAGE_FAILURE;
45 }
46 
null_store_get_info(void * context,uint32_t client_id,uint64_t uid,struct psa_storage_info_t * p_info)47 static psa_status_t null_store_get_info(void *context,
48                             uint32_t client_id,
49                             uint64_t uid,
50                             struct psa_storage_info_t *p_info)
51 {
52     (void)context;
53     (void)client_id;
54     (void)uid;
55     (void)p_info;
56 
57     return PSA_ERROR_STORAGE_FAILURE;
58 }
59 
null_store_remove(void * context,uint32_t client_id,uint64_t uid)60 static psa_status_t null_store_remove(void *context,
61                                 uint32_t client_id,
62                                 uint64_t uid)
63 {
64     (void)context;
65     (void)client_id;
66     (void)uid;
67 
68     return PSA_ERROR_STORAGE_FAILURE;
69 }
70 
null_store_create(void * context,uint32_t client_id,uint64_t uid,size_t capacity,uint32_t create_flags)71 static psa_status_t null_store_create(void *context,
72                             uint32_t client_id,
73                             uint64_t uid,
74                             size_t capacity,
75                             uint32_t create_flags)
76 {
77     (void)context;
78     (void)client_id;
79     (void)uid;
80     (void)capacity;
81     (void)create_flags;
82 
83     return PSA_ERROR_STORAGE_FAILURE;
84 }
85 
null_store_set_extended(void * context,uint32_t client_id,uint64_t uid,size_t data_offset,size_t data_length,const void * p_data)86 static psa_status_t null_store_set_extended(void *context,
87                             uint32_t client_id,
88                             uint64_t uid,
89                             size_t data_offset,
90                             size_t data_length,
91                             const void *p_data)
92 {
93     (void)context;
94     (void)client_id;
95     (void)uid;
96     (void)data_offset;
97     (void)data_length;
98     (void)p_data;
99 
100     return PSA_ERROR_STORAGE_FAILURE;
101 }
102 
null_store_get_support(void * context,uint32_t client_id)103 static uint32_t null_store_get_support(void *context,
104                             uint32_t client_id)
105 {
106     (void)context;
107     (void)client_id;
108 
109     return 0;
110 }
111 
112 
null_store_init(struct null_store * context)113 struct storage_backend *null_store_init(struct null_store *context)
114 {
115     static const struct storage_backend_interface interface =
116     {
117         null_store_set,
118         null_store_get,
119         null_store_get_info,
120         null_store_remove,
121         null_store_create,
122         null_store_set_extended,
123         null_store_get_support
124     };
125 
126     context->backend.context = context;
127     context->backend.interface = &interface;
128 
129     return &context->backend;
130 }
131 
null_store_deinit(struct null_store * context)132 void null_store_deinit(struct null_store *context)
133 {
134     context->backend.context = NULL;
135     context->backend.interface = NULL;
136 }
137