2 *------------------------------------------------------------------
3 * svmdb.h - shared VM database
5 * Copyright (c) 2009 Cisco and/or its affiliates.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at:
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *------------------------------------------------------------------
20 #ifndef __included_svmdb_h__
21 #define __included_svmdb_h__
27 SVMDB_ACTION_ILLEGAL = 0,
28 SVMDB_ACTION_GET, /* not clear why anyone would care */
44 svmdb_notify_t *notifications;
50 SVMDB_NAMESPACE_STRING = 0,
59 svmdb_value_t *values;
60 uword *namespaces[SVMDB_N_NAMESPACES];
63 #define SVMDB_SHM_VERSION 2
76 svmdb_namespace_t nspace;
82 } svmdb_notification_args_t;
93 * Must be a reasonable number, several mb smaller than
94 * SVM_GLOBAL_REGION_SIZE, or no donut for you...
96 #define SVMDB_DEFAULT_SIZE (4<<20)
98 svmdb_client_t *svmdb_map (svmdb_map_args_t *);
100 void svmdb_unmap (svmdb_client_t * client);
101 void svmdb_local_unset_string_variable (svmdb_client_t * client, char *var);
102 void svmdb_local_set_string_variable (svmdb_client_t * client,
103 char *var, char *val);
104 char *svmdb_local_get_string_variable (svmdb_client_t * client, char *var);
105 void *svmdb_local_get_variable_reference (svmdb_client_t * client,
106 svmdb_namespace_t ns, char *var);
108 void svmdb_local_dump_strings (svmdb_client_t * client);
110 void svmdb_local_unset_vec_variable (svmdb_client_t * client, char *var);
111 void svmdb_local_set_vec_variable (svmdb_client_t * client,
112 char *var, void *val, u32 elsize);
113 void *svmdb_local_get_vec_variable (svmdb_client_t * client, char *var,
115 void svmdb_local_dump_vecs (svmdb_client_t * client);
117 int svmdb_local_add_del_notification (svmdb_client_t * client,
118 svmdb_notification_args_t * args);
120 void *svmdb_local_find_or_add_vec_variable (svmdb_client_t * client,
121 char *var, u32 nbytes);
123 #endif /* __included_svmdb_h__ */
126 * fd.io coding-style-patch-verification: ON
129 * eval: (c-set-style "gnu")