FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
stat_segment_shared.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Cisco and/or its affiliates.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
#ifndef included_stat_segment_shared_h
17
#define included_stat_segment_shared_h
18
19
typedef
enum
20
{
21
STAT_DIR_TYPE_ILLEGAL
= 0,
22
STAT_DIR_TYPE_SCALAR_INDEX
,
23
STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE
,
24
STAT_DIR_TYPE_COUNTER_VECTOR_COMBINED
,
25
STAT_DIR_TYPE_ERROR_INDEX
,
26
STAT_DIR_TYPE_NAME_VECTOR
,
27
STAT_DIR_TYPE_EMPTY
,
28
}
stat_directory_type_t
;
29
30
typedef
struct
31
{
32
stat_directory_type_t
type
;
33
union
{
34
uint64_t
index
;
35
uint64_t
value
;
36
void
*
data
;
37
};
38
char
name
[128];
// TODO change this to pointer to "somewhere"
39
}
stat_segment_directory_entry_t
;
40
41
/*
42
* Shared header first in the shared memory segment.
43
*/
44
typedef
struct
45
{
46
uint64_t
version
;
47
void
*
base
;
48
volatile
uint64_t
epoch
;
49
volatile
uint64_t
in_progress
;
50
volatile
stat_segment_directory_entry_t
*
directory_vector
;
51
volatile
uint64_t **
error_vector
;
52
}
stat_segment_shared_header_t
;
53
54
static
inline
void
*
55
stat_segment_pointer
(
void
*start, uint64_t
offset
)
56
{
57
return
((
char
*) start + offset);
58
}
59
60
#endif
/* included_stat_segment_shared_h */
stat_segment_shared_header_t::in_progress
volatile uint64_t in_progress
Definition:
stat_segment_shared.h:49
stat_segment_directory_entry_t
Definition:
stat_segment_shared.h:30
stat_segment_directory_entry_t::index
uint64_t index
Definition:
stat_segment_shared.h:34
STAT_DIR_TYPE_COUNTER_VECTOR_COMBINED
Definition:
stat_segment_shared.h:24
STAT_DIR_TYPE_NAME_VECTOR
Definition:
stat_segment_shared.h:26
STAT_DIR_TYPE_ERROR_INDEX
Definition:
stat_segment_shared.h:25
stat_segment_directory_entry_t::data
void * data
Definition:
stat_segment_shared.h:36
stat_segment_directory_entry_t::value
uint64_t value
Definition:
stat_segment_shared.h:35
stat_segment_pointer
static void * stat_segment_pointer(void *start, uint64_t offset)
Definition:
stat_segment_shared.h:55
STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE
Definition:
stat_segment_shared.h:23
stat_segment_shared_header_t::epoch
volatile uint64_t epoch
Definition:
stat_segment_shared.h:48
stat_directory_type_t
stat_directory_type_t
Definition:
stat_segment_shared.h:19
STAT_DIR_TYPE_ILLEGAL
Definition:
stat_segment_shared.h:21
stat_segment_shared_header_t::version
uint64_t version
Definition:
stat_segment_shared.h:46
stat_segment_shared_header_t::base
void * base
Definition:
stat_segment_shared.h:47
stat_segment_shared_header_t::error_vector
volatile uint64_t ** error_vector
Definition:
stat_segment_shared.h:51
STAT_DIR_TYPE_EMPTY
Definition:
stat_segment_shared.h:27
name
string name[64]
Definition:
ip.api:44
stat_segment_shared_header_t::directory_vector
volatile stat_segment_directory_entry_t * directory_vector
Definition:
stat_segment_shared.h:50
clib_bihash_value
template key/value backing page structure
Definition:
bihash_doc.h:44
stat_segment_shared_header_t
Definition:
stat_segment_shared.h:44
STAT_DIR_TYPE_SCALAR_INDEX
Definition:
stat_segment_shared.h:22
stat_segment_directory_entry_t::type
stat_directory_type_t type
Definition:
stat_segment_shared.h:32
src
vpp
stats
stat_segment_shared.h
Generated on Thu Jun 3 2021 16:06:49 for FD.io VPP by
1.8.13