From a6aa1447fafc2ae246b7ada9d252dd2cecca28dc Mon Sep 17 00:00:00 2001 From: Github Action Date: Mon, 27 Nov 2023 22:59:29 +0000 Subject: [PATCH] Updated documentation Signed-off-by: Github Action --- ebpf__extension_8h.html | 72 ++++++++++++++ ebpf__extension_8h_source.html | 176 ++++++++++++++++----------------- 2 files changed, 160 insertions(+), 88 deletions(-) diff --git a/ebpf__extension_8h.html b/ebpf__extension_8h.html index 7007f0ef9e..5dae8be35e 100644 --- a/ebpf__extension_8h.html +++ b/ebpf__extension_8h.html @@ -110,12 +110,16 @@ typedef struct _ebpf_extension_dispatch_table ebpf_extension_dispatch_table_t   typedef ebpf_result_t(* ebpf_program_invoke_function_t) (const void *extension_client_binding_context, _Inout_ void *program_context, uint32_t *result) + Invoke the eBPF program. More...
  typedef ebpf_result_t(* ebpf_program_batch_begin_invoke_function_t) (const void *extension_client_binding_context, size_t state_size, _Out_writes_(state_size) void *state) + Prepare the eBPF program for batch invocation. More...
  typedef ebpf_result_t(* ebpf_program_batch_invoke_function_t) (const void *extension_client_binding_context, _Inout_ void *program_context, uint32_t *result, const void *state) + Invoke the eBPF program in batch mode. More...
  typedef ebpf_result_t(* ebpf_program_batch_end_invoke_function_t) (const void *extension_client_binding_context, _Inout_ void *state) + Clean up the eBPF program after batch invocation. More...
  typedef struct _ebpf_extension_program_dispatch_table ebpf_extension_program_dispatch_table_t   @@ -280,6 +284,24 @@

+

Prepare the eBPF program for batch invocation.

+
Parameters
+ + + + +
[in]extension_client_binding_contextThe context provided by the extension client when the binding was created.
[in]state_sizeThe size of the state to be allocated, which should be greater than or equal to sizeof(ebpf_execution_context_state_t).
[out]stateThe state to be used for batch invocation.
+
+
+
Return values
+ + + + +
EBPF_SUCCESSThe operation was successful.
EBPF_NO_MEMORYThe operation failed due to lack of memory.
EBPF_EXTENSION_FAILED_TO_LOADThe required extension is not loaded.
+
+
+
@@ -294,6 +316,21 @@

+

Clean up the eBPF program after batch invocation.

+
Parameters
+ + + +
[in]extension_client_binding_contextThe context provided by the extension client when the binding was created.
[in,out]stateThe state to be used for batch invocation.
+
+
+
Return values
+ + +
EBPF_SUCCESSThe operation was successful.
+
+
+
@@ -308,6 +345,23 @@

+

Invoke the eBPF program in batch mode.

+
Parameters
+ + + + + +
[in]extension_client_binding_contextThe context provided by the extension client when the binding was created.
[in,out]program_contextThe context for this invocation of the eBPF program.
[out]resultThe result of the eBPF program.
[in]stateThe state to be used for batch invocation.
+
+
+
Return values
+ + +
EBPF_SUCCESSThe operation was successful.
+
+
+
@@ -322,6 +376,24 @@

+

Invoke the eBPF program.

+
Parameters
+ + + + +
[in]extension_client_binding_contextThe context provided by the extension client when the binding was created.
[in,out]program_contextThe context for this invocation of the eBPF program.
[out]resultThe result of the eBPF program.
+
+
+
Return values
+ + + + +
EBPF_SUCCESSThe operation was successful.
EBPF_NO_MEMORYThe operation failed due to lack of memory.
EBPF_EXTENSION_FAILED_TO_LOADThe required extension is not loaded.
+
+
+ diff --git a/ebpf__extension_8h_source.html b/ebpf__extension_8h_source.html index 07a2233f40..84de847c37 100644 --- a/ebpf__extension_8h_source.html +++ b/ebpf__extension_8h_source.html @@ -86,80 +86,80 @@
17 
- -
19  _In_ const void* extension_client_binding_context, _Inout_ void* program_context, _Out_ uint32_t* result);
-
20 
- -
22  _In_ const void* extension_client_binding_context, size_t state_size, _Out_writes_(state_size) void* state);
-
23 
- -
25  _In_ const void* extension_client_binding_context,
-
26  _Inout_ void* program_context,
-
27  _Out_ uint32_t* result,
-
28  _In_ const void* state);
-
29 
- -
31  _In_ const void* extension_client_binding_context, _Inout_ void* state);
+ +
31  _In_ const void* extension_client_binding_context, _Inout_ void* program_context, _Out_ uint32_t* result);
32 
- -
34 {
-
35  uint16_t version;
-
36  uint16_t count;
- - - - - -
42 
-
43 typedef struct _ebpf_extension_data
-
44 {
-
45  uint16_t version;
-
46  size_t size;
-
47  const void* data;
- -
49 
- -
51 {
- - - - -
56 
-
57 /***
-
58  * The state of the execution context when the eBPF program was invoked.
-
59  * This is used to cache state that won't change during the execution of
-
60  * the eBPF program and is expensive to query.
-
61  */
- -
63 {
-
64  uint64_t epoch_state[4];
-
65  union
-
66  {
-
67  uint64_t thread;
-
68  uint32_t cpu;
-
69  } id;
-
70  uint8_t current_irql;
-
71  struct
-
72  {
-
73  const void* next_program;
-
74  uint32_t count;
- - + +
47  _In_ const void* extension_client_binding_context, size_t state_size, _Out_writes_(state_size) void* state);
+
48 
+ +
61  _In_ const void* extension_client_binding_context,
+
62  _Inout_ void* program_context,
+
63  _Out_ uint32_t* result,
+
64  _In_ const void* state);
+
65 
+ +
76  _In_ const void* extension_client_binding_context, _Inout_ void* state);
77 
-
78 #define EBPF_ATTACH_CLIENT_DATA_VERSION 0
-
79 #define EBPF_ATTACH_PROVIDER_DATA_VERSION 1
-
80 #define EBPF_PROGRAM_INFORMATION_PROVIDER_DATA_VERSION 0
-
81 #define EBPF_MAX_GENERAL_HELPER_FUNCTION 0xFFFF
+ +
79 {
+
80  uint16_t version;
+
81  uint16_t count;
+ + + + + +
87 
+
88 typedef struct _ebpf_extension_data
+
89 {
+
90  uint16_t version;
+
91  size_t size;
+
92  const void* data;
+ +
94 
+ +
96 {
+ + + + +
101 
+
102 /***
+
103  * The state of the execution context when the eBPF program was invoked.
+
104  * This is used to cache state that won't change during the execution of
+
105  * the eBPF program and is expensive to query.
+
106  */
+ +
108 {
+
109  uint64_t epoch_state[4];
+
110  union
+
111  {
+
112  uint64_t thread;
+
113  uint32_t cpu;
+
114  } id;
+
115  uint8_t current_irql;
+
116  struct
+
117  {
+
118  const void* next_program;
+
119  uint32_t count;
+ + +
122 
+
123 #define EBPF_ATTACH_CLIENT_DATA_VERSION 0
+
124 #define EBPF_ATTACH_PROVIDER_DATA_VERSION 1
+
125 #define EBPF_PROGRAM_INFORMATION_PROVIDER_DATA_VERSION 0
+
126 #define EBPF_MAX_GENERAL_HELPER_FUNCTION 0xFFFF
struct _ebpf_attach_provider_data ebpf_attach_provider_data_t
struct _ebpf_extension_dispatch_table ebpf_extension_dispatch_table_t
struct _ebpf_extension_data ebpf_extension_data_t
struct _ebpf_extension_program_dispatch_table ebpf_extension_program_dispatch_table_t
ebpf_result_t(* _ebpf_extension_dispatch_function)()
Definition: ebpf_extension.h:9
-
ebpf_result_t(* ebpf_program_batch_begin_invoke_function_t)(const void *extension_client_binding_context, size_t state_size, _Out_writes_(state_size) void *state)
Definition: ebpf_extension.h:21
-
ebpf_result_t(* ebpf_program_batch_invoke_function_t)(const void *extension_client_binding_context, _Inout_ void *program_context, uint32_t *result, const void *state)
Definition: ebpf_extension.h:24
+
ebpf_result_t(* ebpf_program_batch_begin_invoke_function_t)(const void *extension_client_binding_context, size_t state_size, _Out_writes_(state_size) void *state)
Prepare the eBPF program for batch invocation.
Definition: ebpf_extension.h:46
+
ebpf_result_t(* ebpf_program_batch_invoke_function_t)(const void *extension_client_binding_context, _Inout_ void *program_context, uint32_t *result, const void *state)
Invoke the eBPF program in batch mode.
Definition: ebpf_extension.h:60
struct _ebpf_execution_context_state ebpf_execution_context_state_t
-
ebpf_result_t(* ebpf_program_batch_end_invoke_function_t)(const void *extension_client_binding_context, _Inout_ void *state)
Definition: ebpf_extension.h:30
-
ebpf_result_t(* ebpf_program_invoke_function_t)(const void *extension_client_binding_context, _Inout_ void *program_context, uint32_t *result)
Definition: ebpf_extension.h:18
+
ebpf_result_t(* ebpf_program_batch_end_invoke_function_t)(const void *extension_client_binding_context, _Inout_ void *state)
Clean up the eBPF program after batch invocation.
Definition: ebpf_extension.h:75
+
ebpf_result_t(* ebpf_program_invoke_function_t)(const void *extension_client_binding_context, _Inout_ void *program_context, uint32_t *result)
Invoke the eBPF program.
Definition: ebpf_extension.h:30
enum ebpf_result ebpf_result_t
This file contains eBPF definitions common to eBPF programs, core execution engine as well as eBPF AP...
@@ -167,34 +167,34 @@
enum bpf_attach_type bpf_attach_type_t
Definition: ebpf_structs.h:310
GUID ebpf_program_type_t
Definition: ebpf_windows.h:43
-
Definition: ebpf_extension.h:51
-
ebpf_program_type_t supported_program_type
Definition: ebpf_extension.h:52
-
bpf_attach_type_t bpf_attach_type
Definition: ebpf_extension.h:53
-
enum bpf_link_type link_type
Definition: ebpf_extension.h:54
-
Definition: ebpf_extension.h:63
+
Definition: ebpf_extension.h:96
+
ebpf_program_type_t supported_program_type
Definition: ebpf_extension.h:97
+
bpf_attach_type_t bpf_attach_type
Definition: ebpf_extension.h:98
+
enum bpf_link_type link_type
Definition: ebpf_extension.h:99
+
Definition: ebpf_extension.h:108
union _ebpf_execution_context_state::@6 id
struct _ebpf_execution_context_state::@7 tail_call_state
-
uint8_t current_irql
Definition: ebpf_extension.h:70
-
uint32_t count
Definition: ebpf_extension.h:74
-
uint64_t epoch_state[4]
Definition: ebpf_extension.h:64
-
uint64_t thread
Definition: ebpf_extension.h:67
-
const void * next_program
Definition: ebpf_extension.h:73
-
uint32_t cpu
Definition: ebpf_extension.h:68
-
Definition: ebpf_extension.h:44
-
uint16_t version
Definition: ebpf_extension.h:45
-
size_t size
Definition: ebpf_extension.h:46
-
const void * data
Definition: ebpf_extension.h:47
+
uint8_t current_irql
Definition: ebpf_extension.h:115
+
uint32_t count
Definition: ebpf_extension.h:119
+
uint64_t epoch_state[4]
Definition: ebpf_extension.h:109
+
uint64_t thread
Definition: ebpf_extension.h:112
+
const void * next_program
Definition: ebpf_extension.h:118
+
uint32_t cpu
Definition: ebpf_extension.h:113
+
Definition: ebpf_extension.h:89
+
uint16_t version
Definition: ebpf_extension.h:90
+
size_t size
Definition: ebpf_extension.h:91
+
const void * data
Definition: ebpf_extension.h:92
Definition: ebpf_extension.h:12
uint16_t version
Version of the dispatch table.
Definition: ebpf_extension.h:13
uint16_t count
Number of entries in the dispatch table.
Definition: ebpf_extension.h:14
_Field_size_(count) _ebpf_extension_dispatch_function function[1]
-
Definition: ebpf_extension.h:34
-
ebpf_program_invoke_function_t ebpf_program_invoke_function
Definition: ebpf_extension.h:37
-
ebpf_program_batch_begin_invoke_function_t ebpf_program_batch_begin_invoke_function
Definition: ebpf_extension.h:38
-
ebpf_program_batch_end_invoke_function_t ebpf_program_batch_end_invoke_function
Definition: ebpf_extension.h:40
-
uint16_t version
Version of the dispatch table.
Definition: ebpf_extension.h:35
-
ebpf_program_batch_invoke_function_t ebpf_program_batch_invoke_function
Definition: ebpf_extension.h:39
-
uint16_t count
Number of entries in the dispatch table.
Definition: ebpf_extension.h:36
+
Definition: ebpf_extension.h:79
+
ebpf_program_invoke_function_t ebpf_program_invoke_function
Definition: ebpf_extension.h:82
+
ebpf_program_batch_begin_invoke_function_t ebpf_program_batch_begin_invoke_function
Definition: ebpf_extension.h:83
+
ebpf_program_batch_end_invoke_function_t ebpf_program_batch_end_invoke_function
Definition: ebpf_extension.h:85
+
uint16_t version
Version of the dispatch table.
Definition: ebpf_extension.h:80
+
ebpf_program_batch_invoke_function_t ebpf_program_batch_invoke_function
Definition: ebpf_extension.h:84
+
uint16_t count
Number of entries in the dispatch table.
Definition: ebpf_extension.h:81