Simple Virtual Machine
A simple but flexible virtual machine
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
114#ifdef __cplusplus
115extern "C"
116{
117#endif
118
127#define SVM_TYPE
131#define SVM_TYPE_BEGIN
135#define SVM_TYPE_END
139#define SVM_FUNCTION
140
163/*
164 * These types correspond to specific objects used in this API.
165 */
166
172SVM_TYPE typedef const void* SVM_Variable;
173
181SVM_TYPE typedef const void* SVM_Parameter;
182
188SVM_TYPE typedef const void* SVM_Structure;
189
195SVM_TYPE typedef const void* SVM_AccessControl;
196
202SVM_TYPE typedef const void* SVM_Memory_Zone;
203
211SVM_TYPE typedef const void* SVM_Lock;
212
218SVM_TYPE typedef const void* SVM_LockGuard_Read;
219
225SVM_TYPE typedef const void* SVM_LockGuard_Write;
226
234SVM_TYPE typedef const void* SVM_Event_Queue;
235
242
248SVM_TYPE typedef unsigned long int SVM_Address;
249
253SVM_TYPE typedef unsigned long int SVM_Index;
254
258SVM_TYPE typedef unsigned long int SVM_Size;
259
271SVM_TYPE typedef const void* SVM_Code;
272
285SVM_TYPE typedef const void* SVM_Kernel;
286
305SVM_TYPE typedef const void* SVM_Process;
306
312SVM_TYPE typedef const void* SVM_Process_Lock;
313
321SVM_TYPE typedef const void* SVM_Scheduler;
322
328SVM_TYPE typedef const void* SVM_Debug_Form;
329
334typedef struct
335{
336 const char *string;
344} SVM_String;
346
353typedef enum
354{
355 FALSE = 0,
356 TRUE = 1
359
366typedef enum
367{
379
385typedef enum
386{
398 GENERIC
401
407typedef enum
408{
410 HARDWARE
413
419typedef enum
420{
422 TIMER
425
431typedef enum
432{
441 ERROR
444
450typedef enum
451{
454 GLOBAL
457
462typedef struct
463{
477
484typedef enum
485{
495 COMPARISON_WEAK = 0x10
498
503typedef struct
504{
509
510#define SVM_NOTHING
516
522SVM_TYPE typedef const void* SVM_Type;
523
531SVM_TYPE typedef const void* SVM_Value;
532
540SVM_TYPE typedef const void* SVM_Value_Integer;
541
549SVM_TYPE typedef const void* SVM_Value_String;
550
558SVM_TYPE typedef const void* SVM_Value_Boolean;
559
571SVM_TYPE typedef const void* SVM_Value_Pointer;
572
580SVM_TYPE typedef const void* SVM_Value_Library;
581
593SVM_TYPE typedef const void* SVM_Value_Symbol;
594
607
620
630SVM_TYPE typedef const void* SVM_Value_Plugin;
631
639SVM_TYPE typedef const void* SVM_Value_Automatic;
640
668
705SVM_FUNCTION void svm_plugin_configure(void *plugin_handler, const char *plugin_configuration, const char api_signature[], const char svm_version[]);
706
763
776SVM_FUNCTION void svm_variable_delete(const void *svm, const SVM_Variable variable);
777
795SVM_FUNCTION void svm_variable_scope_set_global(const void *svm, const SVM_Variable variable);
796
811SVM_FUNCTION void svm_variable_scope_set_local(const void *svm, const SVM_Variable variable);
812
831SVM_FUNCTION void svm_variable_scope_set_shared(const void *svm, const SVM_Variable variable);
832
847SVM_FUNCTION void svm_variable_scope_reset_shared(const void *svm, const SVM_Variable variable);
848
863
880
897
916
928
940
952
964
976
988
1000
1012
1024
1036
1048
1060
1072
1084
1096
1123SVM_FUNCTION SVM_String svm_string_new(const void *svm, const char *buffer, const SVM_Size size);
1124
1139SVM_FUNCTION SVM_String svm_string_new__raw(const void *svm, const char *string);
1140
1152
1164SVM_FUNCTION SVM_String svm_string_join(const void *svm, const SVM_String first, const SVM_String second);
1165
1177SVM_FUNCTION SVM_String svm_string_join__raw(const void *svm, const SVM_String first, const char *second);
1178
1191SVM_FUNCTION SVM_String svm_string_join__buffer(const void *svm, const SVM_String first, const char *second, const SVM_Size size);
1192
1204SVM_FUNCTION SVM_Boolean svm_string_is_equal(const void *svm, const SVM_String left, const SVM_String right);
1205
1217SVM_FUNCTION SVM_Boolean svm_string_is_equal__raw(const void *svm, const SVM_String left, const char *right);
1218
1231SVM_FUNCTION SVM_Boolean svm_string_is_equal__buffer(const void *svm, const SVM_String left, const char *buffer, const SVM_Size size);
1232
1262
1277
1289
1310
1327
1341
1354SVM_FUNCTION SVM_Parameter svm_parameter_marker_new__raw(const void *svm, const char *marker);
1355
1373SVM_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);
1374
1392SVM_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);
1393
1409SVM_FUNCTION SVM_Index svm_parameter_marker_find_separator(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start);
1410
1433SVM_FUNCTION SVM_Index svm_parameter_marker_find_closing(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index opening);
1434
1456
1473
1488
1502SVM_FUNCTION SVM_Parameter svm_parameter_keyword_new__raw(const void *svm, const char *keyword);
1503
1524
1540
1555
1574
1589
1601
1617
1635SVM_FUNCTION void svm_machine_shutdown(const void *svm, const SVM_Value_Integer return_code);
1636
1646SVM_FUNCTION void svm_machine_shutdown__raw(const void *svm, const unsigned long int return_code);
1647
1656SVM_FUNCTION void svm_machine_trace(const void *svm, const SVM_Value_String trace);
1657
1666SVM_FUNCTION void svm_machine_trace__string(const void *svm, const SVM_String trace);
1667
1676SVM_FUNCTION void svm_machine_trace__raw(const void *svm, const char *trace);
1677
1693
1706SVM_FUNCTION SVM_String svm_machine_config(const void *svm, const char *key);
1707
1719
1731
1752
1776SVM_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);
1777
1789
1807SVM_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);
1808
1827
1839
1851
1863
1875
1897
1909
1921
1938
1955
1972
2002
2014
2026
2041SVM_FUNCTION void* svm_structure_get_internal(const void *svm, const SVM_Value_PluginEntryPoint type, const SVM_Structure structure);
2042
2055
2128
2142
2166
2178
2190
2202
2215
2228
2239SVM_FUNCTION SVM_Type svm_type_copy(const void *svm, const SVM_Type type);
2240
2251SVM_FUNCTION SVM_String svm_type_print(const void *svm, const SVM_Type type);
2252
2267
2282
2296SVM_FUNCTION SVM_Comparison_Result svm_type_compare(const void *svm, const SVM_Type left, const SVM_Type right);
2297
2332SVM_FUNCTION SVM_Value_Integer svm_value_integer_new(const void *svm, const long int integer);
2333
2344
2356
2371SVM_FUNCTION long long int svm_value_integer_get(const void *svm, const SVM_Value_Integer integer);
2372
2387SVM_FUNCTION void svm_value_integer_set(const void *svm, SVM_Value_Integer value, const long long int integer);
2388
2407
2418SVM_FUNCTION SVM_Value_String svm_value_string_new__raw(const void *svm, const char *string);
2419
2433SVM_FUNCTION SVM_Value_String svm_value_string_new__buffer(const void *svm, const char *string, const SVM_Size size);
2434
2445
2457
2473
2488SVM_FUNCTION void svm_value_string_set(const void *svm, SVM_Value_String value, const SVM_String string);
2489
2501SVM_FUNCTION void svm_value_string_set__raw(const void *svm, SVM_Value_String value, const char *string);
2502
2517SVM_FUNCTION void svm_value_string_set__buffer(const void *svm, SVM_Value_String value, const char *string, const SVM_Size size);
2518
2537
2549
2560
2572
2588
2603SVM_FUNCTION void svm_value_boolean_set(const void *svm, SVM_Value_Boolean value, const SVM_Boolean boolean);
2604
2619SVM_FUNCTION void svm_value_boolean_set__raw(const void *svm, SVM_Value_Boolean value, const int boolean);
2620
2641
2654
2665
2677
2693
2709
2725SVM_FUNCTION void svm_value_pointer_set(const void *svm, SVM_Value_Pointer value, const SVM_Value_Pointer pointer);
2726
2743
2759
2776
2792
2810
2826SVM_FUNCTION void svm_value_pointer_set_addresssize__raw(const void *svm, SVM_Value_Pointer value, const SVM_Address address, const SVM_Size size);
2827
2846
2857
2869
2885
2901SVM_FUNCTION void svm_value_library_set(const void *svm, SVM_Value_Library value, const SVM_Value_Library library);
2902
2918
2937SVM_FUNCTION SVM_Value_Symbol svm_value_symbol_new(const void *svm, const SVM_Code code, const SVM_Address symbol);
2938
2949
2961
2977
2993
3008
3024SVM_FUNCTION void svm_value_symbol_set(const void *svm, SVM_Value_Symbol value, const SVM_Value_Symbol symbol);
3025
3040SVM_FUNCTION void svm_value_symbol_set_code(const void *svm, SVM_Value_Symbol value, const SVM_Code code);
3041
3056SVM_FUNCTION void svm_value_symbol_set_address(const void *svm, SVM_Value_Symbol value, const SVM_Address address);
3057
3073SVM_FUNCTION void svm_value_symbol_set_codeaddress(const void *svm, SVM_Value_Symbol value, const SVM_Code code, const SVM_Address address);
3074
3094
3107
3119SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new__raw(const void *svm, const char *plugin_name, const char *entry_name);
3120
3135
3146
3158
3174
3190
3207
3223
3239
3254SVM_FUNCTION void svm_value_pluginentrypoint_set_plugin__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *plugin_name);
3255
3271SVM_FUNCTION void svm_value_pluginentrypoint_set_entry(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String entry_name, const char *prefix);
3272
3288SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String entry_name, const char *prefix);
3289
3305SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *entry_name, const char *prefix);
3306
3323SVM_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);
3324
3341SVM_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);
3342
3359SVM_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);
3360
3384
3401
3418
3435
3452
3469
3480
3492
3509
3526
3543
3560
3576
3592
3610
3627
3646
3665
3684
3704
3724
3744
3768
3781
3797
3813
3829
3843
3859
3878
3899SVM_FUNCTION void svm_value_plugin_set(const void *svm, SVM_Value_Plugin value, const SVM_Value_Plugin plugin);
3900
3922SVM_FUNCTION void svm_value_plugin_set_internal(const void *svm, SVM_Value_Plugin value, const SVM_Value_PluginEntryPoint type, void *internal_value);
3923
3938
3958
3977
3989
4006
4020SVM_FUNCTION SVM_Boolean svm_value_is_equal(const void *svm, const SVM_Value left, const SVM_Value right);
4021
4038
4050
4062
4077
4093SVM_FUNCTION SVM_Value svm_value_copy(const void *svm, const SVM_Value value);
4094
4107SVM_FUNCTION SVM_String svm_value_print(const void *svm, const SVM_Value value);
4108
4122
4161SVM_FUNCTION SVM_Code svm_code_new(const void *svm, const SVM_Value_String name, const SVM_Value_String source);
4162
4180SVM_FUNCTION SVM_Code svm_code_new__string(const void *svm, const SVM_String name, const SVM_String source);
4181
4199SVM_FUNCTION SVM_Code svm_code_new__raw(const void *svm, const char *name, const char *source);
4200
4215
4230
4244SVM_FUNCTION SVM_Variable svm_code_compile__raw(const void *svm, const char *name, const char *source);
4245
4259
4271
4285SVM_FUNCTION SVM_String svm_code_print(const void *svm, const SVM_Code code);
4286
4304
4317
4329SVM_FUNCTION SVM_Boolean svm_code_label_has_address__raw(const void *svm, const SVM_Code code, const char *label);
4330
4350
4366
4382
4397SVM_FUNCTION SVM_Address svm_code_label_get_address__raw(const void *svm, const SVM_Code code, const char *label);
4398
4418
4431
4443SVM_FUNCTION SVM_Boolean svm_code_symbol_has_address__raw(const void *svm, const SVM_Code code, const char *label);
4444
4472
4486
4500
4513SVM_FUNCTION SVM_Value_Symbol svm_code_symbol_get_address__raw(const void *svm, const SVM_Code code, const char *label);
4514
4536
4550
4564
4578
4592
4623SVM_FUNCTION SVM_AccessControl svm_accesscontrol_new(const void *svm, const unsigned long int *max_instructions, const unsigned long int *max_memory);
4624
4642
4656SVM_FUNCTION unsigned long int svm_accesscontrol_get_instructions(const void *svm, const SVM_AccessControl access_control);
4657
4672SVM_FUNCTION void svm_accesscontrol_set_instructions(const void *svm, SVM_AccessControl access_control, const unsigned long int instructions);
4673
4693
4707SVM_FUNCTION unsigned long int svm_accesscontrol_get_memory(const void *svm, const SVM_AccessControl access_control);
4708
4723SVM_FUNCTION void svm_accesscontrol_set_memory(const void *svm, SVM_AccessControl access_control, const unsigned long int memory);
4724
4776SVM_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);
4777
4804SVM_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);
4805
4818
4832
4855
4871
4887
4903
4919
4935
4951
4967SVM_FUNCTION void svm_kernel_set_accesscontrol(const void* svm, const SVM_Kernel kernel, const SVM_AccessControl access_control);
4968
4984
5002
5020
5038SVM_FUNCTION void svm_kernel_suspend(const void *svm, const SVM_Kernel kernel);
5039
5050SVM_FUNCTION void svm_kernel_terminate(const void *svm, const SVM_Kernel kernel);
5051
5075SVM_FUNCTION void svm_kernel_swap_memory(const void *svm, SVM_Kernel kernel1, SVM_Kernel kernel2);
5076
5118SVM_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);
5119
5137SVM_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);
5138
5156SVM_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);
5157
5187SVM_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);
5188
5218SVM_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);
5219
5249SVM_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);
5250
5280SVM_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);
5281
5311SVM_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);
5312
5342SVM_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);
5343
5356
5409
5433
5453
5474
5496SVM_FUNCTION void svm_process_run(const void *svm, const SVM_Process process, const SVM_Value_Integer delay);
5497
5512SVM_FUNCTION void svm_process_run__raw(const void *svm, const SVM_Process process, const unsigned long int delay);
5513
5526SVM_FUNCTION void svm_process_suspend(const void *svm, const SVM_Process process);
5527
5540SVM_FUNCTION void svm_process_terminate(const void *svm, const SVM_Process process);
5541
5555SVM_FUNCTION void svm_process_interrupt(const void *svm, const SVM_Process process, const SVM_Value_Interruption interruption);
5556
5578SVM_FUNCTION void svm_process_pause(const void *svm);
5579
5596SVM_FUNCTION void svm_process_resume(const void *svm);
5597
5645
5665
5684
5701
5720
5732
5746
5760
5774
5793
5808
5829
5847
5859
5890SVM_FUNCTION SVM_Boolean svm_process_kernel_attach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[]);
5891
5915SVM_FUNCTION SVM_Boolean svm_process_kernel_detach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[]);
5916
5932
5967
5978
5991SVM_FUNCTION void* svm_scheduler_get_internal(const void *svm, const SVM_Scheduler scheduler);
5992
6004
6028SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter);
6029
6053SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach__raw(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter);
6054
6078SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter);
6079
6103SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach__raw(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter);
6104
6116SVM_FUNCTION void svm_scheduler_notify(const void *svm, const SVM_Scheduler scheduler, const SVM_Value_Integer parameter);
6117
6129SVM_FUNCTION void svm_scheduler_notify__raw(const void *svm, const SVM_Scheduler scheduler, const unsigned long int parameter);
6130
6165
6188
6211
6231
6244
6263
6277
6296
6308SVM_FUNCTION void svm_event_queue_join(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address);
6309
6323SVM_FUNCTION void svm_event_queue_leave(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address);
6324
6343SVM_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);
6344
6364SVM_FUNCTION void svm_event_queue_broadcast(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address origin, const SVM_Structure event);
6365
6393
6423SVM_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);
6424
6452SVM_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);
6453
6490
6506
6523
6539SVM_FUNCTION void svm_processor_jump_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
6540
6556SVM_FUNCTION void svm_processor_jump_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
6557
6574SVM_FUNCTION void svm_processor_call_local(const void *svm, const SVM_Kernel kernel, const SVM_Address function, const SVM_Value_Pointer parameters);
6575
6592SVM_FUNCTION void svm_processor_call_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol function, const SVM_Value_Pointer parameters);
6593
6614SVM_FUNCTION void svm_processor_call_identical(const void *svm, const SVM_Kernel kernel, const SVM_Boolean transfer);
6615
6631SVM_FUNCTION void svm_processor_return(const void *svm, const SVM_Kernel kernel);
6632
6641
6665SVM_FUNCTION void svm_processor_current_sleep(const void *svm, const SVM_Value_Integer seconds, const SVM_Value_Integer milliseconds, const SVM_Boolean soft);
6666
6689SVM_FUNCTION void svm_processor_current_sleep__raw(const void *svm, const unsigned long int seconds, const unsigned long int milliseconds, const SVM_Boolean soft);
6690
6713
6728SVM_FUNCTION void svm_processor_returnstack_swap_level(const void *svm, const SVM_Kernel kernel, const SVM_Index level);
6729
6750
6771
6791SVM_FUNCTION SVM_Index svm_processor_returnstack_find_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Index start);
6792
6816SVM_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);
6817
6840
6854SVM_FUNCTION void svm_processor_set_currentpointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
6855
6880SVM_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);
6881
6899SVM_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);
6900
6917SVM_FUNCTION void svm_processor_interruptionhandler_reset(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Object_Level level);
6918
6940
6963
6982SVM_FUNCTION void svm_processor_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
6983
6999
7017
7034SVM_FUNCTION void svm_processor_hold_interruption(const void *svm, const SVM_Kernel kernel);
7035
7053
7071
7087
7101SVM_FUNCTION void svm_processor_set_currentinterruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
7102
7119
7132SVM_FUNCTION void svm_processor_current_raise_error_internal__raw(const void *svm, const SVM_Interruption_Internal interruption, const char *message);
7133
7148SVM_FUNCTION void svm_processor_current_raise_error_external__raw(const void *svm, const SVM_Value_PluginEntryPoint interruption, const char *message);
7149
7173
7190
7206SVM_FUNCTION SVM_Boolean svm_processor_has_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag);
7207
7225
7244SVM_FUNCTION void svm_processor_set_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level);
7245
7264SVM_FUNCTION void svm_processor_set_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level);
7265
7284SVM_FUNCTION void svm_processor_set_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level);
7285
7304SVM_FUNCTION void svm_processor_reset_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level);
7305
7324SVM_FUNCTION void svm_processor_reset_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level);
7325
7344SVM_FUNCTION void svm_processor_reset_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level);
7345
7380SVM_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);
7381
7409SVM_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);
7410
7430
7450
7467SVM_FUNCTION void svm_processor_instructionoverride_reset_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Object_Level level);
7468
7486
7516
7528SVM_FUNCTION void svm_memory_zone_append(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Value_Integer times);
7529
7541SVM_FUNCTION void svm_memory_zone_append__raw(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Size times);
7542
7555
7567
7580
7592
7603
7619SVM_FUNCTION void svm_memory_zone_insert_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone insert);
7620
7638SVM_FUNCTION void svm_memory_zone_remove_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Size size);
7639
7654SVM_FUNCTION void svm_memory_zone_replace_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone replace);
7655
7672
7684
7699
7709
7719
7750
7785
7801SVM_FUNCTION void svm_memory_free(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7802
7831SVM_FUNCTION void svm_memory_scope_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7832
7850SVM_FUNCTION void svm_memory_scope_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7851
7868SVM_FUNCTION void svm_memory_scope_set_local_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
7869
7886SVM_FUNCTION void svm_memory_scope_set_local_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
7887
7904SVM_FUNCTION void svm_memory_scope_set_local_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
7905
7922SVM_FUNCTION void svm_memory_scope_set_global_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
7923
7940SVM_FUNCTION void svm_memory_scope_set_global_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
7941
7958SVM_FUNCTION void svm_memory_scope_set_global_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
7959
7983
8000
8018SVM_FUNCTION SVM_Type svm_memory_address_get_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8019
8039SVM_FUNCTION SVM_Boolean svm_memory_address_is_writable(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value);
8040
8059SVM_FUNCTION void svm_memory_address_set_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type);
8060
8103
8139
8161
8179
8199
8220SVM_FUNCTION void svm_memory_pointer_set_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Memory_Zone zone);
8221
8248SVM_FUNCTION SVM_Value svm_memory_read_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8249
8270SVM_FUNCTION SVM_Value svm_memory_read_address_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type);
8271
8293
8318
8338SVM_FUNCTION SVM_Value svm_memory_extract_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8339
8362SVM_FUNCTION SVM_Value* svm_memory_read_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
8363
8387SVM_FUNCTION SVM_Value* svm_memory_read_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size);
8388
8411SVM_FUNCTION SVM_Value* svm_memory_read_pointer_type(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Type type);
8412
8436SVM_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);
8437
8461
8485SVM_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);
8486
8510
8535
8561SVM_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);
8562
8587SVM_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);
8588
8612
8636SVM_FUNCTION SVM_Value* svm_memory_extract_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size);
8637
8666SVM_FUNCTION void svm_memory_write_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value);
8667
8694SVM_FUNCTION void svm_memory_write_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Value* values);
8695
8723SVM_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);
8724
8748SVM_FUNCTION void svm_memory_add_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias, const SVM_Value_Pointer pointer);
8749
8766SVM_FUNCTION void svm_memory_add_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias, const SVM_Value_Pointer pointer);
8767
8784SVM_FUNCTION void svm_memory_add_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias, const SVM_Value_Pointer pointer);
8785
8802
8819
8835SVM_FUNCTION SVM_Boolean svm_memory_has_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8836
8855
8874
8892SVM_FUNCTION SVM_Value_Pointer svm_memory_alias_get_pointer__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8893
8909SVM_FUNCTION void svm_memory_remove_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
8910
8926SVM_FUNCTION void svm_memory_remove_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
8927
8943SVM_FUNCTION void svm_memory_remove_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8944
8973SVM_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);
8974
8997SVM_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);
8998
9024SVM_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);
9025
9051SVM_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);
9052
9071SVM_FUNCTION void svm_memory_address_shift(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_Integer shift);
9072
9091SVM_FUNCTION void svm_memory_address_shift__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, signed long int shift);
9092
9122SVM_FUNCTION void svm_memory_synchronisation_enable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
9123
9141SVM_FUNCTION void svm_memory_synchronisation_disable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
9142
9169SVM_FUNCTION void svm_debug_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message);
9170
9182SVM_FUNCTION void svm_debug_break__string(const void *svm, const SVM_Kernel kernel, const SVM_String message);
9183
9195SVM_FUNCTION void svm_debug_break__raw(const void *svm, const SVM_Kernel kernel, const char *message);
9196
9210SVM_FUNCTION void svm_debug_notify(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message);
9211
9225SVM_FUNCTION void svm_debug_notify__string(const void *svm, const SVM_Kernel kernel, const SVM_String message);
9226
9240SVM_FUNCTION void svm_debug_notify__raw(const void *svm, const SVM_Kernel kernel, const char *message);
9241
9256SVM_FUNCTION void svm_debug_synchronise(const void *svm, const SVM_Value value);
9257
9275SVM_FUNCTION void svm_debug_breakpoint_add_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
9276
9289SVM_FUNCTION void svm_debug_breakpoint_remove_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
9290
9303SVM_FUNCTION void svm_debug_breakpoint_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
9304
9317SVM_FUNCTION void svm_debug_breakpoint_remove_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
9318
9331SVM_FUNCTION void svm_debug_breakpoint_add_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9332
9345SVM_FUNCTION void svm_debug_breakpoint_remove_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9346
9359SVM_FUNCTION void svm_debug_breakpoint_add_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9360
9373SVM_FUNCTION void svm_debug_breakpoint_remove_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9374
9387SVM_FUNCTION void svm_debug_breakpoint_add_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9388
9401SVM_FUNCTION void svm_debug_breakpoint_remove_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9402
9415SVM_FUNCTION void svm_debug_breakpoint_add_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9416
9429SVM_FUNCTION void svm_debug_breakpoint_remove_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9430
9448SVM_FUNCTION SVM_Debug_Form svm_debug_form_new(const void *svm, const char *title);
9449
9460SVM_FUNCTION void svm_debug_form_append_checkbox(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_Boolean default_value);
9461
9474SVM_FUNCTION void svm_debug_form_append_checkbox__raw(const void *svm, SVM_Debug_Form form, const char *label, const int default_value);
9475
9493SVM_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);
9494
9509SVM_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);
9510
9525SVM_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);
9526
9541SVM_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);
9542
9557SVM_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);
9558
9573SVM_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);
9574
9586SVM_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);
9587
9605
9610#ifdef __cplusplus
9611}
9612#endif
9613#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:619
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:241
SVM_TYPE typedef const void * SVM_Kernel
This type is used to represent an atomic execution environment.
Definition: svm.h:285
SVM_TYPE typedef const void * SVM_Event_Queue
This type is used as a complex synchronisation facility.
Definition: svm.h:234
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:522
SVM_Process_State
This type represents the status of a process.
Definition: svm.h:432
SVM_TYPE typedef const void * SVM_Code
This type is used to represent a section of code of the SVM.
Definition: svm.h:271
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:218
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:549
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:571
SVM_TYPE typedef SVM_Process_State SVM_Kernel_State
This type represents the status of a kernel.
Definition: svm.h:515
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:188
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:580
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:630
SVM_Boolean
This type corresponds to a simple boolean.
Definition: svm.h:354
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:606
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:593
SVM_TYPE typedef const void * SVM_Lock
This type is used as a simple synchronisation facility.
Definition: svm.h:211
SVM_TYPE typedef const void * SVM_Value_Automatic
This type is used to represent a null automatic value.
Definition: svm.h:639
SVM_TYPE typedef const void * SVM_AccessControl
This type is used to represent quotas on code execution.
Definition: svm.h:195
SVM_TYPE typedef unsigned long int SVM_Size
This type is used to represent an object size.
Definition: svm.h:258
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:328
SVM_Object_Level
This type corresponds to the level of definition of an object.
Definition: svm.h:451
SVM_Type_Internal
This type corresponds to value types the SVM can store in its memory.
Definition: svm.h:367
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:181
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:202
SVM_Interruption_Internal
This type corresponds to interruption types the SVM can use to stop program executions.
Definition: svm.h:386
SVM_TYPE typedef const void * SVM_Process
This type is used to represent an execution thread in the SVM.
Definition: svm.h:305
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:312
SVM_TYPE typedef unsigned long int SVM_Index
This type is used to represent an index.
Definition: svm.h:253
SVM_TYPE typedef const void * SVM_Scheduler
This type is used to represent an execution scheduler.
Definition: svm.h:321
SVM_Interruption_Kind
This type represents the two major classes of interruptions the SVM can handle.
Definition: svm.h:408
SVM_Notification_Type
This type represents the reason that triggered a callback call to a specific scheduler function.
Definition: svm.h:420
SVM_TYPE typedef const void * SVM_Variable
This type is used to represent any object managed by the SVM.
Definition: svm.h:172
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:558
SVM_TYPE typedef unsigned long int SVM_Address
This type is used to represent:
Definition: svm.h:248
SVM_Value_Plugin_Comparison
This type corresponds to the result of SVM_Value_Plugin comparison.
Definition: svm.h:485
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:225
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:531
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:540
@ DEBUG
the process is blocked in a state it answers only to the debugger
Definition: svm.h:438
@ RUNNING
the process lets the processor of the current kernel executing instructions
Definition: svm.h:433
@ SUSPENDED
the process is in a light sleep, and can return in running mode anytime
Definition: svm.h:434
@ ERROR
the process reached an invalid state
Definition: svm.h:441
@ CONTINUE
the process is blocked in a state in which it will only accept an execution request
Definition: svm.h:436
@ ZOMBIE
the process has completed its execution and is not destroyed yet
Definition: svm.h:439
@ INTERRUPTED
the process has completed its execution on a non-handled interruption
Definition: svm.h:440
@ LOCKED
the process is temporarly owned by someone and can not return in running mode
Definition: svm.h:437
@ WAITING
the process is blocked in a state in which it may not answer to scheduler requests
Definition: svm.h:435
@ FALSE
self-explained
Definition: svm.h:355
@ TRUE
self-explained
Definition: svm.h:356
@ LOCAL
the object is located in the current state of the processor
Definition: svm.h:452
@ CASCADE
the object is located in the current state and all sub states of the processor
Definition: svm.h:453
@ GLOBAL
the object is located in the processor
Definition: svm.h:454
@ AUTOMATIC
generic type to be replaced at first assignation
Definition: svm.h:368
@ INTEGER
integer type corresponding to long long int
Definition: svm.h:369
@ LIBRARY
library type corresponding to SVM_Code
Definition: svm.h:373
@ BOOLEAN
boolean type corresponding to SVM_Boolean
Definition: svm.h:371
@ INTERRUPTION
interruption type corresponds to processor interruptions
Definition: svm.h:376
@ POINTER
pointer type used to target memory zones
Definition: svm.h:372
@ SYMBOL
symbol type used to target code location
Definition: svm.h:374
@ STRING
string type corresponding to SVM_String
Definition: svm.h:370
@ PLUGIN_ENTRY_POINT
plugin entry point type used to identify a plugin object
Definition: svm.h:375
@ SECURITY
raised on security violation or quota overflow
Definition: svm.h:395
@ DEVICE
raised on SIGPIPE, SIGBUS
Definition: svm.h:388
@ PROCESSOR
raised on SIGILL or processor invalid action
Definition: svm.h:393
@ FIRST
raised on SIGUSR1
Definition: svm.h:390
@ SECOND
raised on SIGUSR2
Definition: svm.h:394
@ NUMERIC
raised on SIGFPE
Definition: svm.h:392
@ CLONE
raised on SIGCHLD
Definition: svm.h:387
@ TERMINATE
raised on SIGTERM, SIGINT, SIGHUP, SIGALRM
Definition: svm.h:396
@ TERMINAL
raised on SIGTTIN, SIGTTOU, SIGWINCH
Definition: svm.h:397
@ GENERIC
raised on all other signals
Definition: svm.h:398
@ MEMORY
raised on memory access failure
Definition: svm.h:391
@ FAILURE
raised on SIGABRT, SIGQUIT or generic failure in instruction
Definition: svm.h:389
@ SOFTWARE
the class of interruptions coming from instructions and execution errors
Definition: svm.h:409
@ HARDWARE
the class of interruptions coming from the OS signals
Definition: svm.h:410
@ TIMER
the callback has been triggered after a timer expiration
Definition: svm.h:422
@ NOTIFICATION
the callback has been triggered manually by the plugin developper
Definition: svm.h:421
@ EQUIVALENCE_EQUAL
Used to specify that values are equal.
Definition: svm.h:486
@ EQUIVALENCE_DIFFERENT
Used to specify that values are different.
Definition: svm.h:487
@ ORDER_SUPERIOR
Used to specify that left value is superior to right value.
Definition: svm.h:490
@ COMPARISON_STRONG
Used to specify that the real comparison has been computed.
Definition: svm.h:494
@ ORDER_PARTIAL
Used to specify that the order is partial (unused when an equivalence is used, set automatically when...
Definition: svm.h:493
@ ORDER_UNCOMPARABLE
Used to specify that left value and the right value can not be compared.
Definition: svm.h:491
@ COMPARISON_WEAK
Used to specify that an heuristic or arbitrary comparison has been computed.
Definition: svm.h:495
@ ORDER_TOTAL
Used to specify that the order is total (unused when an equivalence is used)
Definition: svm.h:492
@ ORDER_INFERIOR
Used to specify that left value is inferior to right value.
Definition: svm.h:489
@ ORDER_EQUAL
Used to specify that values are equal.
Definition: svm.h:488
#define SVM_FUNCTION
Declares a monoline SVM API function.
Definition: svm.h:139
#define SVM_TYPE_BEGIN
Declares the begining of a multiline SVM type.
Definition: svm.h:131
#define SVM_TYPE
Declares a monoline SVM type.
Definition: svm.h:127
#define SVM_TYPE_END
Declares the end of a multiline SVM type.
Definition: svm.h:135
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_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 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 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 void svm_scheduler_notify(const void *svm, const SVM_Scheduler scheduler, const SVM_Value_Integer parameter)
This function sends a notification to a scheduler with an integer value parameter.
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 void svm_scheduler_notify__raw(const void *svm, const SVM_Scheduler scheduler, const unsigned long int parameter)
This function sends a notification to a scheduler with a raw integer parameter.
SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach__raw(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter)
This function attaches a process to a scheduler with a raw integer parameter.
SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter)
This function attaches a process to a scheduler with an integer value parameter.
SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter)
This function detaches a process from 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__raw(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter)
This function detaches a process from a scheduler with a raw integer 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:463
SVM_Boolean type
TRUE when values types does not have the same type, FALSE otherwise.
Definition: svm.h:473
SVM_Boolean null
TRUE when at least one value was null, FALSE otherwise.
Definition: svm.h:474
SVM_Boolean superior_or_equal
TRUE when comparison is an order and left value is superior or equal to right value,...
Definition: svm.h:469
SVM_Boolean inferior
TRUE when comparison is an order and left value is inferior to right value, FALSE otherwise.
Definition: svm.h:466
SVM_Boolean equal
TRUE when values are equal, FALSE otherwise.
Definition: svm.h:464
SVM_Boolean inferior_or_equal
TRUE when comparison is an order and left value is inferior or equal to right value,...
Definition: svm.h:467
SVM_Boolean order
TRUE when comparison supports ordering, FALSE when comparison supports only equivalence.
Definition: svm.h:470
SVM_Boolean different
TRUE when values are different, FALSE otherwise.
Definition: svm.h:465
SVM_Boolean superior
TRUE when comparison is an order and left value is superior to right value, FALSE otherwise.
Definition: svm.h:468
SVM_Boolean weak
TRUE when values are not comparables (a fallback arbitrary comparison is used instead),...
Definition: svm.h:472
SVM_Boolean total
TRUE when comparison is an order and this comparison is total, FALSE otherwise.
Definition: svm.h:471
Definition: svm.h:504
SVM_String _details
Contains additional human readable details.
Definition: svm.h:506
SVM_Boolean _value
Contains the status value.
Definition: svm.h:505
Definition: svm.h:335
SVM_Size size
Definition: svm.h:343
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:336