Skip to content

Commit 412fb97

Browse files
authored
Merge pull request #86 from Electrostat-Lab/linked-buffers
Linked buffers
2 parents 3cbe730 + 001016f commit 412fb97

File tree

34 files changed

+1805
-1148
lines changed

34 files changed

+1805
-1148
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="build-dll-service" type="ShConfigurationType">
3+
<option name="SCRIPT_TEXT" value="" />
4+
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5+
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;linux/hello_dll_service.c&quot; &quot;libhello_dll_service.c.so&quot;" />
7+
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8+
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9+
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
10+
<option name="INTERPRETER_PATH" value="/bin/bash" />
11+
<option name="INTERPRETER_OPTIONS" value="" />
12+
<option name="EXECUTE_IN_TERMINAL" value="true" />
13+
<option name="EXECUTE_SCRIPT_FILE" value="true" />
14+
<envs />
15+
<method v="2" />
16+
</configuration>
17+
</component>

.studio-run-configs/test hello_lists.run.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<option name="SCRIPT_TEXT" value="" />
44
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
55
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6-
<option name="SCRIPT_OPTIONS" value="&quot;hello_lists.c&quot;" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;hello_lists.c&quot; &quot;hello_lists&quot;" />
77
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
88
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
99
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />

.studio-run-configs/test hello_unittest.run.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<option name="SCRIPT_TEXT" value="" />
44
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
55
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6-
<option name="SCRIPT_OPTIONS" value="&quot;hello_unittest.c&quot;" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;hello_unittest.c&quot; &quot;hello_unittest&quot;" />
77
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
88
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
99
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="test-ansi-background" type="ShConfigurationType">
3+
<option name="SCRIPT_TEXT" value="" />
4+
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5+
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;linux/hello_ansi_background.c&quot; &quot;hello_ansi_background&quot;" />
7+
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8+
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9+
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
10+
<option name="INTERPRETER_PATH" value="/bin/bash" />
11+
<option name="INTERPRETER_OPTIONS" value="" />
12+
<option name="EXECUTE_IN_TERMINAL" value="true" />
13+
<option name="EXECUTE_SCRIPT_FILE" value="true" />
14+
<envs />
15+
<method v="2" />
16+
</configuration>
17+
</component>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="test-ansi-font" type="ShConfigurationType">
3+
<option name="SCRIPT_TEXT" value="" />
4+
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5+
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;linux/hello_ansi_font.c&quot; &quot;hello_ansi_font&quot;" />
7+
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8+
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9+
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
10+
<option name="INTERPRETER_PATH" value="/bin/bash" />
11+
<option name="INTERPRETER_OPTIONS" value="" />
12+
<option name="EXECUTE_IN_TERMINAL" value="true" />
13+
<option name="EXECUTE_SCRIPT_FILE" value="true" />
14+
<envs />
15+
<method v="2" />
16+
</configuration>
17+
</component>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="test-ansi-foreground" type="ShConfigurationType">
3+
<option name="SCRIPT_TEXT" value="" />
4+
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5+
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;linux/hello_ansi_foreground.c&quot; &quot;hello_ansi_foreground&quot;" />
7+
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8+
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9+
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
10+
<option name="INTERPRETER_PATH" value="/bin/bash" />
11+
<option name="INTERPRETER_OPTIONS" value="" />
12+
<option name="EXECUTE_IN_TERMINAL" value="true" />
13+
<option name="EXECUTE_SCRIPT_FILE" value="true" />
14+
<envs />
15+
<method v="2" />
16+
</configuration>
17+
</component>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="test-graph" type="ShConfigurationType">
3+
<option name="SCRIPT_TEXT" value="" />
4+
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5+
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;hello_graph.c&quot; &quot;hello-graph&quot;" />
7+
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8+
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9+
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
10+
<option name="INTERPRETER_PATH" value="/bin/bash" />
11+
<option name="INTERPRETER_OPTIONS" value="" />
12+
<option name="EXECUTE_IN_TERMINAL" value="true" />
13+
<option name="EXECUTE_SCRIPT_FILE" value="true" />
14+
<envs />
15+
<method v="2" />
16+
</configuration>
17+
</component>

.studio-run-configs/test-prim.run.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="test-prim" type="ShConfigurationType">
3+
<option name="SCRIPT_TEXT" value="" />
4+
<option name="INDEPENDENT_SCRIPT_PATH" value="true" />
5+
<option name="SCRIPT_PATH" value="$PROJECT_DIR$/helper-scripts/ci-cd/test-electrostatic.sh" />
6+
<option name="SCRIPT_OPTIONS" value="&quot;hello_prim.c&quot; &quot;hello-prim&quot;" />
7+
<option name="INDEPENDENT_SCRIPT_WORKING_DIRECTORY" value="true" />
8+
<option name="SCRIPT_WORKING_DIRECTORY" value="$PROJECT_DIR$" />
9+
<option name="INDEPENDENT_INTERPRETER_PATH" value="true" />
10+
<option name="INTERPRETER_PATH" value="/bin/bash" />
11+
<option name="INTERPRETER_OPTIONS" value="" />
12+
<option name="EXECUTE_IN_TERMINAL" value="true" />
13+
<option name="EXECUTE_SCRIPT_FILE" value="true" />
14+
<envs />
15+
<method v="2" />
16+
</configuration>
17+
</component>

electrostatic-sandbox-framework/electrostatic-core/src/include/electrostatic/electronetsoft/algorithm/arithmos/adt/list.h

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,24 @@
3333

3434
#include <stddef.h>
3535
#include <stdint.h>
36-
#ifdef __cplusplus
37-
extern "C" {
38-
#endif
39-
4036
#include <inttypes.h>
41-
#include <stdlib.h>
37+
#include <stddef.h>
4238
#include <electrostatic/electronetsoft/algorithm/arithmos/memory/patcher.h>
43-
#include <electrostatic/electronetsoft/util/errno/errno.h>
39+
#include <electrostatic/electronetsoft/util/utilities.h>
40+
#include <electrostatic/electronetsoft/util/types.h>
4441

45-
typedef struct list(list);
46-
typedef struct list_info(list_info);
47-
typedef enum list_type(list_type);
48-
typedef struct list_element(list_element);
49-
typedef struct list_function_table(list_function_table);
42+
#ifdef __cplusplus
43+
extern "C" {
44+
#endif
5045

5146
enum list_type {
5247
CONTIGUOUS_BUFFER,
53-
LINKED_NODES
48+
LINKED_BUFFER
5449
};
5550

5651
struct list_element {
5752
void *data;
53+
void *metadata;
5854
size_t size;
5955
};
6056

@@ -71,28 +67,29 @@ struct list {
7167
memory_partition elements_memory;
7268
uint64_t length;
7369
uint64_t limit;
74-
errno error; //dereference and examine just in case an errno is thrown value is always > 0
7570
};
7671

7772
struct list_function_table {
78-
uint8_t (*contains)(list *, list_element *);
79-
void (*iterator)(list *, list_info, void (*callback)(list *, list_element *));
80-
uint8_t (*add)(list *, list_element *);
81-
list_element *(*get)(list *, uint64_t);
82-
uint8_t (*indexof)(list *, list_element *, uint64_t *);
83-
uint8_t (*resize)(list *, uint16_t);
84-
uint8_t (*update_buffer_size)(list *, void *);
85-
uint8_t (*remove_by_element)(list *, list_element *);
86-
uint8_t (*remove_by_index)(list *, uint64_t);
87-
uint8_t (*contains_all)(list *, list_element **);
88-
uint8_t (*add_all)(list *, list_element **);
89-
uint8_t (*remove_all)(list *, list_element **);
90-
uint8_t (*retains_all)(list *, list_element **);
91-
list_element *(*get_start_address)(list *);
92-
list_element *(*get_end_address)(list *);
73+
status_code (*contains)(list *, list_element *);
74+
status_code (*iterator)(list *, list_info, void (*callback)(list *, list_element *));
75+
status_code (*add)(list *, list_element *);
76+
status_code (*get)(list *, uint64_t, list_element **);
77+
status_code (*index_of)(list *, list_element *, uint64_t *);
78+
status_code (*resize)(list *, uint16_t);
79+
status_code (*update_buffer_size)(list *, void *);
80+
status_code (*remove_by_element)(list *, list_element *);
81+
status_code (*remove_by_index)(list *, uint64_t);
82+
status_code (*contains_all)(list *, list_element **);
83+
status_code (*add_all)(list *, list_element **);
84+
status_code (*remove_all)(list *, list_element **);
85+
status_code (*retains_all)(list *, list_element **);
86+
status_code (*get_start_address)(list *, list_element **);
87+
status_code (*get_end_address)(list *, list_element **);
88+
api_lifecycle *lifecycle;
9389
};
9490

95-
uint8_t init_list_function_table(list *, list_element **, list_function_table *);
91+
status_code init_list_function_table(list *, list_element **,
92+
list_function_table *, api_lifecycle *lifecycle);
9693

9794
#ifdef __cplusplus
9895
}

0 commit comments

Comments
 (0)