Simple Virtual Machine
A simple but flexible virtual machine
Loading...
Searching...
No Matches
svm.h
Go to the documentation of this file.
1/*
2 * Simple Virtual Machine - A versatile and robust architecture to
3 * easily write applications.
4 * Copyright (C) 2021 Julien BRUGUIER
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the Lesser GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the Lesser GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef SVM_API
21#define SVM_API
22
115#ifdef __cplusplus
116extern "C"
117{
118#endif
119
128#define SVM_TYPE
132#define SVM_TYPE_BEGIN
136#define SVM_TYPE_END
140#define SVM_FUNCTION
141
164/*
165 * These types correspond to specific objects used in this API.
166 */
167
173SVM_TYPE typedef const void* SVM_Variable;
174
182SVM_TYPE typedef const void* SVM_Parameter;
183
189SVM_TYPE typedef const void* SVM_Structure;
190
196SVM_TYPE typedef const void* SVM_AccessControl;
197
203SVM_TYPE typedef const void* SVM_Memory_Zone;
204
212SVM_TYPE typedef const void* SVM_Lock;
213
219SVM_TYPE typedef const void* SVM_LockGuard_Read;
220
226SVM_TYPE typedef const void* SVM_LockGuard_Write;
227
235SVM_TYPE typedef const void* SVM_Event_Queue;
236
243
249SVM_TYPE typedef unsigned long int SVM_Address;
250
254SVM_TYPE typedef unsigned long int SVM_Index;
255
259SVM_TYPE typedef unsigned long int SVM_Size;
260
272SVM_TYPE typedef const void* SVM_Code;
273
286SVM_TYPE typedef const void* SVM_Kernel;
287
306SVM_TYPE typedef const void* SVM_Process;
307
313SVM_TYPE typedef const void* SVM_Process_Lock;
314
322SVM_TYPE typedef const void* SVM_Scheduler;
323
329SVM_TYPE typedef const void* SVM_Debug_Form;
330
335typedef struct
336{
337 const char *string;
345} SVM_String;
347
354typedef enum
355{
356 FALSE = 0,
357 TRUE = 1
360
380
402
414
433
446
466
487
498
499#define SVM_NOTHING
505
511SVM_TYPE typedef const void* SVM_Type;
512
520SVM_TYPE typedef const void* SVM_Value;
521
529SVM_TYPE typedef const void* SVM_Value_Integer;
530
538SVM_TYPE typedef const void* SVM_Value_String;
539
547SVM_TYPE typedef const void* SVM_Value_Boolean;
548
560SVM_TYPE typedef const void* SVM_Value_Pointer;
561
569SVM_TYPE typedef const void* SVM_Value_Library;
570
582SVM_TYPE typedef const void* SVM_Value_Symbol;
583
596
609
619SVM_TYPE typedef const void* SVM_Value_Plugin;
620
628SVM_TYPE typedef const void* SVM_Value_Automatic;
629
657
694SVM_FUNCTION void svm_plugin_configure(void *plugin_handler, const char *plugin_configuration, const char api_signature[], const char svm_version[]);
695
752
765SVM_FUNCTION void svm_variable_delete(const void *svm, const SVM_Variable variable);
766
784SVM_FUNCTION void svm_variable_scope_set_global(const void *svm, const SVM_Variable variable);
785
800SVM_FUNCTION void svm_variable_scope_set_local(const void *svm, const SVM_Variable variable);
801
820SVM_FUNCTION void svm_variable_scope_set_shared(const void *svm, const SVM_Variable variable);
821
836SVM_FUNCTION void svm_variable_scope_reset_shared(const void *svm, const SVM_Variable variable);
837
852
869
886
905
917
929
941
953
965
977
989
1001
1013
1025
1037
1049
1061
1073
1085
1112SVM_FUNCTION SVM_String svm_string_new(const void *svm, const char *buffer, const SVM_Size size);
1113
1128SVM_FUNCTION SVM_String svm_string_new__raw(const void *svm, const char *string);
1129
1141
1153SVM_FUNCTION SVM_String svm_string_join(const void *svm, const SVM_String first, const SVM_String second);
1154
1166SVM_FUNCTION SVM_String svm_string_join__raw(const void *svm, const SVM_String first, const char *second);
1167
1180SVM_FUNCTION SVM_String svm_string_join__buffer(const void *svm, const SVM_String first, const char *second, const SVM_Size size);
1181
1193SVM_FUNCTION SVM_Boolean svm_string_is_equal(const void *svm, const SVM_String left, const SVM_String right);
1194
1206SVM_FUNCTION SVM_Boolean svm_string_is_equal__raw(const void *svm, const SVM_String left, const char *right);
1207
1220SVM_FUNCTION SVM_Boolean svm_string_is_equal__buffer(const void *svm, const SVM_String left, const char *buffer, const SVM_Size size);
1221
1251
1266
1278
1299
1316
1330
1343SVM_FUNCTION SVM_Parameter svm_parameter_marker_new__raw(const void *svm, const char *marker);
1344
1362SVM_FUNCTION SVM_Index svm_parameter_marker_find(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start, const SVM_String marker);
1363
1381SVM_FUNCTION SVM_Index svm_parameter_marker_find__raw(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start, const char *marker);
1382
1398SVM_FUNCTION SVM_Index svm_parameter_marker_find_separator(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start);
1399
1422SVM_FUNCTION SVM_Index svm_parameter_marker_find_closing(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index opening);
1423
1445
1462
1477
1491SVM_FUNCTION SVM_Parameter svm_parameter_keyword_new__raw(const void *svm, const char *keyword);
1492
1513
1529
1544
1563
1578
1590
1606
1624SVM_FUNCTION void svm_machine_shutdown(const void *svm, const SVM_Value_Integer return_code);
1625
1635SVM_FUNCTION void svm_machine_shutdown__raw(const void *svm, const unsigned long int return_code);
1636
1645SVM_FUNCTION void svm_machine_trace(const void *svm, const SVM_Value_String trace);
1646
1655SVM_FUNCTION void svm_machine_trace__string(const void *svm, const SVM_String trace);
1656
1665SVM_FUNCTION void svm_machine_trace__raw(const void *svm, const char *trace);
1666
1682
1695SVM_FUNCTION SVM_String svm_machine_config(const void *svm, const char *key);
1696
1708
1720
1741
1765SVM_FUNCTION SVM_Boolean svm_plugin_has_instruction(const void *svm, const SVM_Value_PluginEntryPoint instruction, const SVM_Size argc, const SVM_Parameter argv[], SVM_Parameter result);
1766
1778
1796SVM_FUNCTION SVM_Boolean svm_plugin_has_function(const void *svm, const SVM_Value_PluginEntryPoint function, const SVM_Size argc, const SVM_Parameter argv[], SVM_Parameter result);
1797
1816
1828
1840
1852
1864
1886
1898
1910
1927
1944
1961
1991
2003
2015
2030SVM_FUNCTION void* svm_structure_get_internal(const void *svm, const SVM_Value_PluginEntryPoint type, const SVM_Structure structure);
2031
2044
2117
2131
2155
2167
2179
2191
2204
2217
2228SVM_FUNCTION SVM_Type svm_type_copy(const void *svm, const SVM_Type type);
2229
2240SVM_FUNCTION SVM_String svm_type_print(const void *svm, const SVM_Type type);
2241
2256
2271
2285SVM_FUNCTION SVM_Comparison_Result svm_type_compare(const void *svm, const SVM_Type left, const SVM_Type right);
2286
2321SVM_FUNCTION SVM_Value_Integer svm_value_integer_new(const void *svm, const long int integer);
2322
2333
2345
2360SVM_FUNCTION long long int svm_value_integer_get(const void *svm, const SVM_Value_Integer integer);
2361
2376SVM_FUNCTION void svm_value_integer_set(const void *svm, SVM_Value_Integer value, const long long int integer);
2377
2396
2407SVM_FUNCTION SVM_Value_String svm_value_string_new__raw(const void *svm, const char *string);
2408
2422SVM_FUNCTION SVM_Value_String svm_value_string_new__buffer(const void *svm, const char *string, const SVM_Size size);
2423
2434
2446
2462
2477SVM_FUNCTION void svm_value_string_set(const void *svm, SVM_Value_String value, const SVM_String string);
2478
2490SVM_FUNCTION void svm_value_string_set__raw(const void *svm, SVM_Value_String value, const char *string);
2491
2506SVM_FUNCTION void svm_value_string_set__buffer(const void *svm, SVM_Value_String value, const char *string, const SVM_Size size);
2507
2526
2538
2549
2561
2577
2592SVM_FUNCTION void svm_value_boolean_set(const void *svm, SVM_Value_Boolean value, const SVM_Boolean boolean);
2593
2608SVM_FUNCTION void svm_value_boolean_set__raw(const void *svm, SVM_Value_Boolean value, const int boolean);
2609
2630
2643
2654
2666
2682
2698
2714SVM_FUNCTION void svm_value_pointer_set(const void *svm, SVM_Value_Pointer value, const SVM_Value_Pointer pointer);
2715
2732
2748
2765
2781
2799
2815SVM_FUNCTION void svm_value_pointer_set_addresssize__raw(const void *svm, SVM_Value_Pointer value, const SVM_Address address, const SVM_Size size);
2816
2835
2846
2858
2874
2890SVM_FUNCTION void svm_value_library_set(const void *svm, SVM_Value_Library value, const SVM_Value_Library library);
2891
2907
2926SVM_FUNCTION SVM_Value_Symbol svm_value_symbol_new(const void *svm, const SVM_Code code, const SVM_Address symbol);
2927
2938
2950
2966
2982
2997
3013SVM_FUNCTION void svm_value_symbol_set(const void *svm, SVM_Value_Symbol value, const SVM_Value_Symbol symbol);
3014
3029SVM_FUNCTION void svm_value_symbol_set_code(const void *svm, SVM_Value_Symbol value, const SVM_Code code);
3030
3045SVM_FUNCTION void svm_value_symbol_set_address(const void *svm, SVM_Value_Symbol value, const SVM_Address address);
3046
3062SVM_FUNCTION void svm_value_symbol_set_codeaddress(const void *svm, SVM_Value_Symbol value, const SVM_Code code, const SVM_Address address);
3063
3083
3096
3108SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new__raw(const void *svm, const char *plugin_name, const char *entry_name);
3109
3124
3135
3147
3163
3179
3196
3212
3228
3243SVM_FUNCTION void svm_value_pluginentrypoint_set_plugin__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *plugin_name);
3244
3260SVM_FUNCTION void svm_value_pluginentrypoint_set_entry(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String entry_name, const char *prefix);
3261
3277SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String entry_name, const char *prefix);
3278
3294SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *entry_name, const char *prefix);
3295
3312SVM_FUNCTION void svm_value_pluginentrypoint_set_pluginentry(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String plugin_name, const SVM_Value_String entry_name, const char *prefix);
3313
3330SVM_FUNCTION void svm_value_pluginentrypoint_set_pluginentry__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String plugin_name, const SVM_String entry_name, const char *prefix);
3331
3348SVM_FUNCTION void svm_value_pluginentrypoint_set_pluginentry__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *plugin_name, const char *entry_name, const char *prefix);
3349
3373
3390
3407
3424
3441
3458
3469
3481
3498
3515
3532
3549
3565
3581
3599
3616
3635
3654
3673
3693
3713
3733
3757
3770
3786
3802
3818
3832
3848
3867
3888SVM_FUNCTION void svm_value_plugin_set(const void *svm, SVM_Value_Plugin value, const SVM_Value_Plugin plugin);
3889
3911SVM_FUNCTION void svm_value_plugin_set_internal(const void *svm, SVM_Value_Plugin value, const SVM_Value_PluginEntryPoint type, void *internal_value);
3912
3927
3947
3966
3978
3995
4009SVM_FUNCTION SVM_Boolean svm_value_is_equal(const void *svm, const SVM_Value left, const SVM_Value right);
4010
4027
4039
4051
4066
4082SVM_FUNCTION SVM_Value svm_value_copy(const void *svm, const SVM_Value value);
4083
4096SVM_FUNCTION SVM_String svm_value_print(const void *svm, const SVM_Value value);
4097
4111
4150SVM_FUNCTION SVM_Code svm_code_new(const void *svm, const SVM_Value_String name, const SVM_Value_String source);
4151
4169SVM_FUNCTION SVM_Code svm_code_new__string(const void *svm, const SVM_String name, const SVM_String source);
4170
4188SVM_FUNCTION SVM_Code svm_code_new__raw(const void *svm, const char *name, const char *source);
4189
4204
4219
4233SVM_FUNCTION SVM_Variable svm_code_compile__raw(const void *svm, const char *name, const char *source);
4234
4248
4260
4274SVM_FUNCTION SVM_String svm_code_print(const void *svm, const SVM_Code code);
4275
4293
4306
4318SVM_FUNCTION SVM_Boolean svm_code_label_has_address__raw(const void *svm, const SVM_Code code, const char *label);
4319
4339
4355
4371
4386SVM_FUNCTION SVM_Address svm_code_label_get_address__raw(const void *svm, const SVM_Code code, const char *label);
4387
4407
4420
4432SVM_FUNCTION SVM_Boolean svm_code_symbol_has_address__raw(const void *svm, const SVM_Code code, const char *label);
4433
4461
4475
4489
4502SVM_FUNCTION SVM_Value_Symbol svm_code_symbol_get_address__raw(const void *svm, const SVM_Code code, const char *label);
4503
4525
4539
4553
4567
4581
4612SVM_FUNCTION SVM_AccessControl svm_accesscontrol_new(const void *svm, const unsigned long int *max_instructions, const unsigned long int *max_memory);
4613
4631
4645SVM_FUNCTION unsigned long int svm_accesscontrol_get_instructions(const void *svm, const SVM_AccessControl access_control);
4646
4661SVM_FUNCTION void svm_accesscontrol_set_instructions(const void *svm, SVM_AccessControl access_control, const unsigned long int instructions);
4662
4682
4696SVM_FUNCTION unsigned long int svm_accesscontrol_get_memory(const void *svm, const SVM_AccessControl access_control);
4697
4712SVM_FUNCTION void svm_accesscontrol_set_memory(const void *svm, SVM_AccessControl access_control, const unsigned long int memory);
4713
4765SVM_FUNCTION SVM_Kernel svm_kernel_new_code(const void *svm, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control, const SVM_Code code);
4766
4793SVM_FUNCTION SVM_Kernel svm_kernel_new_symbol(const void *svm, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control, const SVM_Value_Symbol symbol);
4794
4807
4821
4844
4860
4876
4892
4908
4924
4940
4956SVM_FUNCTION void svm_kernel_set_accesscontrol(const void* svm, const SVM_Kernel kernel, const SVM_AccessControl access_control);
4957
4973
4991
5009
5027SVM_FUNCTION void svm_kernel_suspend(const void *svm, const SVM_Kernel kernel);
5028
5039SVM_FUNCTION void svm_kernel_terminate(const void *svm, const SVM_Kernel kernel);
5040
5064SVM_FUNCTION void svm_kernel_swap_memory(const void *svm, SVM_Kernel kernel1, SVM_Kernel kernel2);
5065
5107SVM_FUNCTION SVM_Process svm_process_new(const void *svm, const SVM_Value_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Kernel kernel);
5108
5126SVM_FUNCTION SVM_Process svm_process_new__string(const void *svm, const SVM_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Kernel kernel);
5127
5145SVM_FUNCTION SVM_Process svm_process_new__raw(const void *svm, const char *name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Kernel kernel);
5146
5176SVM_FUNCTION SVM_Process svm_process_new_code(const void *svm, const SVM_Value_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Code code, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control);
5177
5207SVM_FUNCTION SVM_Process svm_process_new_code__string(const void *svm, const SVM_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Code code, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control);
5208
5238SVM_FUNCTION SVM_Process svm_process_new_code__raw(const void *svm, const char *name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Code code, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control);
5239
5269SVM_FUNCTION SVM_Process svm_process_new_symbol(const void *svm, const SVM_Value_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Value_Symbol symbol, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control);
5270
5300SVM_FUNCTION SVM_Process svm_process_new_symbol__string(const void *svm, const SVM_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Value_Symbol symbol, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control);
5301
5331SVM_FUNCTION SVM_Process svm_process_new_symbol__raw(const void *svm, const char *name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Value_Symbol symbol, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control);
5332
5345
5398
5422
5442
5463
5485SVM_FUNCTION void svm_process_run(const void *svm, const SVM_Process process, const SVM_Value_Integer delay);
5486
5501SVM_FUNCTION void svm_process_run__raw(const void *svm, const SVM_Process process, const unsigned long int delay);
5502
5515SVM_FUNCTION void svm_process_suspend(const void *svm, const SVM_Process process);
5516
5529SVM_FUNCTION void svm_process_terminate(const void *svm, const SVM_Process process);
5530
5544SVM_FUNCTION void svm_process_interrupt(const void *svm, const SVM_Process process, const SVM_Value_Interruption interruption);
5545
5567SVM_FUNCTION void svm_process_pause(const void *svm);
5568
5585SVM_FUNCTION void svm_process_resume(const void *svm);
5586
5634
5654
5673
5690
5709
5721
5735
5749
5763
5782
5797
5818
5836
5848
5879SVM_FUNCTION SVM_Boolean svm_process_kernel_attach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[]);
5880
5904SVM_FUNCTION SVM_Boolean svm_process_kernel_detach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[]);
5905
5921
5956
5967
5980SVM_FUNCTION void* svm_scheduler_get_internal(const void *svm, const SVM_Scheduler scheduler);
5981
5993
6019SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Size argc, const SVM_Parameter argv[]);
6020
6048SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Size argc, const SVM_Parameter argv[]);
6049
6069SVM_FUNCTION SVM_Boolean svm_scheduler_notify(const void *svm, const SVM_Scheduler scheduler, const SVM_Size argc, const SVM_Parameter argv[]);
6070
6105
6128
6141
6164
6177
6197
6210
6229
6243
6262
6274SVM_FUNCTION void svm_event_queue_join(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address);
6275
6289SVM_FUNCTION void svm_event_queue_leave(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address);
6290
6309SVM_FUNCTION void svm_event_queue_push(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, const SVM_Event_Queue_Address origin, const SVM_Structure event);
6310
6330SVM_FUNCTION void svm_event_queue_broadcast(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address origin, const SVM_Structure event);
6331
6359
6389SVM_FUNCTION SVM_Boolean svm_event_queue_check(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, SVM_Event_Queue_Address *origin, SVM_Structure *event, const SVM_Value_Integer timeout, const SVM_Boolean soft);
6390
6418SVM_FUNCTION SVM_Boolean svm_event_queue_check__raw(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, SVM_Event_Queue_Address *origin, SVM_Structure *event, const unsigned long int timeout, const SVM_Boolean soft);
6419
6456
6472
6489
6505SVM_FUNCTION void svm_processor_jump_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
6506
6522SVM_FUNCTION void svm_processor_jump_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
6523
6540SVM_FUNCTION void svm_processor_call_local(const void *svm, const SVM_Kernel kernel, const SVM_Address function, const SVM_Value_Pointer parameters);
6541
6558SVM_FUNCTION void svm_processor_call_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol function, const SVM_Value_Pointer parameters);
6559
6580SVM_FUNCTION void svm_processor_call_identical(const void *svm, const SVM_Kernel kernel, const SVM_Boolean transfer);
6581
6597SVM_FUNCTION void svm_processor_return(const void *svm, const SVM_Kernel kernel);
6598
6607
6631SVM_FUNCTION void svm_processor_current_sleep(const void *svm, const SVM_Value_Integer seconds, const SVM_Value_Integer milliseconds, const SVM_Boolean soft);
6632
6655SVM_FUNCTION void svm_processor_current_sleep__raw(const void *svm, const unsigned long int seconds, const unsigned long int milliseconds, const SVM_Boolean soft);
6656
6679
6694SVM_FUNCTION void svm_processor_returnstack_swap_level(const void *svm, const SVM_Kernel kernel, const SVM_Index level);
6695
6716
6737
6757SVM_FUNCTION SVM_Index svm_processor_returnstack_find_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Index start);
6758
6782SVM_FUNCTION void svm_processor_returnstack_move_level(const void *svm, const SVM_Kernel kernel, const SVM_Index start, const SVM_Index end, const SVM_Index target);
6783
6806
6820SVM_FUNCTION void svm_processor_set_currentpointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
6821
6846SVM_FUNCTION void svm_processor_interruptionhandler_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Address address, const SVM_Object_Level level);
6847
6865SVM_FUNCTION void svm_processor_interruptionhandler_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Value_Symbol symbol, const SVM_Object_Level level);
6866
6883SVM_FUNCTION void svm_processor_interruptionhandler_reset(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Object_Level level);
6884
6906
6929
6948SVM_FUNCTION void svm_processor_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
6949
6965
6983
7000SVM_FUNCTION void svm_processor_hold_interruption(const void *svm, const SVM_Kernel kernel);
7001
7019
7037
7053
7067SVM_FUNCTION void svm_processor_set_currentinterruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
7068
7085
7098SVM_FUNCTION void svm_processor_current_raise_error_internal__raw(const void *svm, const SVM_Interruption_Internal interruption, const char *message);
7099
7114SVM_FUNCTION void svm_processor_current_raise_error_external__raw(const void *svm, const SVM_Value_PluginEntryPoint interruption, const char *message);
7115
7139
7156
7172SVM_FUNCTION SVM_Boolean svm_processor_has_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag);
7173
7191
7210SVM_FUNCTION void svm_processor_set_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level);
7211
7230SVM_FUNCTION void svm_processor_set_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level);
7231
7250SVM_FUNCTION void svm_processor_set_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level);
7251
7270SVM_FUNCTION void svm_processor_reset_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level);
7271
7290SVM_FUNCTION void svm_processor_reset_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level);
7291
7310SVM_FUNCTION void svm_processor_reset_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level);
7311
7346SVM_FUNCTION void svm_processor_instructionoverride_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_PluginEntryPoint name, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Object_Level level);
7347
7375SVM_FUNCTION void svm_processor_instructionoverride_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol, const SVM_Value_PluginEntryPoint name, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Object_Level level);
7376
7396
7416
7433SVM_FUNCTION void svm_processor_instructionoverride_reset_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Object_Level level);
7434
7452
7483
7495
7513
7525SVM_FUNCTION void svm_memory_zone_append(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Value_Integer times);
7526
7538SVM_FUNCTION void svm_memory_zone_append__raw(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Size times);
7539
7552
7564
7577
7589
7600
7615SVM_FUNCTION SVM_Memory_Zone svm_memory_zone_get(const void *svm, const SVM_Size size, const SVM_Value *values);
7616
7631
7647SVM_FUNCTION void svm_memory_zone_insert_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone insert);
7648
7666SVM_FUNCTION void svm_memory_zone_remove_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Size size);
7667
7682SVM_FUNCTION void svm_memory_zone_replace_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone replace);
7683
7700
7712
7727
7737
7747
7778
7813
7829SVM_FUNCTION void svm_memory_free(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7830
7859SVM_FUNCTION void svm_memory_scope_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7860
7878SVM_FUNCTION void svm_memory_scope_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7879
7896SVM_FUNCTION void svm_memory_scope_set_local_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
7897
7914SVM_FUNCTION void svm_memory_scope_set_local_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
7915
7932SVM_FUNCTION void svm_memory_scope_set_local_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
7933
7950SVM_FUNCTION void svm_memory_scope_set_global_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
7951
7968SVM_FUNCTION void svm_memory_scope_set_global_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
7969
7986SVM_FUNCTION void svm_memory_scope_set_global_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
7987
8011
8028
8046SVM_FUNCTION SVM_Type svm_memory_address_get_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8047
8067SVM_FUNCTION SVM_Boolean svm_memory_address_is_writable(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value);
8068
8087SVM_FUNCTION void svm_memory_address_set_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type);
8088
8131
8167
8189
8207
8227
8248SVM_FUNCTION void svm_memory_pointer_set_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Memory_Zone zone);
8249
8276SVM_FUNCTION SVM_Value svm_memory_read_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8277
8298SVM_FUNCTION SVM_Value svm_memory_read_address_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type);
8299
8321
8346
8366SVM_FUNCTION SVM_Value svm_memory_extract_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8367
8390SVM_FUNCTION SVM_Value* svm_memory_read_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
8391
8415SVM_FUNCTION SVM_Value* svm_memory_read_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size);
8416
8439SVM_FUNCTION SVM_Value* svm_memory_read_pointer_type(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Type type);
8440
8464SVM_FUNCTION SVM_Value* svm_memory_read_pointer_type__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Type type);
8465
8489
8513SVM_FUNCTION SVM_Value* svm_memory_read_pointer_type_internal__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Type_Internal type);
8514
8538
8563
8589SVM_FUNCTION SVM_Value* svm_memory_read_pointer_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Memory_Zone zone);
8590
8615SVM_FUNCTION SVM_Value* svm_memory_read_pointer_zone__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Memory_Zone zone);
8616
8640
8664SVM_FUNCTION SVM_Value* svm_memory_extract_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size);
8665
8694SVM_FUNCTION void svm_memory_write_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value);
8695
8722SVM_FUNCTION void svm_memory_write_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Value* values);
8723
8751SVM_FUNCTION void svm_memory_write_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Value* values);
8752
8776SVM_FUNCTION void svm_memory_add_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias, const SVM_Value_Pointer pointer);
8777
8794SVM_FUNCTION void svm_memory_add_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias, const SVM_Value_Pointer pointer);
8795
8812SVM_FUNCTION void svm_memory_add_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias, const SVM_Value_Pointer pointer);
8813
8830
8847
8863SVM_FUNCTION SVM_Boolean svm_memory_has_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8864
8883
8902
8920SVM_FUNCTION SVM_Value_Pointer svm_memory_alias_get_pointer__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8921
8937SVM_FUNCTION void svm_memory_remove_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
8938
8954SVM_FUNCTION void svm_memory_remove_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
8955
8971SVM_FUNCTION void svm_memory_remove_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8972
9001SVM_FUNCTION void svm_memory_copy(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer origin, const SVM_Kernel remote, const SVM_Value_Pointer target);
9002
9025SVM_FUNCTION void svm_memory_move(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer origin, const SVM_Kernel remote, const SVM_Value_Pointer target);
9026
9052SVM_FUNCTION void svm_memory_share(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer origin, const SVM_Kernel remote, const SVM_Value_Pointer target);
9053
9079SVM_FUNCTION void svm_memory_translate(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer zone, const SVM_Value_Pointer origin, const SVM_Value_Pointer target);
9080
9099SVM_FUNCTION void svm_memory_address_shift(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_Integer shift);
9100
9119SVM_FUNCTION void svm_memory_address_shift__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, signed long int shift);
9120
9150SVM_FUNCTION void svm_memory_synchronisation_enable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
9151
9169SVM_FUNCTION void svm_memory_synchronisation_disable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
9170
9197SVM_FUNCTION void svm_debug_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message);
9198
9210SVM_FUNCTION void svm_debug_break__string(const void *svm, const SVM_Kernel kernel, const SVM_String message);
9211
9223SVM_FUNCTION void svm_debug_break__raw(const void *svm, const SVM_Kernel kernel, const char *message);
9224
9238SVM_FUNCTION void svm_debug_notify(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message);
9239
9253SVM_FUNCTION void svm_debug_notify__string(const void *svm, const SVM_Kernel kernel, const SVM_String message);
9254
9268SVM_FUNCTION void svm_debug_notify__raw(const void *svm, const SVM_Kernel kernel, const char *message);
9269
9284SVM_FUNCTION void svm_debug_synchronise(const void *svm, const SVM_Value value);
9285
9303SVM_FUNCTION void svm_debug_breakpoint_add_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
9304
9317SVM_FUNCTION void svm_debug_breakpoint_remove_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
9318
9331SVM_FUNCTION void svm_debug_breakpoint_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
9332
9345SVM_FUNCTION void svm_debug_breakpoint_remove_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
9346
9359SVM_FUNCTION void svm_debug_breakpoint_add_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9360
9373SVM_FUNCTION void svm_debug_breakpoint_remove_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9374
9387SVM_FUNCTION void svm_debug_breakpoint_add_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9388
9401SVM_FUNCTION void svm_debug_breakpoint_remove_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9402
9415SVM_FUNCTION void svm_debug_breakpoint_add_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9416
9429SVM_FUNCTION void svm_debug_breakpoint_remove_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9430
9443SVM_FUNCTION void svm_debug_breakpoint_add_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9444
9457SVM_FUNCTION void svm_debug_breakpoint_remove_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9458
9476SVM_FUNCTION SVM_Debug_Form svm_debug_form_new(const void *svm, const char *title);
9477
9488SVM_FUNCTION void svm_debug_form_append_checkbox(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_Boolean default_value);
9489
9502SVM_FUNCTION void svm_debug_form_append_checkbox__raw(const void *svm, SVM_Debug_Form form, const char *label, const int default_value);
9503
9521SVM_FUNCTION void svm_debug_form_append_selection(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Size size, const SVM_Value *values);
9522
9537SVM_FUNCTION void svm_debug_form_append_integer(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_Integer default_value, const long long int min_value, const long long int max_value);
9538
9553SVM_FUNCTION void svm_debug_form_append_integer__raw(const void *svm, SVM_Debug_Form form, const char *label, const long long int default_value, const long long int min_value, const long long int max_value);
9554
9569SVM_FUNCTION void svm_debug_form_append_string(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_String default_value, const SVM_Size min_size, const SVM_Size max_size);
9570
9585SVM_FUNCTION void svm_debug_form_append_string__string(const void *svm, SVM_Debug_Form form, const char *label, const SVM_String default_value, const SVM_Size min_size, const SVM_Size max_size);
9586
9601SVM_FUNCTION void svm_debug_form_append_string__raw(const void *svm, SVM_Debug_Form form, const char *label, const char *default_value, const SVM_Size min_size, const SVM_Size max_size);
9602
9614SVM_FUNCTION void svm_debug_form_append_text(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Size width, const SVM_Size height);
9615
9633
9638#ifdef __cplusplus
9639}
9640#endif
9641#endif
SVM_FUNCTION SVM_AccessControl svm_accesscontrol_new(const void *svm, const unsigned long int *max_instructions, const unsigned long int *max_memory)
This function creates an access control quota for a SVM code execution.
SVM_FUNCTION void svm_accesscontrol_set_instructions(const void *svm, SVM_AccessControl access_control, const unsigned long int instructions)
This function changes the remaining instructions counter within a quota for a SVM code execution.
SVM_FUNCTION SVM_Boolean svm_accesscontrol_has_instructions(const void *svm, const SVM_AccessControl access_control)
This function checks whether a quota for a SVM code execution contains a limit for instructions.
SVM_FUNCTION unsigned long int svm_accesscontrol_get_instructions(const void *svm, const SVM_AccessControl access_control)
This function retrieves the remaining instructions counter from a quota for a SVM code execution.
SVM_FUNCTION SVM_Boolean svm_accesscontrol_has_memory(const void *svm, const SVM_AccessControl access_control)
This function checks whether a quota for a SVM code execution contains a limit for memory.
SVM_FUNCTION unsigned long int svm_accesscontrol_get_memory(const void *svm, const SVM_AccessControl access_control)
This function retrieves the remaining memory counter from a quota for a SVM code execution.
SVM_FUNCTION void svm_accesscontrol_set_memory(const void *svm, SVM_AccessControl access_control, const unsigned long int memory)
This function changes the remaining memory counter within a quota for a SVM code execution.
SVM_FUNCTION SVM_Type svm_memory_address_get_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function extracts the type of a value from a memory.
SVM_FUNCTION SVM_Boolean svm_memory_address_is_defined(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function checks whether an address is defined in a memory.
SVM_FUNCTION SVM_Boolean svm_memory_address_is_initialised(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function checks whether an address is initialised in a memory.
SVM_FUNCTION void svm_memory_address_set_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type)
This function modifies the type to an internal type of an address of a memory.
SVM_FUNCTION SVM_Boolean svm_memory_address_is_writable(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value)
This function checks whether a value can be written into a memory.
SVM_FUNCTION void svm_memory_add_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias, const SVM_Value_Pointer pointer)
This function creates a new alias in a memory from a C nul-terminated value.
SVM_FUNCTION void svm_memory_remove_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias)
This function removes an alias from a memory from a C nul-terminated string.
SVM_FUNCTION SVM_Boolean svm_memory_has_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias)
This function checks whether an alias is defined in a memory from a SVM_String.
SVM_FUNCTION SVM_Boolean svm_memory_has_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias)
This function checks whether an alias is defined in a memory from a string value.
SVM_FUNCTION void svm_memory_remove_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias)
This function removes an alias from a memory from a string value.
SVM_FUNCTION void svm_memory_remove_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias)
This function removes an alias from a memory from a SVM_String.
SVM_FUNCTION SVM_Value_Pointer svm_memory_alias_get_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias)
This function extracts the pointer associated to an alias in a memory from a string value.
SVM_FUNCTION SVM_Value_Pointer svm_memory_alias_get_pointer__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias)
This function extracts the pointer associated to an alias in a memory from a SVM_String.
SVM_FUNCTION void svm_memory_add_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias, const SVM_Value_Pointer pointer)
This function creates a new alias in a memory from a string value.
SVM_FUNCTION SVM_Boolean svm_memory_has_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias)
This function checks whether an alias is defined in a memory from a C nul-terminated string.
SVM_FUNCTION SVM_Value_Pointer svm_memory_alias_get_pointer__raw(const void *svm, const SVM_Kernel kernel, const char *alias)
This function extracts the pointer associated to an alias in a memory from a C nul-terminated string.
SVM_FUNCTION void svm_memory_add_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias, const SVM_Value_Pointer pointer)
This function creates a new alias in a memory from a SVM_String.
SVM_FUNCTION SVM_Value_Pointer svm_memory_allocate_address(const void *svm, const SVM_Kernel kernel, const SVM_Memory_Zone zone, const SVM_Address address)
This function allocates a zone in a memory at a specified address.
SVM_FUNCTION void svm_memory_free(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function frees a memory zone.
SVM_FUNCTION SVM_Value_Pointer svm_memory_allocate(const void *svm, const SVM_Kernel kernel, const SVM_Memory_Zone zone)
This function allocates a zone in a memory.
SVM_TYPE typedef const void * SVM_Value_Interruption
This type is used to represent an interruption name the SVM can store in one of its memories.
Definition svm.h:608
SVM_TYPE typedef const void * SVM_Event_Queue_Address
This type is used to represent an entity able to post and get events from an event queue.
Definition svm.h:242
SVM_TYPE typedef const void * SVM_Kernel
This type is used to represent an atomic execution environment.
Definition svm.h:286
SVM_TYPE typedef const void * SVM_Event_Queue
This type is used as a complex synchronisation facility.
Definition svm.h:235
SVM_TYPE typedef const void * SVM_Type
This type is used to represent types of any value the SVM can store in one of its memories.
Definition svm.h:511
SVM_Process_State
This type represents the status of a process.
Definition svm.h:421
SVM_TYPE typedef const void * SVM_Code
This type is used to represent a section of code of the SVM.
Definition svm.h:272
SVM_TYPE typedef const void * SVM_LockGuard_Read
This type is used to represent the aquisition of a SVM_Lock as a reader.
Definition svm.h:219
SVM_TYPE typedef const void * SVM_Value_String
This type is used to represent a string the SVM can store in one of its memories.
Definition svm.h:538
SVM_TYPE typedef const void * SVM_Value_Pointer
This type is used to represent a pointer the SVM can store in one of its memories.
Definition svm.h:560
SVM_TYPE typedef SVM_Process_State SVM_Kernel_State
This type represents the status of a kernel.
Definition svm.h:504
SVM_TYPE typedef const void * SVM_Structure
This type is used to convey a C pointer used for data exchange between plugins.
Definition svm.h:189
SVM_TYPE typedef const void * SVM_Value_Library
This type is used to represent a library the SVM can store in one of its memories.
Definition svm.h:569
SVM_TYPE typedef const void * SVM_Value_Plugin
This type is used to represent a value defined by a plugin the SVM can store in one of its memories.
Definition svm.h:619
SVM_Boolean
This type corresponds to a simple boolean.
Definition svm.h:355
SVM_TYPE typedef const void * SVM_Value_PluginEntryPoint
This type is used to represent a plugin entry point the SVM can store in one of its memories.
Definition svm.h:595
SVM_TYPE typedef const void * SVM_Value_Symbol
This type is used to represent a symbol the SVM can store in one of its memories.
Definition svm.h:582
SVM_TYPE typedef const void * SVM_Lock
This type is used as a simple synchronisation facility.
Definition svm.h:212
SVM_TYPE typedef const void * SVM_Value_Automatic
This type is used to represent a null automatic value.
Definition svm.h:628
SVM_TYPE typedef const void * SVM_AccessControl
This type is used to represent quotas on code execution.
Definition svm.h:196
SVM_TYPE typedef unsigned long int SVM_Size
This type is used to represent an object size.
Definition svm.h:259
SVM_TYPE typedef const void * SVM_Debug_Form
This type is used to represent the a formular in the debugger user interface.
Definition svm.h:329
SVM_Object_Level
This type corresponds to the level of definition of an object.
Definition svm.h:440
SVM_Type_Internal
This type corresponds to value types the SVM can store in its memory.
Definition svm.h:368
SVM_TYPE typedef const void * SVM_Parameter
This type is used by the SVM to pass instruction parameters to the corresponding plugin function.
Definition svm.h:182
SVM_TYPE typedef const void * SVM_Memory_Zone
This type is used to represent the types of a contiguous zone of memory prior to its allocation.
Definition svm.h:203
SVM_Interruption_Internal
This type corresponds to interruption types the SVM can use to stop program executions.
Definition svm.h:387
SVM_TYPE typedef const void * SVM_Process
This type is used to represent an execution thread in the SVM.
Definition svm.h:306
SVM_TYPE typedef const void * SVM_Process_Lock
This type is used to represent the aquisition of a lock on a remote process.
Definition svm.h:313
SVM_TYPE typedef unsigned long int SVM_Index
This type is used to represent an index.
Definition svm.h:254
SVM_TYPE typedef const void * SVM_Scheduler
This type is used to represent an execution scheduler.
Definition svm.h:322
SVM_Interruption_Kind
This type represents the two major classes of interruptions the SVM can handle.
Definition svm.h:409
SVM_TYPE typedef const void * SVM_Variable
This type is used to represent any object managed by the SVM.
Definition svm.h:173
SVM_TYPE typedef const void * SVM_Value_Boolean
This type is used to represent a boolean the SVM can store in one of its memories.
Definition svm.h:547
SVM_TYPE typedef unsigned long int SVM_Address
This type is used to represent:
Definition svm.h:249
SVM_Value_Plugin_Comparison
This type corresponds to the result of SVM_Value_Plugin comparison.
Definition svm.h:474
SVM_TYPE typedef const void * SVM_LockGuard_Write
This type is used to represent the aquisition of a SVM_Lock as a writer.
Definition svm.h:226
SVM_TYPE typedef const void * SVM_Value
This type is used to represent any value the SVM can store in one of its memories.
Definition svm.h:520
SVM_TYPE typedef const void * SVM_Value_Integer
This type is used to represent an integer the SVM can store in one of its memories.
Definition svm.h:529
@ DEBUG
the process is blocked in a state it answers only to the debugger
Definition svm.h:427
@ RUNNING
the process lets the processor of the current kernel executing instructions
Definition svm.h:422
@ SUSPENDED
the process is in a light sleep, and can return in running mode anytime
Definition svm.h:423
@ ERROR
the process reached an invalid state
Definition svm.h:430
@ CONTINUE
the process is blocked in a state in which it will only accept an execution request
Definition svm.h:425
@ ZOMBIE
the process has completed its execution and is not destroyed yet
Definition svm.h:428
@ INTERRUPTED
the process has completed its execution on a non-handled interruption
Definition svm.h:429
@ LOCKED
the process is temporarly owned by someone and can not return in running mode
Definition svm.h:426
@ WAITING
the process is blocked in a state in which it may not answer to scheduler requests
Definition svm.h:424
@ FALSE
self-explained
Definition svm.h:356
@ TRUE
self-explained
Definition svm.h:357
@ LOCAL
the object is located in the current state of the processor
Definition svm.h:441
@ CASCADE
the object is located in the current state and all sub states of the processor
Definition svm.h:442
@ GLOBAL
the object is located in the processor
Definition svm.h:443
@ AUTOMATIC
generic type to be replaced at first assignation
Definition svm.h:369
@ INTEGER
integer type corresponding to long long int
Definition svm.h:370
@ LIBRARY
library type corresponding to SVM_Code
Definition svm.h:374
@ BOOLEAN
boolean type corresponding to SVM_Boolean
Definition svm.h:372
@ INTERRUPTION
interruption type corresponds to processor interruptions
Definition svm.h:377
@ POINTER
pointer type used to target memory zones
Definition svm.h:373
@ SYMBOL
symbol type used to target code location
Definition svm.h:375
@ STRING
string type corresponding to SVM_String
Definition svm.h:371
@ PLUGIN_ENTRY_POINT
plugin entry point type used to identify a plugin object
Definition svm.h:376
@ SECURITY
raised on security violation or quota overflow
Definition svm.h:396
@ DEVICE
raised on SIGPIPE, SIGBUS
Definition svm.h:389
@ PROCESSOR
raised on SIGILL or processor invalid action
Definition svm.h:394
@ FIRST
raised on SIGUSR1
Definition svm.h:391
@ SECOND
raised on SIGUSR2
Definition svm.h:395
@ NUMERIC
raised on SIGFPE
Definition svm.h:393
@ CLONE
raised on SIGCHLD
Definition svm.h:388
@ TERMINATE
raised on SIGTERM, SIGINT, SIGHUP, SIGALRM
Definition svm.h:397
@ TERMINAL
raised on SIGTTIN, SIGTTOU, SIGWINCH
Definition svm.h:398
@ GENERIC
raised on all other signals
Definition svm.h:399
@ MEMORY
raised on memory access failure
Definition svm.h:392
@ FAILURE
raised on SIGABRT, SIGQUIT or generic failure in instruction
Definition svm.h:390
@ SOFTWARE
the class of interruptions coming from instructions and execution errors
Definition svm.h:410
@ HARDWARE
the class of interruptions coming from the OS signals
Definition svm.h:411
@ EQUIVALENCE_EQUAL
Used to specify that values are equal.
Definition svm.h:475
@ EQUIVALENCE_DIFFERENT
Used to specify that values are different.
Definition svm.h:476
@ ORDER_SUPERIOR
Used to specify that left value is superior to right value.
Definition svm.h:479
@ COMPARISON_STRONG
Used to specify that the real comparison has been computed.
Definition svm.h:483
@ ORDER_PARTIAL
Used to specify that the order is partial (unused when an equivalence is used, set automatically when...
Definition svm.h:482
@ ORDER_UNCOMPARABLE
Used to specify that left value and the right value can not be compared.
Definition svm.h:480
@ COMPARISON_WEAK
Used to specify that an heuristic or arbitrary comparison has been computed.
Definition svm.h:484
@ ORDER_TOTAL
Used to specify that the order is total (unused when an equivalence is used)
Definition svm.h:481
@ ORDER_INFERIOR
Used to specify that left value is inferior to right value.
Definition svm.h:478
@ ORDER_EQUAL
Used to specify that values are equal.
Definition svm.h:477
#define SVM_FUNCTION
Declares a monoline SVM API function.
Definition svm.h:140
#define SVM_TYPE_BEGIN
Declares the begining of a multiline SVM type.
Definition svm.h:132
#define SVM_TYPE
Declares a monoline SVM type.
Definition svm.h:128
#define SVM_TYPE_END
Declares the end of a multiline SVM type.
Definition svm.h:136
SVM_FUNCTION SVM_Value_Automatic svm_value_automatic_new_null(const void *svm)
This function creates an automatic value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Value_Boolean svm_value_boolean_new(const void *svm, const SVM_Boolean boolean)
This function creates a boolean value the SVM can store in its memories from a raw boolean.
SVM_FUNCTION void svm_value_boolean_set(const void *svm, SVM_Value_Boolean value, const SVM_Boolean boolean)
This function replaces the raw boolean contained in a boolean value from a SVM_Boolean.
SVM_FUNCTION SVM_Value_Boolean svm_value_boolean_new__raw(const void *svm, const int boolean)
This function creates a boolean value the SVM can store in its memories from a C boolean.
SVM_FUNCTION SVM_Boolean svm_value_boolean_get(const void *svm, const SVM_Value_Boolean boolean)
This function extracts the SVM_Boolean contained in a boolean value.
SVM_FUNCTION void svm_value_boolean_set__raw(const void *svm, SVM_Value_Boolean value, const int boolean)
This function replaces the raw boolean contained in a boolean value from a C boolean.
SVM_FUNCTION SVM_Boolean svm_value_type_is_boolean(const void *svm, const SVM_Value value)
This function checks whether a value contains a boolean.
SVM_FUNCTION SVM_Value_Boolean svm_value_boolean_new_null(const void *svm)
This function creates a boolean value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Code svm_code_new(const void *svm, const SVM_Value_String name, const SVM_Value_String source)
This function creates a SVM code from two string values.
SVM_FUNCTION SVM_Code svm_code_new__string(const void *svm, const SVM_String name, const SVM_String source)
This function creates a SVM code from two SVM_String.
SVM_FUNCTION SVM_Variable svm_code_compile__raw(const void *svm, const char *name, const char *source)
This function creates a SVM code from two C nul-terminated strings.
SVM_FUNCTION SVM_Code svm_code_new__raw(const void *svm, const char *name, const char *source)
This function creates a SVM code from two C nul-terminated strings.
SVM_FUNCTION SVM_Variable svm_code_compile(const void *svm, const SVM_Value_String name, const SVM_Value_String source)
This function tries to create a SVM code from two string values.
SVM_FUNCTION SVM_Variable svm_code_compile__string(const void *svm, const SVM_String name, const SVM_String source)
This function creates a SVM code from two SVM_String.
SVM_FUNCTION SVM_Size svm_code_get_size(const void *svm, const SVM_Code code)
This function returns the number of instructions of a given SVM code.
SVM_FUNCTION SVM_String svm_code_instruction_get_text(const void *svm, const SVM_Code code, const SVM_Address address)
This function returns the text of the instruction at a given address of a given SVM code.
SVM_FUNCTION SVM_Boolean svm_code_instruction_is_system(const void *svm, const SVM_Code code, const SVM_Address address)
This function returns whether the instruction at a given address of a given SVM code has the system f...
SVM_FUNCTION SVM_Boolean svm_code_instruction_is_waiting(const void *svm, const SVM_Code code, const SVM_Address address)
This function returns whether the instruction at a given address of a given SVM code has the waiting ...
SVM_FUNCTION SVM_String svm_code_instruction_get_location(const void *svm, const SVM_Code code, const SVM_Address address)
This function returns the text of the location of the instruction at a given address of a given SVM c...
SVM_FUNCTION SVM_String svm_code_get_name(const void *svm, const SVM_Code code)
This function extracts the code name from the SVM code.
SVM_FUNCTION SVM_String svm_code_get_source(const void *svm, const SVM_Code code)
This function extracts the code source from the SVM code.
SVM_FUNCTION SVM_String svm_code_print(const void *svm, const SVM_Code code)
This function renders a textual representation of a SVM code.
SVM_FUNCTION const char * svm_api_get_signature()
This function helps the SVM to check the compatibility of a given plugin to its own API.
SVM_FUNCTION void svm_plugin_configure(void *plugin_handler, const char *plugin_configuration, const char api_signature[], const char svm_version[])
This function configures a plugin to the virtual machine.
SVM_FUNCTION void svm_debug_synchronise(const void *svm, const SVM_Value value)
This function allows explicit synchronisation of a value in the debugger.
SVM_FUNCTION void svm_debug_notify(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message)
This function is a plugin notification to the debugger with a message from a string value.
SVM_FUNCTION void svm_debug_notify__raw(const void *svm, const SVM_Kernel kernel, const char *message)
This function is a plugin notification to the debugger with a message from a C nul-terminated string.
SVM_FUNCTION void svm_debug_break__string(const void *svm, const SVM_Kernel kernel, const SVM_String message)
This function is a plugin breakpoint with a message from a SVM_String.
SVM_FUNCTION void svm_debug_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message)
This function is a plugin breakpoint with a message from a string value.
SVM_FUNCTION void svm_debug_break__raw(const void *svm, const SVM_Kernel kernel, const char *message)
This function is a plugin breakpoint with a message from a C nul-terminated string.
SVM_FUNCTION void svm_debug_notify__string(const void *svm, const SVM_Kernel kernel, const SVM_String message)
This function is a plugin notification to the debugger with a message from a SVM_String.
SVM_FUNCTION void svm_debug_form_append_selection(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Size size, const SVM_Value *values)
This function appends to a debugger form a list of selection field.
SVM_FUNCTION SVM_Debug_Form svm_debug_form_new(const void *svm, const char *title)
This function creates a debugger form.
SVM_FUNCTION void svm_debug_form_append_string__string(const void *svm, SVM_Debug_Form form, const char *label, const SVM_String default_value, const SVM_Size min_size, const SVM_Size max_size)
This function appends to a debugger form an input field accepting strings.
SVM_FUNCTION void svm_debug_form_append_checkbox__raw(const void *svm, SVM_Debug_Form form, const char *label, const int default_value)
This function appends to a debugger form a checkbox field.
SVM_FUNCTION void svm_debug_form_append_string(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_String default_value, const SVM_Size min_size, const SVM_Size max_size)
This function appends to a debugger form an input field accepting strings.
SVM_FUNCTION SVM_Value * svm_debug_form_request(const void *svm, const SVM_Debug_Form form)
This function sends the form to the debugger user interface, and waits for the form submission.
SVM_FUNCTION void svm_debug_form_append_checkbox(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_Boolean default_value)
This function appends to a debugger form a checkbox field.
SVM_FUNCTION void svm_debug_form_append_string__raw(const void *svm, SVM_Debug_Form form, const char *label, const char *default_value, const SVM_Size min_size, const SVM_Size max_size)
This function appends to a debugger form an input field accepting strings.
SVM_FUNCTION void svm_debug_form_append_integer(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_Integer default_value, const long long int min_value, const long long int max_value)
This function appends to a debugger form an input field accepting integers.
SVM_FUNCTION void svm_debug_form_append_text(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Size width, const SVM_Size height)
This function appends to a debugger form an input field accepting long multi-line strings.
SVM_FUNCTION void svm_debug_form_append_integer__raw(const void *svm, SVM_Debug_Form form, const char *label, const long long int default_value, const long long int min_value, const long long int max_value)
This function appends to a debugger form an input field accepting integers.
SVM_FUNCTION void svm_debug_breakpoint_remove_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function removes a breakpoint by memory delete on a memory.
SVM_FUNCTION void svm_debug_breakpoint_remove_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption)
This function removes a breakpoint by interruption on a processor.
SVM_FUNCTION void svm_debug_breakpoint_remove_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function removes a breakpoint by memory access on a memory.
SVM_FUNCTION void svm_debug_breakpoint_remove_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function removes a breakpoint by memory read on a memory.
SVM_FUNCTION void svm_debug_breakpoint_add_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function adds a breakpoint by memory write on a memory.
SVM_FUNCTION void svm_debug_breakpoint_add_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function adds a breakpoint by memory access on a memory.
SVM_FUNCTION void svm_debug_breakpoint_remove_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol)
This function removes a breakpoint on a processor.
SVM_FUNCTION void svm_debug_breakpoint_add_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol)
This function adds a breakpoint on a processor.
SVM_FUNCTION void svm_debug_breakpoint_add_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function adds a breakpoint by memory read on a memory.
SVM_FUNCTION void svm_debug_breakpoint_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption)
This function adds a breakpoint by interruption on a processor.
SVM_FUNCTION void svm_debug_breakpoint_remove_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function removes a breakpoint by memory write on a memory.
SVM_FUNCTION void svm_debug_breakpoint_add_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function adds a breakpoint by memory delete on a memory.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_lockguardread(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a lock guard in read mode.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_kernel(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a kernel.
SVM_FUNCTION SVM_Boolean svm_variable_is_valid(const void *svm, const SVM_Variable variable)
This function checks whether a variable is valid.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_accesscontrol(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains an access control.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_lock(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a lock.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_memoryzone(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a memory zone.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_code(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a SVM code.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_processlock(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a process lock.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_structure(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a structure.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_eventqueue(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains an event queue.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_parameter(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a parameter.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_scheduler(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a scheduler.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_process(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a process.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_eventqueueaddress(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains an event queue address.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_lockguardwrite(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a lock guard in write mode.
SVM_FUNCTION SVM_Boolean svm_variable_type_is_value(const void *svm, const SVM_Variable variable)
This function checks whether a variable contains a value.
SVM_FUNCTION void svm_processor_current_raise_error(const void *svm, const SVM_Value_Interruption interruption)
This function interrupts the current processor and the current instruction execution from any interru...
SVM_FUNCTION void svm_processor_current_raise_error_external__raw(const void *svm, const SVM_Value_PluginEntryPoint interruption, const char *message)
This function interrupts the current processor and the current instruction execution from a plugin de...
SVM_FUNCTION void svm_processor_current_raise_error_internal__raw(const void *svm, const SVM_Interruption_Internal interruption, const char *message)
This function interrupts the current processor and the current instruction execution from an internal...
SVM_FUNCTION SVM_Event_Queue_Address svm_event_address_new(const void *svm)
This function creates an event queue address.
SVM_FUNCTION SVM_Structure svm_event_address_get_struct(const void *svm, const SVM_Event_Queue_Address address)
This function retrieves the owner of an event queue address.
SVM_FUNCTION SVM_Event_Queue svm_event_queue_new(const void *svm)
This function creates an event queue.
SVM_FUNCTION SVM_Event_Queue_Address svm_event_address_new_struct(const void *svm, const SVM_Structure structure)
This function creates an event queue address.
SVM_FUNCTION void svm_event_queue_leave(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address)
This function lets an address to leave the event queue.
SVM_FUNCTION SVM_Boolean svm_event_queue_check(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, SVM_Event_Queue_Address *origin, SVM_Structure *event, const SVM_Value_Integer timeout, const SVM_Boolean soft)
This function pulls an event on a queue from an address with a timeout in an integer value.
SVM_FUNCTION void svm_event_queue_join(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address)
This function lets an address to join the event queue.
SVM_FUNCTION void svm_event_queue_push(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, const SVM_Event_Queue_Address origin, const SVM_Structure event)
This function pushes an event on a queue from an address to another address.
SVM_FUNCTION SVM_Boolean svm_event_address_has_struct(const void *svm, const SVM_Event_Queue_Address address)
This function checks whether an event queue address has an owner.
SVM_FUNCTION SVM_Boolean svm_event_queue_check__raw(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, SVM_Event_Queue_Address *origin, SVM_Structure *event, const unsigned long int timeout, const SVM_Boolean soft)
This function pulls an event on a queue from an address with a timeout in a raw integer.
SVM_FUNCTION void svm_event_queue_broadcast(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address origin, const SVM_Structure event)
This function pushes an event on a queue from an address to all addresses.
SVM_FUNCTION SVM_Boolean svm_event_queue_pull(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address destination, SVM_Event_Queue_Address *origin, SVM_Structure *event, const SVM_Boolean soft)
This function pulls an event on a queue from an address.
SVM_FUNCTION void svm_process_interrupt(const void *svm, const SVM_Process process, const SVM_Value_Interruption interruption)
This function requests the interruption of a process.
SVM_FUNCTION void svm_process_suspend(const void *svm, const SVM_Process process)
This function requests the suspension of a process.
SVM_FUNCTION void svm_process_terminate(const void *svm, const SVM_Process process)
This function requests the terminaison of a process.
SVM_FUNCTION void svm_process_run__raw(const void *svm, const SVM_Process process, const unsigned long int delay)
This function requires the execution of a process with a delay as an raw integer.
SVM_FUNCTION void svm_process_run(const void *svm, const SVM_Process process, const SVM_Value_Integer delay)
This function requires the execution of a process with a delay as an integer value.
SVM_FUNCTION void svm_process_pause(const void *svm)
This function changes the current process status to notify it enters in a blocking wait inside an ins...
SVM_FUNCTION void svm_process_resume(const void *svm)
This function changes the current process status to notify it exits a blocking wait inside an instruc...
SVM_FUNCTION void svm_kernel_suspend(const void *svm, const SVM_Kernel kernel)
This function asks a kernel for suspension.
SVM_FUNCTION void svm_kernel_terminate(const void *svm, const SVM_Kernel kernel)
This function asks a kernel for terminaison.
SVM_FUNCTION void svm_processor_call_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol function, const SVM_Value_Pointer parameters)
This function does a global SVM code function call on a processor.
SVM_FUNCTION SVM_Value_Symbol svm_processor_get_nextinstruction(const void *svm, const SVM_Kernel kernel)
This function retrieves the address of the next instruction a processor will execute.
SVM_FUNCTION void svm_processor_call_identical(const void *svm, const SVM_Kernel kernel, const SVM_Boolean transfer)
This function does an identical SVM code function call on a processor.
SVM_FUNCTION SVM_Value_Symbol svm_processor_get_currentinstruction(const void *svm, const SVM_Kernel kernel)
This function retrieves the address of the current instruction a processor is executing.
SVM_FUNCTION void svm_processor_jump_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol)
This function does a global jump on a processor.
SVM_FUNCTION void svm_processor_call_local(const void *svm, const SVM_Kernel kernel, const SVM_Address function, const SVM_Value_Pointer parameters)
This function does a local SVM code function call on a processor.
SVM_FUNCTION void svm_processor_current_sleep(const void *svm, const SVM_Value_Integer seconds, const SVM_Value_Integer milliseconds, const SVM_Boolean soft)
This function stops the execution of the processor of the current kernel for a given time as integer ...
SVM_FUNCTION SVM_Code svm_processor_get_currentcode(const void *svm, const SVM_Kernel kernel)
This function extracts the SVM code actually executed by the processor.
SVM_FUNCTION void svm_processor_jump_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function does a local jump on a processor.
SVM_FUNCTION void svm_processor_return(const void *svm, const SVM_Kernel kernel)
This function does a SVM code function return on a processor.
SVM_FUNCTION void svm_processor_current_sleep__raw(const void *svm, const unsigned long int seconds, const unsigned long int milliseconds, const SVM_Boolean soft)
This function stops the execution of the processor of the current kernel for a given time as raw inte...
SVM_FUNCTION void svm_processor_current_shutdown(const void *svm)
This function shuts down the processor of the current kernel.
SVM_FUNCTION SVM_Boolean svm_processor_has_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag)
This function detects whether a flag is raised in a processor current state, from a SVM_String.
SVM_FUNCTION void svm_processor_set_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level)
This function raises a flag in a processor current state, from a SVM_String.
SVM_FUNCTION void svm_processor_set_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level)
This function raises a flag in a processor current state, from a string value.
SVM_FUNCTION void svm_processor_reset_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level)
This function lowers a flag in a processor current state, from a SVM_String.
SVM_FUNCTION void svm_processor_reset_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level)
This function lowers a flag in a processor current state, from a string value.
SVM_FUNCTION SVM_Value_String * svm_processor_list_flag(const void *svm, const SVM_Kernel kernel)
This function lists all raised flags in a processor current state.
SVM_FUNCTION SVM_Boolean svm_processor_has_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag)
This function detects whether a flag is raised in a processor current state, from a C nul-terminated ...
SVM_FUNCTION void svm_processor_set_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level)
This function raises a flag in a processor current state, from a C nul-terminated string.
SVM_FUNCTION SVM_Boolean svm_processor_has_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag)
This function detects whether a flag is raised in a processor current state, from a string value.
SVM_FUNCTION void svm_processor_reset_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level)
This function lowers a flag in a processor current state, from a C nul-terminated string.
SVM_FUNCTION SVM_String svm_function_get_prototype(const void *svm, const SVM_Value_PluginEntryPoint name)
This function returns a string representing the prototype of a plugin defined function.
SVM_FUNCTION SVM_Variable svm_function_call(const void *svm, const SVM_Value_PluginEntryPoint name, const SVM_Size argc, SVM_Parameter argv[])
This function calls a plugin defined function.
SVM_FUNCTION SVM_Kernel svm_kernel_new_symbol(const void *svm, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control, const SVM_Value_Symbol symbol)
This function creates a new kernel.
SVM_FUNCTION SVM_Kernel svm_kernel_new_code(const void *svm, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control, const SVM_Code code)
This function creates a new kernel.
SVM_FUNCTION SVM_Kernel svm_kernel_get_current(const void *svm)
This function retrieves the current kernel.
SVM_FUNCTION SVM_Process svm_kernel_get_process(const void *svm, const SVM_Kernel kernel)
This function returns the process associated to a kernel.
SVM_FUNCTION SVM_Process svm_process_new__raw(const void *svm, const char *name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Kernel kernel)
This function creates a new process from a kernel and the name from a C nul-terminated string.
SVM_FUNCTION SVM_Process svm_process_new_symbol__raw(const void *svm, const char *name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Value_Symbol symbol, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control)
This function creates a new process from specific values and the name from a C nul-terminated string.
SVM_FUNCTION SVM_Process svm_process_new_code(const void *svm, const SVM_Value_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Code code, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control)
This function creates a new process from specific values and the name from a string value.
SVM_FUNCTION SVM_Process svm_process_new_symbol__string(const void *svm, const SVM_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Value_Symbol symbol, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control)
This function creates a new process from specific values and the name from a SVM_String.
SVM_FUNCTION SVM_Process svm_process_get_current(const void *svm)
This function retrieves the current process.
SVM_FUNCTION SVM_Process svm_process_new(const void *svm, const SVM_Value_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Kernel kernel)
This function creates a new process from a kernel and the name from a string value.
SVM_FUNCTION SVM_Process svm_process_new_symbol(const void *svm, const SVM_Value_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Value_Symbol symbol, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control)
This function creates a new process from specific values and the name from a string value.
SVM_FUNCTION SVM_Process svm_process_new_code__raw(const void *svm, const char *name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Code code, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control)
This function creates a new process from specific values and the name from a C nul-terminated string.
SVM_FUNCTION SVM_Process svm_process_new_code__string(const void *svm, const SVM_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Code code, const SVM_Boolean transmit_interruptions, const SVM_Boolean last_return_is_shutdown, const SVM_Boolean protected_mode, const SVM_AccessControl access_control)
This function creates a new process from specific values and the name from a SVM_String.
SVM_FUNCTION SVM_Process svm_process_new__string(const void *svm, const SVM_String name, const SVM_Value_PluginEntryPoint sequencer, const SVM_Boolean auto_terminated, const SVM_Kernel kernel)
This function creates a new process from a kernel and the name from a SVM string.
SVM_FUNCTION SVM_Boolean svm_processor_instructionoverride_has_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol, const SVM_Object_Level level)
This function checks whether a processor has an instruction override on a symbol.
SVM_FUNCTION void svm_processor_instructionoverride_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_PluginEntryPoint name, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Object_Level level)
This function sets an instruction override on a local address.
SVM_FUNCTION void svm_processor_instructionoverride_reset_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Object_Level level)
This function removes an instruction override on a local address.
SVM_FUNCTION SVM_Boolean svm_processor_instructionoverride_has_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Object_Level level)
This function checks whether a processor has an instruction override on a local address.
SVM_FUNCTION void svm_processor_instructionoverride_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol, const SVM_Value_PluginEntryPoint name, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Object_Level level)
This function sets an instruction override on a local address.
SVM_FUNCTION void svm_processor_instructionoverride_reset_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol, const SVM_Object_Level level)
This function removes an instruction override on a symbol.
SVM_FUNCTION SVM_Value_Integer svm_value_integer_new_null(const void *svm)
This function creates an integer value the SVM can store in its memories without a value.
SVM_FUNCTION long long int svm_value_integer_get(const void *svm, const SVM_Value_Integer integer)
This function extracts the raw integer contained in an integer value.
SVM_FUNCTION SVM_Value_Integer svm_value_integer_new(const void *svm, const long int integer)
This function creates an integer value the SVM can store in its memories from a raw integer.
SVM_FUNCTION SVM_Boolean svm_value_type_is_integer(const void *svm, const SVM_Value value)
This function checks whether a value contains an integer.
SVM_FUNCTION void svm_value_integer_set(const void *svm, SVM_Value_Integer value, const long long int integer)
This function replaces the raw integer contained in an integer value from a raw integer.
SVM_FUNCTION void svm_processor_hold_interruption(const void *svm, const SVM_Kernel kernel)
This function disables waiting interruptions handling of a processor.
SVM_FUNCTION void svm_processor_set_currentinterruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption)
This function modifies the current interruption of a processor.
SVM_FUNCTION void svm_processor_interruptionhandler_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Value_Symbol symbol, const SVM_Object_Level level)
This function sets a global interruption handler on a processor.
SVM_FUNCTION SVM_Boolean svm_processor_is_hardwareinterrupted(const void *svm, const SVM_Kernel kernel)
This function detects whether an hardware interruption has been received by a processor.
SVM_FUNCTION SVM_Value_Symbol svm_processor_interruptionhandler_get(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Object_Level level)
This function extracts an interruption handler from a processor.
SVM_FUNCTION void svm_processor_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption)
This function interrupts a processor.
SVM_FUNCTION void svm_processor_clear_interruption(const void *svm, const SVM_Kernel kernel)
This function clears waiting interruptions of a processor.
SVM_FUNCTION SVM_Boolean svm_processor_interruptionhandler_has(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Object_Level level)
This function checks whether an interruption handler exists in a processor.
SVM_FUNCTION SVM_Value_Interruption * svm_processor_list_interruption(const void *svm, const SVM_Kernel kernel)
This function retrieves waiting interruptions of a processor.
SVM_FUNCTION void svm_processor_interruptionhandler_reset(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Object_Level level)
This function removes an interruption handler from a processor.
SVM_FUNCTION void svm_processor_release_interruption(const void *svm, const SVM_Kernel kernel)
This function enables waiting interruptions handling of a processor.
SVM_FUNCTION void svm_processor_interruptionhandler_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Address address, const SVM_Object_Level level)
This function sets a local interruption handler on a processor.
SVM_FUNCTION SVM_Value_Interruption svm_processor_get_currentinterruption(const void *svm, const SVM_Kernel kernel)
This function extracts the current interruption of a processor.
SVM_FUNCTION void svm_value_interruption_set_external(const void *svm, SVM_Value_Interruption value, const SVM_Value_PluginEntryPoint name, const SVM_Value_String message)
This function replaces the interruption name and the message contained in an interruption value from ...
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_external__string(const void *svm, const SVM_Value_PluginEntryPoint name, const SVM_String message)
This function creates an interruption the SVM can store in its memories from a plugin entry point and...
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_internal__string(const void *svm, const SVM_Interruption_Internal interruption, const SVM_String message, const SVM_Interruption_Kind kind)
This function creates an interruption the SVM can store in its memories from an interruption type and...
SVM_FUNCTION SVM_Boolean svm_value_type_is_interruption(const void *svm, const SVM_Value value)
This function checks whether a value contains an interruption.
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_internal__raw(const void *svm, const SVM_Interruption_Internal interruption, const char *message, const SVM_Interruption_Kind kind)
This function creates an interruption the SVM can store in its memories from an interruption type and...
SVM_FUNCTION void svm_value_interruption_set_internal(const void *svm, SVM_Value_Interruption value, const SVM_Interruption_Internal type, const SVM_Value_String message, const SVM_Interruption_Kind kind)
This function replaces the interruption type, the message and the kind of interruption contained in a...
SVM_FUNCTION SVM_Boolean svm_value_interruption_is_internal(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption type contained in an interruption value.
SVM_FUNCTION void svm_value_interruption_set(const void *svm, SVM_Value_Interruption value, const SVM_Value_Interruption interruption)
This function replaces the interruption value by another interruption value.
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_external__raw(const void *svm, const SVM_Value_PluginEntryPoint name, const char *message)
This function creates an interruption the SVM can store in its memories from a plugin entry point and...
SVM_FUNCTION SVM_String svm_value_interruption_get_message(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption message contained in an interruption value.
SVM_FUNCTION void svm_value_interruption_set_internal__raw(const void *svm, SVM_Value_Interruption value, const SVM_Interruption_Internal type, const char *message, const SVM_Interruption_Kind kind)
This function replaces the interruption type, the message and the kind of interruption contained in a...
SVM_FUNCTION SVM_Interruption_Kind svm_value_interruption_get_kind(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption kind contained in an interruption value.
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_null(const void *svm)
This function creates an interruption value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_interruption_get_external(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption extension name contained in an interruption value.
SVM_FUNCTION void svm_value_interruption_set_internal__string(const void *svm, SVM_Value_Interruption value, const SVM_Interruption_Internal type, const SVM_String message, const SVM_Interruption_Kind kind)
This function replaces the interruption type, the message and the kind of interruption contained in a...
SVM_FUNCTION SVM_Boolean svm_value_interruption_is_external(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption extension name contained in an interruption value.
SVM_FUNCTION void svm_value_interruption_set_external__string(const void *svm, SVM_Value_Interruption value, const SVM_Value_PluginEntryPoint name, const SVM_String message)
This function replaces the interruption name and the message contained in an interruption value from ...
SVM_FUNCTION SVM_String svm_value_interruption_get_location(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption location contained in an interruption value.
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_internal(const void *svm, const SVM_Interruption_Internal interruption, const SVM_Value_String message, const SVM_Interruption_Kind kind)
This function creates an interruption the SVM can store in its memories from an interruption type and...
SVM_FUNCTION void svm_value_interruption_set_external__raw(const void *svm, SVM_Value_Interruption value, const SVM_Value_PluginEntryPoint name, const char *message)
This function replaces the interruption name and the message contained in an interruption value from ...
SVM_FUNCTION SVM_Value_Interruption svm_value_interruption_new_external(const void *svm, const SVM_Value_PluginEntryPoint name, const SVM_Value_String message)
This function creates an interruption the SVM can store in its memories from a plugin entry point and...
SVM_FUNCTION SVM_Interruption_Internal svm_value_interruption_get_internal(const void *svm, const SVM_Value_Interruption interruption)
This function extracts the interruption type contained in an interruption value.
SVM_FUNCTION SVM_Boolean svm_process_kernel_detach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[])
This function detaches a kernel from a process.
SVM_FUNCTION SVM_Boolean svm_process_kernel_attach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[])
This function attaches a kernel to a process.
SVM_FUNCTION SVM_Kernel svm_process_kernel_get_current(const void *svm, const SVM_Process process)
This function retrieves the kernel currently executed on a process.
SVM_FUNCTION SVM_Boolean svm_parameter_type_is_keyword(const void *svm, const SVM_Parameter parameter)
This function checks whether a parameter contains a keyword.
SVM_FUNCTION SVM_String svm_parameter_keyword_get(const void *svm, const SVM_Parameter parameter)
This function converts a parameter into a keyword.
SVM_FUNCTION SVM_Parameter svm_parameter_keyword_new(const void *svm, const SVM_String keyword)
This function creates a parameter from a keyword string.
SVM_FUNCTION SVM_Parameter svm_parameter_keyword_new__raw(const void *svm, const char *keyword)
This function creates a parameter from a keyword string.
SVM_FUNCTION SVM_Boolean svm_code_label_has_address(const void *svm, const SVM_Code code, const SVM_Value_String label)
This function checks whether a SVM code defines a label given as a string value.
SVM_FUNCTION SVM_Boolean svm_code_label_has_address__string(const void *svm, const SVM_Code code, const SVM_String label)
This function checks whether a SVM code defines a label given as a SVM_String.
SVM_FUNCTION SVM_Address svm_code_label_get_address__string(const void *svm, const SVM_Code code, const SVM_String label)
This function solves a label in a SVM code given as a SVM_String.
SVM_FUNCTION SVM_Value_String * svm_code_label_list(const void *svm, const SVM_Code code)
This function returns all labels defined in a SVM code.
SVM_FUNCTION SVM_Boolean svm_code_label_has_address__raw(const void *svm, const SVM_Code code, const char *label)
This function checks whether a SVM code defines a label given as a C nul-terminated string.
SVM_FUNCTION SVM_Address svm_code_label_get_address(const void *svm, const SVM_Code code, const SVM_Value_String label)
This function solves a label in a SVM code given as a string value.
SVM_FUNCTION SVM_Address svm_code_label_get_address__raw(const void *svm, const SVM_Code code, const char *label)
This function solves a label in a SVM code given as a C nul-terminated string.
SVM_FUNCTION void svm_value_library_set(const void *svm, SVM_Value_Library value, const SVM_Value_Library library)
This function replaces the library value by another library value.
SVM_FUNCTION SVM_Value_Library svm_value_library_new(const void *svm, const SVM_Code code)
This function creates a library value the SVM can store in its memories from a SVM_Code.
SVM_FUNCTION SVM_Code svm_value_library_get_code(const void *svm, const SVM_Value_Library library)
This function extracts the code contained in a library value.
SVM_FUNCTION void svm_value_library_set_code(const void *svm, SVM_Value_Library value, const SVM_Code code)
This function replaces the code contained in a library value from a SVM_Code.
SVM_FUNCTION SVM_Value_Library svm_value_library_new_null(const void *svm)
This function creates a library value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Boolean svm_value_type_is_library(const void *svm, const SVM_Value value)
This function checks whether a value contains a library.
SVM_FUNCTION SVM_LockGuard_Write svm_lock_writeguard_new(const void *svm, const SVM_Lock lock, const SVM_Boolean soft)
This function locks a lock for write access.
SVM_FUNCTION SVM_LockGuard_Read svm_lock_readguard_new(const void *svm, const SVM_Lock lock, const SVM_Boolean soft)
This function locks a lock for read access.
SVM_FUNCTION SVM_Lock svm_lock_new(const void *svm)
This function creates a lock.
SVM_FUNCTION SVM_Lock svm_lock_readguard_get_lock(const void *svm, const SVM_LockGuard_Read readguard)
This function returns the lock behind a read access guard.
SVM_FUNCTION SVM_Lock svm_lock_writeguard_get_lock(const void *svm, const SVM_LockGuard_Write writeguard)
This function returns the lock behind a write access guard.
SVM_FUNCTION SVM_Boolean svm_machine_mode_is_debug(const void *svm)
This function indicates when the virtual machine is executed in debug mode.
SVM_FUNCTION SVM_String svm_machine_config(const void *svm, const char *key)
This function returns a value from the virtual machine installation.
SVM_FUNCTION void svm_machine_trace__string(const void *svm, const SVM_String trace)
This function emits an error trace on the logger from a string.
SVM_FUNCTION SVM_Value_Interruption * svm_machine_list_interruption(const void *svm)
This function returns the list of available interruptions.
SVM_FUNCTION void svm_machine_shutdown(const void *svm, const SVM_Value_Integer return_code)
This function shuts down the whole machine, with a return code as an integer value.
SVM_FUNCTION void svm_machine_shutdown__raw(const void *svm, const unsigned long int return_code)
This function shuts down the whole machine, with a return code as a raw integer.
SVM_FUNCTION SVM_Boolean svm_machine_mode_is_performance(const void *svm)
This function indicates when the virtual machine is executed in performance mode.
SVM_FUNCTION void svm_machine_trace__raw(const void *svm, const char *trace)
This function emits an error trace on the logger from a raw C string.
SVM_FUNCTION void svm_machine_trace(const void *svm, const SVM_Value_String trace)
This function emits an error trace on the logger from a string value.
SVM_FUNCTION SVM_Index svm_parameter_marker_find(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start, const SVM_String marker)
This function looks up for a specific marker in a parameter array.
SVM_FUNCTION SVM_Index svm_parameter_marker_find_closing(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index opening)
This function looks up for the closing marker corresponding to an opening separator in a parameter ar...
SVM_FUNCTION SVM_String svm_parameter_marker_get(const void *svm, const SVM_Parameter parameter)
This function converts a parameter into a marker.
SVM_FUNCTION SVM_Boolean svm_parameter_type_is_marker(const void *svm, const SVM_Parameter parameter)
This function checks whether a parameter contains a marker.
SVM_FUNCTION SVM_Index svm_parameter_marker_find_separator(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start)
This function looks up the next separator marker in a parameter array.
SVM_FUNCTION SVM_Parameter svm_parameter_marker_new__raw(const void *svm, const char *marker)
This function creates a parameter from a marker string.
SVM_FUNCTION SVM_Index svm_parameter_marker_find__raw(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start, const char *marker)
This function looks up for a specific marker in a parameter array.
SVM_FUNCTION SVM_Parameter svm_parameter_marker_new(const void *svm, const SVM_String marker)
This function creates a parameter from a marker string.
SVM_FUNCTION SVM_Value_Pointer svm_memory_get_space(const void *svm)
This function returns a pointer representing all address space.
SVM_FUNCTION SVM_Value_Pointer * svm_memory_get_defined(const void *svm, const SVM_Kernel kernel)
This function returns pointers on all defined blocks in memory.
SVM_FUNCTION void svm_memory_scope_set_local_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias)
This function changes the scope of a memory alias from a SVM_String.
SVM_FUNCTION void svm_memory_scope_set_local_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias)
This function changes the scope of a memory alias from a C nul-terminated string.
SVM_FUNCTION void svm_memory_scope_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function changes the scope of a memory zone.
SVM_FUNCTION void svm_memory_scope_set_global_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias)
This function changes the scope of a memory alias from a C nul-terminated string.
SVM_FUNCTION void svm_memory_scope_set_local_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias)
This function changes the scope of a memory alias from a string value.
SVM_FUNCTION void svm_memory_scope_set_global_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias)
This function changes the scope of a memory alias from a string value.
SVM_FUNCTION void svm_memory_scope_set_global_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias)
This function changes the scope of a memory alias from a SVM_String.
SVM_FUNCTION void svm_memory_scope_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function changes the scope of a memory zone.
SVM_FUNCTION void svm_processor_set_currentpointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function modifies the current memory pointer of a processor.
SVM_FUNCTION SVM_Value_Pointer svm_processor_get_currentpointer(const void *svm, const SVM_Kernel kernel)
This function extracts the current memory pointer of a processor.
SVM_FUNCTION SVM_Type svm_memory_zone_get_type(const void *svm, const SVM_Memory_Zone zone, const SVM_Index index)
This function returns one memory zone element.
SVM_FUNCTION SVM_Size svm_memory_zone_get_size(const void *svm, const SVM_Memory_Zone zone)
This function returns the memory zone size.
SVM_FUNCTION SVM_Index svm_memory_zone_find_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone find)
This function finds a memory zone inside a memory zone.
SVM_FUNCTION void svm_memory_zone_append(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Value_Integer times)
This function appends an array of types of length given as integer value.
SVM_FUNCTION void svm_memory_zone_remove_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Size size)
This function remove a part within a memory zone.
SVM_FUNCTION SVM_Memory_Zone svm_memory_zone_new(const void *svm)
This function creates an empty memory zone description.
SVM_FUNCTION void svm_memory_zone_append_external(const void *svm, SVM_Memory_Zone zone, const SVM_Value_PluginEntryPoint type, const SVM_Value_Integer times)
This function appends an array of plugin types of length given as integer value.
SVM_FUNCTION void svm_memory_zone_append_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Memory_Zone append)
This function appends a memory zone to a memory zone.
SVM_FUNCTION SVM_Memory_Zone svm_memory_zone_get(const void *svm, const SVM_Size size, const SVM_Value *values)
This function extracts a memory zone from an array of values.
SVM_FUNCTION SVM_Memory_Zone svm_memory_zone_get__raw(const void *svm, const SVM_Value *values)
This function extracts a memory zone from an array of values.
SVM_FUNCTION void svm_memory_zone_insert_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone insert)
This function inserts a memory zone into a memory zone.
SVM_FUNCTION void svm_memory_zone_append_internal(const void *svm, SVM_Memory_Zone zone, const SVM_Type_Internal type, const SVM_Value_Integer times)
This function appends an array of internal types of length given as integer value.
SVM_FUNCTION void svm_memory_zone_append_internal__raw(const void *svm, SVM_Memory_Zone zone, const SVM_Type_Internal type, const SVM_Size times)
This function appends an array of internal types of length given as raw integer.
SVM_FUNCTION SVM_Memory_Zone svm_memory_zone_copy(const void *svm, const SVM_Memory_Zone zone)
This function creates a copy of a memory zone.
SVM_FUNCTION SVM_String svm_memory_zone_print(const void *svm, const SVM_Memory_Zone zone)
This function creates a string representation of a memory zone.
SVM_FUNCTION void svm_memory_zone_replace_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone replace)
This function replace a memory zone inside a memory zone.
SVM_FUNCTION void svm_memory_zone_append_external__raw(const void *svm, SVM_Memory_Zone zone, const SVM_Value_PluginEntryPoint type, const SVM_Size times)
This function appends an array of plugin types of length given as raw integer.
SVM_FUNCTION void svm_memory_zone_append__raw(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Size times)
This function appends an array of types of length given as integer value.
SVM_FUNCTION void svm_process_interruptionnotification_disable(const void *svm, const SVM_Process process)
This function changes the process behavior on interruption event.
SVM_FUNCTION void svm_process_interruptionnotification_wait(const void *svm)
This function waits until the current process receives an interruption notification.
SVM_FUNCTION void svm_process_interruptionnotification_send(const void *svm, const SVM_Process process)
This function sends an interruption notification to a process.
SVM_FUNCTION void svm_process_interruptionnotification_enable(const void *svm, const SVM_Process process)
This function changes the process behavior on interruption event.
SVM_FUNCTION void svm_kernel_swap_memory(const void *svm, SVM_Kernel kernel1, SVM_Kernel kernel2)
This function swaps memories of two kernels.
SVM_FUNCTION void svm_memory_copy(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer origin, const SVM_Kernel remote, const SVM_Value_Pointer target)
This function copies a memory zone to another.
SVM_FUNCTION void svm_memory_address_shift__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, signed long int shift)
This function increases or decreases an integer in a memory by a raw integer.
SVM_FUNCTION void svm_memory_translate(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer zone, const SVM_Value_Pointer origin, const SVM_Value_Pointer target)
This function translates pointers within a memory zone.
SVM_FUNCTION void svm_memory_share(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer origin, const SVM_Kernel remote, const SVM_Value_Pointer target)
This function shares a memory zone to another.
SVM_FUNCTION void svm_memory_address_shift(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_Integer shift)
This function increases or decreases an integer in a memory by an integer value.
SVM_FUNCTION void svm_memory_move(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer origin, const SVM_Kernel remote, const SVM_Value_Pointer target)
This function moves a memory zone to another.
SVM_FUNCTION SVM_Process_Lock svm_process_ownership_lock(const void *svm, const SVM_Process process)
This function locks a process from the current process.
SVM_FUNCTION SVM_Boolean svm_process_ownership_check(const void *svm, const SVM_Process process)
This function checks whether the current process owns another process.
SVM_FUNCTION SVM_Process_Lock svm_process_ownership_lock_critical(const void *svm)
This function locks all other processes.
SVM_FUNCTION SVM_Boolean svm_process_ownership_get_local(const void *svm, const SVM_Process process)
This function locally takes ownership over another process.
SVM_FUNCTION SVM_Parameter * svm_parameter_array_new(const void *svm, const SVM_Size argc)
This function creates an array of parameters.
SVM_FUNCTION SVM_Boolean svm_plugin_has_option(const void *svm, const SVM_Value_PluginEntryPoint option)
This function checks whether an option exists.
SVM_FUNCTION SVM_Value svm_plugin_get_option(const void *svm, const SVM_Value_PluginEntryPoint option)
This function returns the value associated to an option.
SVM_FUNCTION SVM_Value * svm_plugin_get_arguments(const void *svm, const SVM_Value_PluginEntryPoint arguments)
This function returns the values array associated to an extra arguments array.
SVM_FUNCTION SVM_Value svm_plugin_get_argument(const void *svm, const SVM_Value_PluginEntryPoint argument)
This function returns the value associated to an argument.
SVM_FUNCTION SVM_Boolean svm_plugin_has_arguments(const void *svm, const SVM_Value_PluginEntryPoint arguments)
This function checks whether an extra argument array exists.
SVM_FUNCTION SVM_Boolean svm_plugin_has_argument(const void *svm, const SVM_Value_PluginEntryPoint argument)
This function checks whether an argument exists.
SVM_FUNCTION SVM_String svm_value_pluginentrypoint_get_plugin(const void *svm, const SVM_Value_PluginEntryPoint pep)
This function extracts the plugin name contained in a plugin entry point value.
SVM_FUNCTION void svm_value_pluginentrypoint_set_pluginentry(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String plugin_name, const SVM_Value_String entry_name, const char *prefix)
This function replaces the plugin name and the entry name contained in a plugin entry point value fro...
SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *entry_name, const char *prefix)
This function replaces the entry name contained in a plugin entry point value from two C nul-terminat...
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new__string(const void *svm, const SVM_String plugin_name, const SVM_String entry_name)
This function creates a plugin entry point value the SVM can store in its memories from two SVM_Strin...
SVM_FUNCTION void svm_value_pluginentrypoint_set_plugin__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *plugin_name)
This function replaces the plugin name contained in a plugin entry point value from a C nul-terminate...
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new_prefix(const void *svm, const SVM_Value_PluginEntryPoint pep, const char *prefix)
This function creates a plugin entry point value the SVM can store in its memories from a plugin entr...
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new(const void *svm, const SVM_Value_String plugin_name, const SVM_Value_String entry_name)
This function creates a plugin entry point value the SVM can store in its memories from two string va...
SVM_FUNCTION void svm_value_pluginentrypoint_set_entry(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String entry_name, const char *prefix)
This function replaces the entry name contained in a plugin entry point value from a string value and...
SVM_FUNCTION void svm_value_pluginentrypoint_set_plugin__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String plugin_name)
This function replaces the plugin name contained in a plugin entry point value from a SVM_String.
SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String entry_name, const char *prefix)
This function replaces the entry name contained in a plugin entry point value from a SVM_String and a...
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new_null(const void *svm)
This function creates a plugin entry point value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Boolean svm_value_type_is_pluginentrypoint(const void *svm, const SVM_Value value)
This function checks whether a value contains a plugin entry point.
SVM_FUNCTION void svm_value_pluginentrypoint_set_pluginentry__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *plugin_name, const char *entry_name, const char *prefix)
This function replaces the plugin name and the entry name contained in a plugin entry point value fro...
SVM_FUNCTION void svm_value_pluginentrypoint_set(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_PluginEntryPoint pluginentrypoint)
This function replaces the pluginentrypoint value by another pluginentrypoint value.
SVM_FUNCTION void svm_value_pluginentrypoint_set_plugin(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String plugin_name)
This function replaces the plugin name contained in a plugin entry point value from a string value.
SVM_FUNCTION void svm_value_pluginentrypoint_set_pluginentry__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String plugin_name, const SVM_String entry_name, const char *prefix)
This function replaces the plugin name and the entry name contained in a plugin entry point value fro...
SVM_FUNCTION SVM_String svm_value_pluginentrypoint_get_entry(const void *svm, const SVM_Value_PluginEntryPoint pep)
This function extracts the entry name contained in a plugin entry point value.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new__raw(const void *svm, const char *plugin_name, const char *entry_name)
This function creates a plugin entry point value the SVM can store in its memories from two C nul-ter...
SVM_FUNCTION SVM_Status_Boolean svm_plugin_has_function_details(const void *svm, const SVM_Value_PluginEntryPoint function, const SVM_Size argc, const SVM_Parameter argv[], SVM_Parameter result)
This function checks whether a call to a function is possible, and provide details on failure.
SVM_FUNCTION SVM_Boolean svm_plugin_has_instruction(const void *svm, const SVM_Value_PluginEntryPoint instruction, const SVM_Size argc, const SVM_Parameter argv[], SVM_Parameter result)
This function checks whether a call to an instruction is possible.
SVM_FUNCTION SVM_Boolean svm_plugin_has_function(const void *svm, const SVM_Value_PluginEntryPoint function, const SVM_Size argc, const SVM_Parameter argv[], SVM_Parameter result)
This function checks whether a call to a function is possible.
SVM_FUNCTION SVM_Boolean svm_plugin_has_scheduler(const void *svm, const SVM_Value_PluginEntryPoint scheduler)
This function checks whether a scheduler exists.
SVM_FUNCTION SVM_Boolean svm_plugin_has_sequencer(const void *svm, const SVM_Value_PluginEntryPoint sequencer)
This function checks whether a sequencer exists.
SVM_FUNCTION SVM_Boolean svm_plugin_has_type(const void *svm, const SVM_Value_PluginEntryPoint type)
This function checks whether a type exists.
SVM_FUNCTION SVM_Boolean svm_plugin_has_structure(const void *svm, const SVM_Value_PluginEntryPoint structure)
This function checks whether a structure exists.
SVM_FUNCTION SVM_Boolean svm_plugin_has_interruption(const void *svm, const SVM_Value_PluginEntryPoint interruption)
This function checks whether an interruption exists.
SVM_FUNCTION SVM_String svm_plugin_print(const void *svm)
This function extracts a string representation of all defined objects in plugins.
SVM_FUNCTION SVM_Value_Plugin svm_value_plugin_new_const__raw(const void *svm, const SVM_Value_PluginEntryPoint type, const char *value)
This function creates a plugin defined value the SVM can store in its memories from a plugin entry po...
SVM_FUNCTION void svm_value_plugin_set(const void *svm, SVM_Value_Plugin value, const SVM_Value_Plugin plugin)
This function replaces the plugin value by another plugin value.
SVM_FUNCTION void svm_value_plugin_set_internal(const void *svm, SVM_Value_Plugin value, const SVM_Value_PluginEntryPoint type, void *internal_value)
This function replaces the type and the value contained in a plugin value from specific values.
SVM_FUNCTION SVM_Boolean svm_value_type_is_plugin(const void *svm, const SVM_Value value, const SVM_Value_PluginEntryPoint type)
This function checks whether a value contains a plugin value of a given type.
SVM_FUNCTION SVM_Value_Plugin svm_value_plugin_new(const void *svm, const SVM_Value_PluginEntryPoint type, void *value)
This function creates a plugin defined value the SVM can store in its memories from a plugin entry po...
SVM_FUNCTION void * svm_value_plugin_get_internal(const void *svm, const SVM_Value_Plugin plugin)
This function extracts the plugin value contained in a plugin value.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_plugin_get_type(const void *svm, const SVM_Value_Plugin plugin)
This function extracts the plugin value type contained in a plugin value.
SVM_FUNCTION SVM_Value_Plugin svm_value_plugin_new_null(const void *svm, const SVM_Value_PluginEntryPoint type)
This function creates a plugin value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Value_Plugin svm_value_plugin_new_const(const void *svm, const SVM_Value_PluginEntryPoint type, const SVM_Value_String value)
This function creates a plugin defined value the SVM can store in its memories from a plugin entry po...
SVM_FUNCTION SVM_Value_Plugin svm_value_plugin_new_const__string(const void *svm, const SVM_Value_PluginEntryPoint type, const SVM_String value)
This function creates a plugin defined value the SVM can store in its memories from a plugin entry po...
SVM_FUNCTION SVM_Value_Plugin_Comparison svm_value_plugin_compare_convert(const void *svm, const SVM_Comparison_Result compare)
This function transforms a SVM_Comparison_Result into a SVM_Value_Plugin_Comparison.
SVM_FUNCTION void svm_memory_pointer_set_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Memory_Zone zone)
This function changes the memory under the pointer to the types of the zone.
SVM_FUNCTION SVM_Value_String * svm_memory_pointer_list_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function extracts all alias having their pointer within a memory zone.
SVM_FUNCTION SVM_Value_String * svm_memory_pointer_expand_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function extracts all alias having their pointer intersecting with a memory zone.
SVM_FUNCTION SVM_Value_Pointer * svm_memory_pointer_list_accessible(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function extracts all memory zones recursively accessible from a pointer in a memory.
SVM_FUNCTION SVM_Boolean svm_memory_pointer_has_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function checks whether an alias pointer has an intersection with a memory zone.
SVM_FUNCTION SVM_Memory_Zone svm_memory_pointer_get_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function creates a memory zone corresponding to the pointer.
SVM_FUNCTION SVM_Value_Pointer svm_value_pointer_new(const void *svm, const SVM_Value_Integer address, const SVM_Value_Integer size)
This function creates a pointer value the SVM can store in its memories from two integer values.
SVM_FUNCTION SVM_Size svm_value_pointer_get_size(const void *svm, const SVM_Value_Pointer pointer)
This function extracts the pointer size contained in a pointer value.
SVM_FUNCTION void svm_value_pointer_set(const void *svm, SVM_Value_Pointer value, const SVM_Value_Pointer pointer)
This function replaces the pointer value by another pointer value.
SVM_FUNCTION void svm_value_pointer_set_size__raw(const void *svm, SVM_Value_Pointer value, const SVM_Size size)
This function replaces the size contained in a pointer value from a raw value.
SVM_FUNCTION SVM_Address svm_value_pointer_get_address(const void *svm, const SVM_Value_Pointer pointer)
This function extracts the first pointer address contained in a pointer value.
SVM_FUNCTION SVM_Value_Pointer svm_value_pointer_new_null(const void *svm)
This function creates a pointer value the SVM can store in its memories without a value.
SVM_FUNCTION void svm_value_pointer_set_addresssize__raw(const void *svm, SVM_Value_Pointer value, const SVM_Address address, const SVM_Size size)
This function replaces the first address and the size contained in a pointer value from two raw value...
SVM_FUNCTION void svm_value_pointer_set_address__raw(const void *svm, SVM_Value_Pointer value, const SVM_Address address)
This function replaces the first address contained in a pointer value from a raw value.
SVM_FUNCTION void svm_value_pointer_set_addresssize(const void *svm, SVM_Value_Pointer value, const SVM_Value_Integer address, const SVM_Value_Integer size)
This function replaces the first address and the size contained in a pointer value from two integer v...
SVM_FUNCTION SVM_Boolean svm_value_type_is_pointer(const void *svm, const SVM_Value value)
This function checks whether a value contains a pointer.
SVM_FUNCTION SVM_Value_Pointer svm_value_pointer_new__raw(const void *svm, const SVM_Address address, const SVM_Size size)
This function creates a pointer value the SVM can store in its memories from two raw integers.
SVM_FUNCTION void svm_value_pointer_set_address(const void *svm, SVM_Value_Pointer value, const SVM_Value_Integer address)
This function replaces the first address contained in a pointer value from an integer value.
SVM_FUNCTION void svm_value_pointer_set_size(const void *svm, SVM_Value_Pointer value, const SVM_Value_Integer size)
This function replaces the size contained in a pointer value from an integer value.
SVM_FUNCTION SVM_Value * svm_memory_extract_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size)
This function reads an array of values from a memory.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Memory_Zone zone)
This function reads an array of values from a memory with detailed type checking.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_type__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Type type)
This function reads an array of values from a memory with unique type checking.
SVM_FUNCTION SVM_Value * svm_memory_extract_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function extracts an array of values from a memory.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_type_external(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Value_PluginEntryPoint type)
This function reads an array of values from a memory with unique type checking against an external ty...
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_type(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Type type)
This function reads an array of values from a memory with unique type checking.
SVM_FUNCTION SVM_Value svm_memory_read_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function reads a value from a memory.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_type_external__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Value_PluginEntryPoint type)
This function reads an array of values from a memory with unique type checking against an external ty...
SVM_FUNCTION SVM_Value svm_memory_read_address_type_external(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_PluginEntryPoint type)
This function reads a value from a memory having a given plugin type.
SVM_FUNCTION SVM_Value svm_memory_read_address_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type)
This function reads a value from a memory having a given type.
SVM_FUNCTION SVM_Value svm_memory_extract_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address)
This function extracts a value from a memory.
SVM_FUNCTION SVM_Value svm_memory_read_address_type_internal(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type_Internal type)
This function reads a value from a memory having a given internal type.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_type_internal__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Type_Internal type)
This function reads an array of values from a memory with unique type checking against an internal ty...
SVM_FUNCTION SVM_Value * svm_memory_read_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size)
This function reads an array of values from a memory.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_zone__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Memory_Zone zone)
This function reads an array of values from a memory with detailed type checking.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function reads an array of values from a memory.
SVM_FUNCTION SVM_Value * svm_memory_read_pointer_type_internal(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Type_Internal type)
This function reads an array of values from a memory with unique type checking against an internal ty...
SVM_FUNCTION void svm_processor_returnstack_move_level(const void *svm, const SVM_Kernel kernel, const SVM_Index start, const SVM_Index end, const SVM_Index target)
This function moves a portion of the return stack to another level.
SVM_FUNCTION SVM_Index svm_processor_returnstack_find_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Index start)
This function returns the level of the nearest frame having the flag raised within the return stack o...
SVM_FUNCTION SVM_Size svm_processor_returnstack_get_size(const void *svm, const SVM_Kernel kernel)
This function retrieves the return stack size of a processor.
SVM_FUNCTION SVM_Index svm_processor_returnstack_find_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Index start)
This function returns the level of the nearest frame having the flag raised within the return stack o...
SVM_FUNCTION void svm_processor_returnstack_swap_level(const void *svm, const SVM_Kernel kernel, const SVM_Index level)
This function swaps a state in the return stack of a processor with the current state of this process...
SVM_FUNCTION SVM_Index svm_processor_returnstack_find_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Index start)
This function returns the level of the nearest frame having the flag raised within the return stack o...
SVM_FUNCTION SVM_Boolean svm_process_has_scheduler(const void *svm, const SVM_Process process)
This function checks whether a process is attached to a scheduler.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_process_get_scheduler(const void *svm, const SVM_Process process)
This function returns the name of the scheduler of a process.
SVM_FUNCTION SVM_String svm_scheduler_print(const void *svm, const SVM_Scheduler scheduler)
This function returns a string representation of the state of a scheduler.
SVM_FUNCTION SVM_Boolean svm_scheduler_notify(const void *svm, const SVM_Scheduler scheduler, const SVM_Size argc, const SVM_Parameter argv[])
This function sends a notification to a scheduler with an integer value parameter.
SVM_FUNCTION SVM_Scheduler svm_scheduler_get_current(const void *svm)
This function retrieves the current scheduler.
SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Size argc, const SVM_Parameter argv[])
This function detaches a process from a scheduler with an integer value parameter.
SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Size argc, const SVM_Parameter argv[])
This function attaches a process to a scheduler with an integer value parameter.
SVM_FUNCTION SVM_Scheduler svm_scheduler_get(const void *svm, const SVM_Value_PluginEntryPoint name)
This function retrieves a scheduler from its name.
SVM_FUNCTION void * svm_scheduler_get_internal(const void *svm, const SVM_Scheduler scheduler)
This function extracts the internal structure of a scheduler.
SVM_FUNCTION void svm_variable_scope_set_local(const void *svm, const SVM_Variable variable)
This function alters the scope of the given variable.
SVM_FUNCTION SVM_Boolean svm_variable_scope_is_global(const void *svm, const SVM_Variable variable)
This function checks whether a variable is global.
SVM_FUNCTION SVM_Boolean svm_variable_scope_is_local(const void *svm, const SVM_Variable variable)
This function checks whether a variable is local.
SVM_FUNCTION void svm_variable_scope_set_shared(const void *svm, const SVM_Variable variable)
This function alters the scope of the given variable.
SVM_FUNCTION void svm_variable_scope_reset_shared(const void *svm, const SVM_Variable variable)
This function alters the scope of the given variable.
SVM_FUNCTION SVM_Boolean svm_variable_scope_is_shared(const void *svm, const SVM_Variable variable)
This function checks whether a variable is shared.
SVM_FUNCTION void svm_variable_scope_set_global(const void *svm, const SVM_Variable variable)
This function alters the scope of the given variable.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_process_get_sequencer(const void *svm, const SVM_Process process)
This function returns the name of the sequencer of a process.
SVM_FUNCTION SVM_String svm_process_sequencer_print(const void *svm, const SVM_Process process)
This function produces a string representation of the sequencer of a process.
SVM_FUNCTION void * svm_process_sequencer_get_internal(const void *svm, const SVM_Process process)
This function returns the internal structure pointer of the sequencer of a process.
SVM_FUNCTION SVM_String svm_kernel_get_coredump(const void *svm, const SVM_Kernel kernel)
This function returns a string representation of the complete kernel, like in core dumps.
SVM_FUNCTION SVM_Kernel_State svm_kernel_get_state(const void *svm, const SVM_Kernel kernel)
This function returns the status of the kernel.
SVM_FUNCTION void svm_kernel_set_accesscontrol(const void *svm, const SVM_Kernel kernel, const SVM_AccessControl access_control)
This function modifies the access control of a protected kernel.
SVM_FUNCTION SVM_AccessControl svm_kernel_get_accesscontrol(const void *svm, const SVM_Kernel kernel)
This function retrieves the access control of a protected kernel.
SVM_FUNCTION SVM_Boolean svm_kernel_has_lastreturnisshutdown(const void *svm, const SVM_Kernel kernel)
This function checks whether a kernel has the last_return_is_shutdown option.
SVM_FUNCTION SVM_Boolean svm_kernel_has_protectedmode(const void *svm, const SVM_Kernel kernel)
This function checks whether a kernel has the protected_mode option.
SVM_FUNCTION SVM_Value_Interruption svm_kernel_get_interruption(const void *svm, const SVM_Kernel kernel)
This function retrieves the interruption of an interrupted kernel.
SVM_FUNCTION SVM_Boolean svm_kernel_has_transmitinterruption(const void *svm, const SVM_Kernel kernel)
This function checks whether a kernel has the transmit_interruptions option.
SVM_FUNCTION SVM_Boolean svm_kernel_is_runnable(const void *svm, const SVM_Kernel kernel)
This function checks whether a kernel can be executed.
SVM_FUNCTION SVM_String svm_kernel_print(const void *svm, const SVM_Kernel kernel)
This function returns a string representation of the kernel.
SVM_FUNCTION SVM_Boolean svm_kernel_is_terminated(const void *svm, const SVM_Kernel kernel)
This function checks whether a kernel has completed its execution.
SVM_FUNCTION SVM_String svm_process_get_coredump(const void *svm, const SVM_Process process)
This function returns a string representation of the process.
SVM_FUNCTION SVM_String svm_process_get_name(const void *svm, const SVM_Process process)
This function retrieves the name of a process.
SVM_FUNCTION SVM_Value_Interruption svm_process_get_interruption(const void *svm, const SVM_Process process)
This function retrieves the interruption of an interrupted process.
SVM_FUNCTION SVM_Process_State svm_process_get_state(const void *svm, const SVM_Process process)
This function retrieves the status of a process.
SVM_FUNCTION SVM_String svm_process_print(const void *svm, const SVM_Process process)
This function returns a minimal string representation of the process state.
SVM_FUNCTION SVM_String svm_string_new(const void *svm, const char *buffer, const SVM_Size size)
This function creates an instance of a SVM_String from a memory buffer.
SVM_FUNCTION SVM_Boolean svm_string_is_equal__buffer(const void *svm, const SVM_String left, const char *buffer, const SVM_Size size)
This function compares a SVM_String to a C buffer.
SVM_FUNCTION SVM_String svm_string_new__buffer(const void *svm, const SVM_Size size)
This function creates an instance of a SVM_String uninitialised.
SVM_FUNCTION SVM_String svm_string_join__raw(const void *svm, const SVM_String first, const char *second)
This function creates an instance of a SVM_String from a SVM_String and a C nul terminated string.
SVM_FUNCTION SVM_String svm_string_join__buffer(const void *svm, const SVM_String first, const char *second, const SVM_Size size)
This function creates an instance of a SVM_String from a SVM_String and a memory buffer.
SVM_FUNCTION SVM_String svm_string_join(const void *svm, const SVM_String first, const SVM_String second)
This function creates an instance of a SVM_String from two SVM_String.
SVM_FUNCTION SVM_Boolean svm_string_is_equal(const void *svm, const SVM_String left, const SVM_String right)
This function compares two SVM_String.
SVM_FUNCTION SVM_String svm_string_new__raw(const void *svm, const char *string)
This function creates an instance of a SVM_String from a C string.
SVM_FUNCTION SVM_Boolean svm_string_is_equal__raw(const void *svm, const SVM_String left, const char *right)
This function compares a SVM_String to a C string.
SVM_FUNCTION SVM_String svm_value_string_get(const void *svm, const SVM_Value_String string)
This function extracts the SVM_String contained in a string value.
SVM_FUNCTION SVM_Value_String svm_value_string_new__buffer(const void *svm, const char *string, const SVM_Size size)
This function creates a string value the SVM can store in its memories from a memory buffer.
SVM_FUNCTION void svm_value_string_set(const void *svm, SVM_Value_String value, const SVM_String string)
This function replaces the raw string contained in a string value from a SVM_String.
SVM_FUNCTION SVM_Value_String svm_value_string_new__raw(const void *svm, const char *string)
This function creates a string value the SVM can store in its memories from a C nul-terminated string...
SVM_FUNCTION void svm_value_string_set__buffer(const void *svm, SVM_Value_String value, const char *string, const SVM_Size size)
This function replaces the raw string contained in a string value from a buffer.
SVM_FUNCTION SVM_Value_String svm_value_string_new(const void *svm, const SVM_String string)
This function creates a string value the SVM can store in its memories from a SVM_String.
SVM_FUNCTION SVM_Boolean svm_value_type_is_string(const void *svm, const SVM_Value value)
This function checks whether a value contains a string.
SVM_FUNCTION void svm_value_string_set__raw(const void *svm, SVM_Value_String value, const char *string)
This function replaces the raw string contained in a string value from a C null-terminated string.
SVM_FUNCTION SVM_Value_String svm_value_string_new_null(const void *svm)
This function creates a string value the SVM can store in its memories without a value.
SVM_FUNCTION SVM_Structure svm_parameter_structure_get(const void *svm, const SVM_Parameter parameter)
This function converts a parameter into a structure.
SVM_FUNCTION SVM_Parameter svm_parameter_structure_new(const void *svm, const SVM_Structure structure)
This function creates a parameter from a structure.
SVM_FUNCTION SVM_Boolean svm_parameter_type_is_structure(const void *svm, const SVM_Parameter parameter)
This function checks whether a parameter contains a structure.
SVM_FUNCTION SVM_Structure svm_structure_new_null(const void *svm, const SVM_Value_PluginEntryPoint type)
This function creates a new null structure handler.
SVM_FUNCTION void * svm_structure_get_internal(const void *svm, const SVM_Value_PluginEntryPoint type, const SVM_Structure structure)
This function retrieves the raw pointer of a structure.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_structure_get_type(const void *svm, const SVM_Structure structure)
This function retrieves the type name of a structure.
SVM_FUNCTION SVM_Structure svm_structure_new(const void *svm, const SVM_Value_PluginEntryPoint type, void *value)
This function creates a new structure handler to convey a raw structure pointer.
SVM_FUNCTION SVM_Structure svm_structure_copy(const void *svm, const SVM_Structure structure)
This function copies a structure.
SVM_FUNCTION SVM_Value_Symbol svm_code_symbol_get_address(const void *svm, const SVM_Code code, const SVM_Value_String label)
This function solves a symbol in a SVM code given as a string value.
SVM_FUNCTION SVM_Boolean svm_code_symbol_has_address(const void *svm, const SVM_Code code, const SVM_Value_String label)
This function checks whether a SVM code defines a symbol given as a string value.
SVM_FUNCTION SVM_Boolean svm_code_symbol_has_address__raw(const void *svm, const SVM_Code code, const char *label)
This function checks whether a SVM code defines a symbol given as a C nul-terminated string.
SVM_FUNCTION SVM_Value_Symbol svm_code_symbol_get_address__raw(const void *svm, const SVM_Code code, const char *label)
This function solves a symbol in a SVM code given as a C nul-terminated string.
SVM_FUNCTION SVM_Value_Symbol svm_code_symbol_get_address__string(const void *svm, const SVM_Code code, const SVM_String label)
This function solves a symbol in a SVM code given as a SVM_String.
SVM_FUNCTION SVM_Value_String * svm_code_symbol_list(const void *svm, const SVM_Code code)
This function returns all symbols defined in a SVM code.
SVM_FUNCTION SVM_Boolean svm_code_symbol_has_address__string(const void *svm, const SVM_Code code, const SVM_String label)
This function checks whether a SVM code defines a symbol given as a SVM_String.
SVM_FUNCTION void svm_value_symbol_set_codeaddress(const void *svm, SVM_Value_Symbol value, const SVM_Code code, const SVM_Address address)
This function replaces the code and the address contained in a symbol value from a SVM_Code and a SVM...
SVM_FUNCTION SVM_Boolean svm_value_type_is_symbol(const void *svm, const SVM_Value value)
This function checks whether a value contains a symbol.
SVM_FUNCTION SVM_Value_Symbol svm_value_symbol_new(const void *svm, const SVM_Code code, const SVM_Address symbol)
This function creates a symbol value the SVM can store in its memories from a SVM code and an address...
SVM_FUNCTION SVM_Address svm_value_symbol_get_address(const void *svm, const SVM_Value_Symbol symbol)
This function extracts the address contained in a symbol value.
SVM_FUNCTION SVM_Value_Symbol svm_value_symbol_new_null(const void *svm)
This function creates a symbol value the SVM can store in its memories without a value.
SVM_FUNCTION void svm_value_symbol_set_address(const void *svm, SVM_Value_Symbol value, const SVM_Address address)
This function replaces the address contained in a symbol value from a SVM_Address.
SVM_FUNCTION SVM_String svm_value_symbol_get_location(const void *svm, const SVM_Value_Symbol symbol)
This function returns the location string of the instruction referenced by a symbol.
SVM_FUNCTION void svm_value_symbol_set_code(const void *svm, SVM_Value_Symbol value, const SVM_Code code)
This function replaces the code contained in a symbol value from a SVM_Code.
SVM_FUNCTION void svm_value_symbol_set(const void *svm, SVM_Value_Symbol value, const SVM_Value_Symbol symbol)
This function replaces the symbol value by another symbol value.
SVM_FUNCTION SVM_Code svm_value_symbol_get_code(const void *svm, const SVM_Value_Symbol symbol)
This function extracts the code contained in a symbol value.
SVM_FUNCTION void svm_memory_synchronisation_disable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function disables the synchronisation on a memory zone.
SVM_FUNCTION void svm_memory_synchronisation_enable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer)
This function enables the synchronisation on a memory zone.
SVM_FUNCTION SVM_Value_PluginEntryPoint svm_type_get_external(const void *svm, const SVM_Type type)
This function retrieves the external type from a type.
SVM_FUNCTION SVM_Comparison_Result svm_type_compare(const void *svm, const SVM_Type left, const SVM_Type right)
This function compares two types.
SVM_FUNCTION SVM_Boolean svm_type_equal_external(const void *svm, const SVM_Type type, const SVM_Value_PluginEntryPoint external)
This function checks whether a type is a specific external type.
SVM_FUNCTION SVM_Type_Internal svm_type_get_internal(const void *svm, const SVM_Type type)
This function retrieves the internal type from a type.
SVM_FUNCTION SVM_Boolean svm_type_is_internal(const void *svm, const SVM_Type type)
This function indicates whether a type contains an internal value type.
SVM_FUNCTION SVM_String svm_type_print(const void *svm, const SVM_Type type)
This function renders a type as a string.
SVM_FUNCTION SVM_Type svm_type_new_external(const void *svm, const SVM_Value_PluginEntryPoint external)
This function creates an external value type.
SVM_FUNCTION SVM_Boolean svm_type_equal_internal(const void *svm, const SVM_Type type, const SVM_Type_Internal internal)
This function checks whether a type is a specific internal type.
SVM_FUNCTION SVM_Type svm_type_new_internal(const void *svm, const SVM_Type_Internal internal)
This function creates an internal value type.
SVM_FUNCTION SVM_Boolean svm_type_is_external(const void *svm, const SVM_Type type)
This function indicates whether a type contains an external value type.
SVM_FUNCTION SVM_Type svm_type_copy(const void *svm, const SVM_Type type)
This function creates a copy of a type.
SVM_FUNCTION SVM_Parameter svm_parameter_value_new(const void *svm, const SVM_Value value)
This function creates a parameter from a value.
SVM_FUNCTION SVM_Value svm_parameter_value_get(const void *svm, const SVM_Parameter parameter)
This function converts a parameter into a value.
SVM_FUNCTION SVM_Boolean svm_parameter_type_is_value(const void *svm, const SVM_Parameter parameter)
This function checks whether a callback parameter is a value.
SVM_FUNCTION SVM_Comparison_Result svm_value_compare(const void *svm, const SVM_Value left, const SVM_Value right)
This function compares two values.
SVM_FUNCTION SVM_String svm_value_print(const void *svm, const SVM_Value value)
This function extracts a string representation of a value.
SVM_FUNCTION SVM_Value * svm_value_array_new(const void *svm, SVM_Size size)
This function creates an array of values.
SVM_FUNCTION SVM_Value svm_value_copy(const void *svm, const SVM_Value value)
This function creates a copy from a value.
SVM_FUNCTION SVM_Boolean svm_value_is_equal(const void *svm, const SVM_Value left, const SVM_Value right)
This function checks whether two values are equal.
SVM_FUNCTION SVM_Boolean svm_value_state_set_movable(const void *svm, const SVM_Value value)
This function flags a value as movable.
SVM_FUNCTION SVM_Boolean svm_value_state_is_constant(const void *svm, const SVM_Value value)
This function checks whether a value is a constant.
SVM_FUNCTION SVM_Boolean svm_value_state_is_movable(const void *svm, const SVM_Value value)
This function checks whether a value is movable.
SVM_FUNCTION SVM_Boolean svm_value_state_is_null(const void *svm, const SVM_Value value)
This function checks whether a value is a null value.
SVM_FUNCTION SVM_Type svm_value_type_get(const void *svm, const SVM_Value value)
This function extracts the type from a value.
SVM_FUNCTION SVM_String svm_value_type_print(const void *svm, const SVM_Value value)
This function prints the type from a value.
SVM_FUNCTION SVM_Parameter svm_parameter_variable_new(const void *svm, const SVM_Variable variable)
This function creates a parameter from a variable.
SVM_FUNCTION SVM_Boolean svm_parameter_type_is_variable(const void *svm, const SVM_Parameter parameter)
This function checks whether a parameter contains a variable.
SVM_FUNCTION SVM_Variable svm_parameter_variable_get(const void *svm, const SVM_Parameter parameter)
This function converts a parameter into a variable.
SVM_FUNCTION SVM_Variable * svm_variable_array_new(const void *svm, SVM_Size size)
This function creates an array of variables.
SVM_FUNCTION void svm_variable_delete(const void *svm, const SVM_Variable variable)
This function alters the scope of the given variable.
SVM_FUNCTION void svm_memory_write_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size, const SVM_Value *values)
This function writes an array of values into a memory.
SVM_FUNCTION void svm_memory_write_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value)
This function writes a value into a memory.
SVM_FUNCTION void svm_memory_write_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Value *values)
This function writes an array of values into a memory.
Definition svm.h:452
SVM_Boolean type
TRUE when values types does not have the same type, FALSE otherwise.
Definition svm.h:462
SVM_Boolean null
TRUE when at least one value was null, FALSE otherwise.
Definition svm.h:463
SVM_Boolean superior_or_equal
TRUE when comparison is an order and left value is superior or equal to right value,...
Definition svm.h:458
SVM_Boolean inferior
TRUE when comparison is an order and left value is inferior to right value, FALSE otherwise.
Definition svm.h:455
SVM_Boolean equal
TRUE when values are equal, FALSE otherwise.
Definition svm.h:453
SVM_Boolean inferior_or_equal
TRUE when comparison is an order and left value is inferior or equal to right value,...
Definition svm.h:456
SVM_Boolean order
TRUE when comparison supports ordering, FALSE when comparison supports only equivalence.
Definition svm.h:459
SVM_Boolean different
TRUE when values are different, FALSE otherwise.
Definition svm.h:454
SVM_Boolean superior
TRUE when comparison is an order and left value is superior to right value, FALSE otherwise.
Definition svm.h:457
SVM_Boolean weak
TRUE when values are not comparables (a fallback arbitrary comparison is used instead),...
Definition svm.h:461
SVM_Boolean total
TRUE when comparison is an order and this comparison is total, FALSE otherwise.
Definition svm.h:460
Definition svm.h:493
SVM_String _details
Contains additional human readable details.
Definition svm.h:495
SVM_Boolean _value
Contains the status value.
Definition svm.h:494
Definition svm.h:336
SVM_Size size
Definition svm.h:344
const char * string
The memory buffer associated to this string is always held by the SVM when it has been returned from ...
Definition svm.h:337