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
113#ifdef __cplusplus
114extern "C"
115{
116#endif
117
126#define SVM_TYPE
130#define SVM_TYPE_BEGIN
134#define SVM_TYPE_END
138#define SVM_FUNCTION
139
162/*
163 * These types correspond to specific objects used in this API.
164 */
165
171SVM_TYPE typedef const void* SVM_Variable;
172
180SVM_TYPE typedef const void* SVM_Parameter;
181
187SVM_TYPE typedef const void* SVM_Structure;
188
194SVM_TYPE typedef const void* SVM_AccessControl;
195
201SVM_TYPE typedef const void* SVM_Memory_Zone;
202
210SVM_TYPE typedef const void* SVM_Lock;
211
217SVM_TYPE typedef const void* SVM_LockGuard_Read;
218
224SVM_TYPE typedef const void* SVM_LockGuard_Write;
225
233SVM_TYPE typedef const void* SVM_Event_Queue;
234
241
247SVM_TYPE typedef unsigned long int SVM_Address;
248
252SVM_TYPE typedef unsigned long int SVM_Index;
253
257SVM_TYPE typedef unsigned long int SVM_Size;
258
270SVM_TYPE typedef const void* SVM_Code;
271
284SVM_TYPE typedef const void* SVM_Kernel;
285
304SVM_TYPE typedef const void* SVM_Process;
305
311SVM_TYPE typedef const void* SVM_Process_Lock;
312
320SVM_TYPE typedef const void* SVM_Scheduler;
321
327SVM_TYPE typedef const void* SVM_Debug_Form;
328
333typedef struct
334{
335 const char *string;
343} SVM_String;
345
352typedef enum
353{
354 FALSE = 0,
355 TRUE = 1
358
365typedef enum
366{
378
384typedef enum
385{
397 GENERIC
400
406typedef enum
407{
409 HARDWARE
412
418typedef enum
419{
421 TIMER
424
430typedef enum
431{
440 ERROR
443
449typedef enum
450{
453 GLOBAL
456
461typedef struct
462{
476
483typedef enum
484{
494 COMPARISON_WEAK = 0x10
497
502typedef struct
503{
508
509#define SVM_NOTHING
515
521SVM_TYPE typedef const void* SVM_Type;
522
530SVM_TYPE typedef const void* SVM_Value;
531
539SVM_TYPE typedef const void* SVM_Value_Integer;
540
548SVM_TYPE typedef const void* SVM_Value_String;
549
557SVM_TYPE typedef const void* SVM_Value_Boolean;
558
570SVM_TYPE typedef const void* SVM_Value_Pointer;
571
579SVM_TYPE typedef const void* SVM_Value_Library;
580
592SVM_TYPE typedef const void* SVM_Value_Symbol;
593
606
619
629SVM_TYPE typedef const void* SVM_Value_Plugin;
630
638SVM_TYPE typedef const void* SVM_Value_Automatic;
639
667
704SVM_FUNCTION void svm_plugin_configure(void *plugin_handler, const char *plugin_configuration, const char api_signature[], const char svm_version[]);
705
762
775SVM_FUNCTION void svm_variable_delete(const void *svm, const SVM_Variable variable);
776
794SVM_FUNCTION void svm_variable_scope_set_global(const void *svm, const SVM_Variable variable);
795
810SVM_FUNCTION void svm_variable_scope_set_local(const void *svm, const SVM_Variable variable);
811
830SVM_FUNCTION void svm_variable_scope_set_shared(const void *svm, const SVM_Variable variable);
831
846SVM_FUNCTION void svm_variable_scope_reset_shared(const void *svm, const SVM_Variable variable);
847
862
879
896
915
927
939
951
963
975
987
999
1011
1023
1035
1047
1059
1071
1083
1095
1122SVM_FUNCTION SVM_String svm_string_new(const void *svm, const char *buffer, const SVM_Size size);
1123
1138SVM_FUNCTION SVM_String svm_string_new__raw(const void *svm, const char *string);
1139
1151
1163SVM_FUNCTION SVM_String svm_string_join(const void *svm, const SVM_String first, const SVM_String second);
1164
1176SVM_FUNCTION SVM_String svm_string_join__raw(const void *svm, const SVM_String first, const char *second);
1177
1190SVM_FUNCTION SVM_String svm_string_join__buffer(const void *svm, const SVM_String first, const char *second, const SVM_Size size);
1191
1203SVM_FUNCTION SVM_Boolean svm_string_is_equal(const void *svm, const SVM_String left, const SVM_String right);
1204
1216SVM_FUNCTION SVM_Boolean svm_string_is_equal__raw(const void *svm, const SVM_String left, const char *right);
1217
1230SVM_FUNCTION SVM_Boolean svm_string_is_equal__buffer(const void *svm, const SVM_String left, const char *buffer, const SVM_Size size);
1231
1261
1276
1288
1309
1326
1340
1353SVM_FUNCTION SVM_Parameter svm_parameter_marker_new__raw(const void *svm, const char *marker);
1354
1372SVM_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);
1373
1391SVM_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);
1392
1408SVM_FUNCTION SVM_Index svm_parameter_marker_find_separator(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index start);
1409
1432SVM_FUNCTION SVM_Index svm_parameter_marker_find_closing(const void *svm, const SVM_Size argc, const SVM_Parameter argv[], const SVM_Index opening);
1433
1455
1472
1487
1501SVM_FUNCTION SVM_Parameter svm_parameter_keyword_new__raw(const void *svm, const char *keyword);
1502
1523
1539
1554
1573
1588
1600
1616
1634SVM_FUNCTION void svm_machine_shutdown(const void *svm, const SVM_Value_Integer return_code);
1635
1645SVM_FUNCTION void svm_machine_shutdown__raw(const void *svm, const unsigned long int return_code);
1646
1655SVM_FUNCTION void svm_machine_trace(const void *svm, const SVM_Value_String trace);
1656
1665SVM_FUNCTION void svm_machine_trace__string(const void *svm, const SVM_String trace);
1666
1675SVM_FUNCTION void svm_machine_trace__raw(const void *svm, const char *trace);
1676
1692
1705SVM_FUNCTION SVM_String svm_machine_config(const void *svm, const char *key);
1706
1718
1730
1751
1775SVM_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);
1776
1788
1806SVM_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);
1807
1826
1838
1850
1862
1874
1896
1908
1920
1937
1954
1971
2001
2013
2025
2040SVM_FUNCTION void* svm_structure_get_internal(const void *svm, const SVM_Value_PluginEntryPoint type, const SVM_Structure structure);
2041
2054
2127
2141
2165
2177
2189
2201
2214
2227
2238SVM_FUNCTION SVM_Type svm_type_copy(const void *svm, const SVM_Type type);
2239
2250SVM_FUNCTION SVM_String svm_type_print(const void *svm, const SVM_Type type);
2251
2266
2281
2295SVM_FUNCTION SVM_Comparison_Result svm_type_compare(const void *svm, const SVM_Type left, const SVM_Type right);
2296
2331SVM_FUNCTION SVM_Value_Integer svm_value_integer_new(const void *svm, const long int integer);
2332
2343
2355
2370SVM_FUNCTION long long int svm_value_integer_get(const void *svm, const SVM_Value_Integer integer);
2371
2386SVM_FUNCTION void svm_value_integer_set(const void *svm, SVM_Value_Integer value, const long long int integer);
2387
2406
2417SVM_FUNCTION SVM_Value_String svm_value_string_new__raw(const void *svm, const char *string);
2418
2432SVM_FUNCTION SVM_Value_String svm_value_string_new__buffer(const void *svm, const char *string, const SVM_Size size);
2433
2444
2456
2472
2487SVM_FUNCTION void svm_value_string_set(const void *svm, SVM_Value_String value, const SVM_String string);
2488
2500SVM_FUNCTION void svm_value_string_set__raw(const void *svm, SVM_Value_String value, const char *string);
2501
2516SVM_FUNCTION void svm_value_string_set__buffer(const void *svm, SVM_Value_String value, const char *string, const SVM_Size size);
2517
2536
2548
2559
2571
2587
2602SVM_FUNCTION void svm_value_boolean_set(const void *svm, SVM_Value_Boolean value, const SVM_Boolean boolean);
2603
2618SVM_FUNCTION void svm_value_boolean_set__raw(const void *svm, SVM_Value_Boolean value, const int boolean);
2619
2640
2653
2664
2676
2692
2708
2724SVM_FUNCTION void svm_value_pointer_set(const void *svm, SVM_Value_Pointer value, const SVM_Value_Pointer pointer);
2725
2742
2758
2775
2791
2809
2825SVM_FUNCTION void svm_value_pointer_set_addresssize__raw(const void *svm, SVM_Value_Pointer value, const SVM_Address address, const SVM_Size size);
2826
2845
2856
2868
2884
2900SVM_FUNCTION void svm_value_library_set(const void *svm, SVM_Value_Library value, const SVM_Value_Library library);
2901
2917
2936SVM_FUNCTION SVM_Value_Symbol svm_value_symbol_new(const void *svm, const SVM_Code code, const SVM_Address symbol);
2937
2948
2960
2976
2992
3007
3023SVM_FUNCTION void svm_value_symbol_set(const void *svm, SVM_Value_Symbol value, const SVM_Value_Symbol symbol);
3024
3039SVM_FUNCTION void svm_value_symbol_set_code(const void *svm, SVM_Value_Symbol value, const SVM_Code code);
3040
3055SVM_FUNCTION void svm_value_symbol_set_address(const void *svm, SVM_Value_Symbol value, const SVM_Address address);
3056
3072SVM_FUNCTION void svm_value_symbol_set_codeaddress(const void *svm, SVM_Value_Symbol value, const SVM_Code code, const SVM_Address address);
3073
3093
3106
3118SVM_FUNCTION SVM_Value_PluginEntryPoint svm_value_pluginentrypoint_new__raw(const void *svm, const char *plugin_name, const char *entry_name);
3119
3134
3145
3157
3173
3189
3206
3222
3238
3253SVM_FUNCTION void svm_value_pluginentrypoint_set_plugin__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *plugin_name);
3254
3270SVM_FUNCTION void svm_value_pluginentrypoint_set_entry(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_Value_String entry_name, const char *prefix);
3271
3287SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__string(const void *svm, SVM_Value_PluginEntryPoint value, const SVM_String entry_name, const char *prefix);
3288
3304SVM_FUNCTION void svm_value_pluginentrypoint_set_entry__raw(const void *svm, SVM_Value_PluginEntryPoint value, const char *entry_name, const char *prefix);
3305
3322SVM_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);
3323
3340SVM_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);
3341
3358SVM_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);
3359
3383
3400
3417
3434
3451
3468
3479
3491
3508
3525
3542
3559
3575
3591
3609
3626
3645
3664
3683
3703
3723
3743
3767
3780
3796
3812
3828
3842
3858
3877
3898SVM_FUNCTION void svm_value_plugin_set(const void *svm, SVM_Value_Plugin value, const SVM_Value_Plugin plugin);
3899
3921SVM_FUNCTION void svm_value_plugin_set_internal(const void *svm, SVM_Value_Plugin value, const SVM_Value_PluginEntryPoint type, void *internal_value);
3922
3937
3957
3976
3988
4005
4019SVM_FUNCTION SVM_Boolean svm_value_is_equal(const void *svm, const SVM_Value left, const SVM_Value right);
4020
4037
4049
4061
4076
4092SVM_FUNCTION SVM_Value svm_value_copy(const void *svm, const SVM_Value value);
4093
4106SVM_FUNCTION SVM_String svm_value_print(const void *svm, const SVM_Value value);
4107
4121
4160SVM_FUNCTION SVM_Code svm_code_new(const void *svm, const SVM_Value_String name, const SVM_Value_String source);
4161
4179SVM_FUNCTION SVM_Code svm_code_new__string(const void *svm, const SVM_String name, const SVM_String source);
4180
4198SVM_FUNCTION SVM_Code svm_code_new__raw(const void *svm, const char *name, const char *source);
4199
4214
4229
4243SVM_FUNCTION SVM_Variable svm_code_compile__raw(const void *svm, const char *name, const char *source);
4244
4258
4270
4284SVM_FUNCTION SVM_String svm_code_print(const void *svm, const SVM_Code code);
4285
4303
4316
4328SVM_FUNCTION SVM_Boolean svm_code_label_has_address__raw(const void *svm, const SVM_Code code, const char *label);
4329
4349
4365
4381
4396SVM_FUNCTION SVM_Address svm_code_label_get_address__raw(const void *svm, const SVM_Code code, const char *label);
4397
4417
4430
4442SVM_FUNCTION SVM_Boolean svm_code_symbol_has_address__raw(const void *svm, const SVM_Code code, const char *label);
4443
4471
4485
4499
4512SVM_FUNCTION SVM_Value_Symbol svm_code_symbol_get_address__raw(const void *svm, const SVM_Code code, const char *label);
4513
4535
4549
4563
4577
4591
4622SVM_FUNCTION SVM_AccessControl svm_accesscontrol_new(const void *svm, const unsigned long int *max_instructions, const unsigned long int *max_memory);
4623
4641
4655SVM_FUNCTION unsigned long int svm_accesscontrol_get_instructions(const void *svm, const SVM_AccessControl access_control);
4656
4671SVM_FUNCTION void svm_accesscontrol_set_instructions(const void *svm, SVM_AccessControl access_control, const unsigned long int instructions);
4672
4692
4706SVM_FUNCTION unsigned long int svm_accesscontrol_get_memory(const void *svm, const SVM_AccessControl access_control);
4707
4722SVM_FUNCTION void svm_accesscontrol_set_memory(const void *svm, SVM_AccessControl access_control, const unsigned long int memory);
4723
4775SVM_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);
4776
4803SVM_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);
4804
4817
4831
4854
4870
4886
4902
4918
4934
4950
4966SVM_FUNCTION void svm_kernel_set_accesscontrol(const void* svm, const SVM_Kernel kernel, const SVM_AccessControl access_control);
4967
4983
5001
5019
5037SVM_FUNCTION void svm_kernel_suspend(const void *svm, const SVM_Kernel kernel);
5038
5049SVM_FUNCTION void svm_kernel_terminate(const void *svm, const SVM_Kernel kernel);
5050
5074SVM_FUNCTION void svm_kernel_swap_memory(const void *svm, SVM_Kernel kernel1, SVM_Kernel kernel2);
5075
5117SVM_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);
5118
5136SVM_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);
5137
5155SVM_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);
5156
5186SVM_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);
5187
5217SVM_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);
5218
5248SVM_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);
5249
5279SVM_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);
5280
5310SVM_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);
5311
5341SVM_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);
5342
5355
5408
5432
5452
5473
5495SVM_FUNCTION void svm_process_run(const void *svm, const SVM_Process process, const SVM_Value_Integer delay);
5496
5511SVM_FUNCTION void svm_process_run__raw(const void *svm, const SVM_Process process, const unsigned long int delay);
5512
5525SVM_FUNCTION void svm_process_suspend(const void *svm, const SVM_Process process);
5526
5539SVM_FUNCTION void svm_process_terminate(const void *svm, const SVM_Process process);
5540
5554SVM_FUNCTION void svm_process_interrupt(const void *svm, const SVM_Process process, const SVM_Value_Interruption interruption);
5555
5577SVM_FUNCTION void svm_process_pause(const void *svm);
5578
5595SVM_FUNCTION void svm_process_resume(const void *svm);
5596
5644
5664
5683
5700
5719
5731
5745
5759
5773
5792
5807
5828
5846
5858
5889SVM_FUNCTION SVM_Boolean svm_process_kernel_attach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[]);
5890
5914SVM_FUNCTION SVM_Boolean svm_process_kernel_detach(const void *svm, SVM_Process process, const SVM_Kernel kernel, const SVM_Size argc, SVM_Parameter argv[]);
5915
5931
5966
5977
5990SVM_FUNCTION void* svm_scheduler_get_internal(const void *svm, const SVM_Scheduler scheduler);
5991
6003
6027SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter);
6028
6052SVM_FUNCTION SVM_Boolean svm_scheduler_process_attach__raw(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter);
6053
6077SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const SVM_Value_Integer parameter);
6078
6102SVM_FUNCTION SVM_Boolean svm_scheduler_process_detach__raw(const void *svm, const SVM_Scheduler scheduler, const SVM_Process process, const unsigned long int parameter);
6103
6115SVM_FUNCTION void svm_scheduler_notify(const void *svm, const SVM_Scheduler scheduler, const SVM_Value_Integer parameter);
6116
6128SVM_FUNCTION void svm_scheduler_notify__raw(const void *svm, const SVM_Scheduler scheduler, const unsigned long int parameter);
6129
6164
6187
6210
6230
6243
6262
6276
6295
6307SVM_FUNCTION void svm_event_queue_join(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address);
6308
6322SVM_FUNCTION void svm_event_queue_leave(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address address);
6323
6342SVM_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);
6343
6363SVM_FUNCTION void svm_event_queue_broadcast(const void *svm, SVM_Event_Queue event_queue, const SVM_Event_Queue_Address origin, const SVM_Structure event);
6364
6392
6422SVM_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);
6423
6451SVM_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);
6452
6489
6505
6522
6538SVM_FUNCTION void svm_processor_jump_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
6539
6555SVM_FUNCTION void svm_processor_jump_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
6556
6573SVM_FUNCTION void svm_processor_call_local(const void *svm, const SVM_Kernel kernel, const SVM_Address function, const SVM_Value_Pointer parameters);
6574
6591SVM_FUNCTION void svm_processor_call_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol function, const SVM_Value_Pointer parameters);
6592
6613SVM_FUNCTION void svm_processor_call_identical(const void *svm, const SVM_Kernel kernel, const SVM_Boolean transfer);
6614
6630SVM_FUNCTION void svm_processor_return(const void *svm, const SVM_Kernel kernel);
6631
6640
6664SVM_FUNCTION void svm_processor_current_sleep(const void *svm, const SVM_Value_Integer seconds, const SVM_Value_Integer milliseconds, const SVM_Boolean soft);
6665
6688SVM_FUNCTION void svm_processor_current_sleep__raw(const void *svm, const unsigned long int seconds, const unsigned long int milliseconds, const SVM_Boolean soft);
6689
6712
6727SVM_FUNCTION void svm_processor_returnstack_swap_level(const void *svm, const SVM_Kernel kernel, const SVM_Index level);
6728
6749
6770
6790SVM_FUNCTION SVM_Index svm_processor_returnstack_find_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Index start);
6791
6815SVM_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);
6816
6839
6853SVM_FUNCTION void svm_processor_set_currentpointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
6854
6879SVM_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);
6880
6898SVM_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);
6899
6916SVM_FUNCTION void svm_processor_interruptionhandler_reset(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption, const SVM_Object_Level level);
6917
6939
6962
6981SVM_FUNCTION void svm_processor_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
6982
6998
7016
7033SVM_FUNCTION void svm_processor_hold_interruption(const void *svm, const SVM_Kernel kernel);
7034
7052
7070
7086
7100SVM_FUNCTION void svm_processor_set_currentinterruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
7101
7118
7131SVM_FUNCTION void svm_processor_current_raise_error_internal__raw(const void *svm, const SVM_Interruption_Internal interruption, const char *message);
7132
7147SVM_FUNCTION void svm_processor_current_raise_error_external__raw(const void *svm, const SVM_Value_PluginEntryPoint interruption, const char *message);
7148
7172
7189
7205SVM_FUNCTION SVM_Boolean svm_processor_has_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag);
7206
7224
7243SVM_FUNCTION void svm_processor_set_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level);
7244
7263SVM_FUNCTION void svm_processor_set_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level);
7264
7283SVM_FUNCTION void svm_processor_set_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level);
7284
7303SVM_FUNCTION void svm_processor_reset_flag(const void *svm, const SVM_Kernel kernel, const SVM_Value_String flag, const SVM_Object_Level level);
7304
7323SVM_FUNCTION void svm_processor_reset_flag__string(const void *svm, const SVM_Kernel kernel, const SVM_String flag, const SVM_Object_Level level);
7324
7343SVM_FUNCTION void svm_processor_reset_flag__raw(const void *svm, const SVM_Kernel kernel, const char *flag, const SVM_Object_Level level);
7344
7379SVM_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);
7380
7408SVM_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);
7409
7429
7449
7466SVM_FUNCTION void svm_processor_instructionoverride_reset_local(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Object_Level level);
7467
7485
7515
7527SVM_FUNCTION void svm_memory_zone_append(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Value_Integer times);
7528
7540SVM_FUNCTION void svm_memory_zone_append__raw(const void *svm, SVM_Memory_Zone zone, const SVM_Type type, const SVM_Size times);
7541
7554
7566
7579
7591
7602
7618SVM_FUNCTION void svm_memory_zone_insert_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone insert);
7619
7637SVM_FUNCTION void svm_memory_zone_remove_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Size size);
7638
7653SVM_FUNCTION void svm_memory_zone_replace_memory_zone(const void *svm, SVM_Memory_Zone zone, const SVM_Index index, const SVM_Memory_Zone replace);
7654
7671
7683
7698
7708
7718
7749
7784
7800SVM_FUNCTION void svm_memory_free(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7801
7830SVM_FUNCTION void svm_memory_scope_set_local(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7831
7849SVM_FUNCTION void svm_memory_scope_set_global(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
7850
7867SVM_FUNCTION void svm_memory_scope_set_local_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
7868
7885SVM_FUNCTION void svm_memory_scope_set_local_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
7886
7903SVM_FUNCTION void svm_memory_scope_set_local_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
7904
7921SVM_FUNCTION void svm_memory_scope_set_global_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
7922
7939SVM_FUNCTION void svm_memory_scope_set_global_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
7940
7957SVM_FUNCTION void svm_memory_scope_set_global_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
7958
7982
7999
8017SVM_FUNCTION SVM_Type svm_memory_address_get_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8018
8038SVM_FUNCTION SVM_Boolean svm_memory_address_is_writable(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value);
8039
8058SVM_FUNCTION void svm_memory_address_set_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type);
8059
8102
8138
8160
8178
8198
8219SVM_FUNCTION void svm_memory_pointer_set_zone(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Memory_Zone zone);
8220
8247SVM_FUNCTION SVM_Value svm_memory_read_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8248
8269SVM_FUNCTION SVM_Value svm_memory_read_address_type(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Type type);
8270
8292
8317
8337SVM_FUNCTION SVM_Value svm_memory_extract_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
8338
8361SVM_FUNCTION SVM_Value* svm_memory_read_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
8362
8386SVM_FUNCTION SVM_Value* svm_memory_read_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size);
8387
8410SVM_FUNCTION SVM_Value* svm_memory_read_pointer_type(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Type type);
8411
8435SVM_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);
8436
8460
8484SVM_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);
8485
8509
8534
8560SVM_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);
8561
8586SVM_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);
8587
8611
8635SVM_FUNCTION SVM_Value* svm_memory_extract_pointer__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Size size);
8636
8665SVM_FUNCTION void svm_memory_write_address(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value value);
8666
8693SVM_FUNCTION void svm_memory_write_pointer(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer, const SVM_Value* values);
8694
8722SVM_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);
8723
8747SVM_FUNCTION void svm_memory_add_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias, const SVM_Value_Pointer pointer);
8748
8765SVM_FUNCTION void svm_memory_add_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias, const SVM_Value_Pointer pointer);
8766
8783SVM_FUNCTION void svm_memory_add_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias, const SVM_Value_Pointer pointer);
8784
8801
8818
8834SVM_FUNCTION SVM_Boolean svm_memory_has_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8835
8854
8873
8891SVM_FUNCTION SVM_Value_Pointer svm_memory_alias_get_pointer__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8892
8908SVM_FUNCTION void svm_memory_remove_alias(const void *svm, const SVM_Kernel kernel, const SVM_Value_String alias);
8909
8925SVM_FUNCTION void svm_memory_remove_alias__string(const void *svm, const SVM_Kernel kernel, const SVM_String alias);
8926
8942SVM_FUNCTION void svm_memory_remove_alias__raw(const void *svm, const SVM_Kernel kernel, const char *alias);
8943
8972SVM_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);
8973
8996SVM_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);
8997
9023SVM_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);
9024
9050SVM_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);
9051
9070SVM_FUNCTION void svm_memory_address_shift(const void *svm, const SVM_Kernel kernel, const SVM_Address address, const SVM_Value_Integer shift);
9071
9090SVM_FUNCTION void svm_memory_address_shift__raw(const void *svm, const SVM_Kernel kernel, const SVM_Address address, signed long int shift);
9091
9121SVM_FUNCTION void svm_memory_synchronisation_enable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
9122
9140SVM_FUNCTION void svm_memory_synchronisation_disable(const void *svm, const SVM_Kernel kernel, const SVM_Value_Pointer pointer);
9141
9168SVM_FUNCTION void svm_debug_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message);
9169
9181SVM_FUNCTION void svm_debug_break__string(const void *svm, const SVM_Kernel kernel, const SVM_String message);
9182
9194SVM_FUNCTION void svm_debug_break__raw(const void *svm, const SVM_Kernel kernel, const char *message);
9195
9209SVM_FUNCTION void svm_debug_notify(const void *svm, const SVM_Kernel kernel, const SVM_Value_String message);
9210
9224SVM_FUNCTION void svm_debug_notify__string(const void *svm, const SVM_Kernel kernel, const SVM_String message);
9225
9239SVM_FUNCTION void svm_debug_notify__raw(const void *svm, const SVM_Kernel kernel, const char *message);
9240
9255SVM_FUNCTION void svm_debug_synchronise(const void *svm, const SVM_Value value);
9256
9274SVM_FUNCTION void svm_debug_breakpoint_add_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
9275
9288SVM_FUNCTION void svm_debug_breakpoint_remove_break(const void *svm, const SVM_Kernel kernel, const SVM_Value_Symbol symbol);
9289
9302SVM_FUNCTION void svm_debug_breakpoint_add_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
9303
9316SVM_FUNCTION void svm_debug_breakpoint_remove_interruption(const void *svm, const SVM_Kernel kernel, const SVM_Value_Interruption interruption);
9317
9330SVM_FUNCTION void svm_debug_breakpoint_add_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9331
9344SVM_FUNCTION void svm_debug_breakpoint_remove_memoryread(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9345
9358SVM_FUNCTION void svm_debug_breakpoint_add_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9359
9372SVM_FUNCTION void svm_debug_breakpoint_remove_memorywrite(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9373
9386SVM_FUNCTION void svm_debug_breakpoint_add_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9387
9400SVM_FUNCTION void svm_debug_breakpoint_remove_memoryaccess(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9401
9414SVM_FUNCTION void svm_debug_breakpoint_add_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9415
9428SVM_FUNCTION void svm_debug_breakpoint_remove_memoryfree(const void *svm, const SVM_Kernel kernel, const SVM_Address address);
9429
9447SVM_FUNCTION SVM_Debug_Form svm_debug_form_new(const void *svm, const char *title);
9448
9459SVM_FUNCTION void svm_debug_form_append_checkbox(const void *svm, SVM_Debug_Form form, const char *label, const SVM_Value_Boolean default_value);
9460
9473SVM_FUNCTION void svm_debug_form_append_checkbox__raw(const void *svm, SVM_Debug_Form form, const char *label, const int default_value);
9474
9492SVM_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);
9493
9508SVM_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);
9509
9524SVM_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);
9525
9540SVM_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);
9541
9556SVM_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);
9557
9572SVM_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);
9573
9585SVM_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);
9586
9604
9609#ifdef __cplusplus
9610}
9611#endif
9612#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:618
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:240
SVM_TYPE typedef const void * SVM_Kernel
This type is used to represent an atomic execution environment.
Definition: svm.h:284
SVM_TYPE typedef const void * SVM_Event_Queue
This type is used as a complex synchronisation facility.
Definition: svm.h:233
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:521
SVM_Process_State
This type represents the status of a process.
Definition: svm.h:431
SVM_TYPE typedef const void * SVM_Code
This type is used to represent a section of code of the SVM.
Definition: svm.h:270
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:217
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:548
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:570
SVM_TYPE typedef SVM_Process_State SVM_Kernel_State
This type represents the status of a kernel.
Definition: svm.h:514
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:187
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:579
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:629
SVM_Boolean
This type corresponds to a simple boolean.
Definition: svm.h:353
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:605
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:592
SVM_TYPE typedef const void * SVM_Lock
This type is used as a simple synchronisation facility.
Definition: svm.h:210
SVM_TYPE typedef const void * SVM_Value_Automatic
This type is used to represent a null automatic value.
Definition: svm.h:638
SVM_TYPE typedef const void * SVM_AccessControl
This type is used to represent quotas on code execution.
Definition: svm.h:194
SVM_TYPE typedef unsigned long int SVM_Size
This type is used to represent an object size.
Definition: svm.h:257
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:327
SVM_Object_Level
This type corresponds to the level of definition of an object.
Definition: svm.h:450
SVM_Type_Internal
This type corresponds to value types the SVM can store in its memory.
Definition: svm.h:366
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:180
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:201
SVM_Interruption_Internal
This type corresponds to interruption types the SVM can use to stop program executions.
Definition: svm.h:385
SVM_TYPE typedef const void * SVM_Process
This type is used to represent an execution thread in the SVM.
Definition: svm.h:304
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:311
SVM_TYPE typedef unsigned long int SVM_Index
This type is used to represent an index.
Definition: svm.h:252
SVM_TYPE typedef const void * SVM_Scheduler
This type is used to represent an execution scheduler.
Definition: svm.h:320
SVM_Interruption_Kind
This type represents the two major classes of interruptions the SVM can handle.
Definition: svm.h:407
SVM_Notification_Type
This type represents the reason that triggered a callback call to a specific scheduler function.
Definition: svm.h:419
SVM_TYPE typedef const void * SVM_Variable
This type is used to represent any object managed by the SVM.
Definition: svm.h:171
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:557
SVM_TYPE typedef unsigned long int SVM_Address
This type is used to represent:
Definition: svm.h:247
SVM_Value_Plugin_Comparison
This type corresponds to the result of SVM_Value_Plugin comparison.
Definition: svm.h:484
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:224
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:530
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:539
@ DEBUG
the process is blocked in a state it answers only to the debugger
Definition: svm.h:437
@ RUNNING
the process lets the processor of the current kernel executing instructions
Definition: svm.h:432
@ SUSPENDED
the process is in a light sleep, and can return in running mode anytime
Definition: svm.h:433
@ ERROR
the process reached an invalid state
Definition: svm.h:440
@ CONTINUE
the process is blocked in a state in which it will only accept an execution request
Definition: svm.h:435
@ ZOMBIE
the process has completed its execution and is not destroyed yet
Definition: svm.h:438
@ INTERRUPTED
the process has completed its execution on a non-handled interruption
Definition: svm.h:439
@ LOCKED
the process is temporarly owned by someone and can not return in running mode
Definition: svm.h:436
@ WAITING
the process is blocked in a state in which it may not answer to scheduler requests
Definition: svm.h:434
@ FALSE
self-explained
Definition: svm.h:354
@ TRUE
self-explained
Definition: svm.h:355
@ LOCAL
the object is located in the current state of the processor
Definition: svm.h:451
@ CASCADE
the object is located in the current state and all sub states of the processor
Definition: svm.h:452
@ GLOBAL
the object is located in the processor
Definition: svm.h:453
@ AUTOMATIC
generic type to be replaced at first assignation
Definition: svm.h:367
@ INTEGER
integer type corresponding to long long int
Definition: svm.h:368
@ LIBRARY
library type corresponding to SVM_Code
Definition: svm.h:372
@ BOOLEAN
boolean type corresponding to SVM_Boolean
Definition: svm.h:370
@ INTERRUPTION
interruption type corresponds to processor interruptions
Definition: svm.h:375
@ POINTER
pointer type used to target memory zones
Definition: svm.h:371
@ SYMBOL
symbol type used to target code location
Definition: svm.h:373
@ STRING
string type corresponding to SVM_String
Definition: svm.h:369
@ PLUGIN_ENTRY_POINT
plugin entry point type used to identify a plugin object
Definition: svm.h:374
@ SECURITY
raised on security violation or quota overflow
Definition: svm.h:394
@ DEVICE
raised on SIGPIPE, SIGBUS
Definition: svm.h:387
@ PROCESSOR
raised on SIGILL or processor invalid action
Definition: svm.h:392
@ FIRST
raised on SIGUSR1
Definition: svm.h:389
@ SECOND
raised on SIGUSR2
Definition: svm.h:393
@ NUMERIC
raised on SIGFPE
Definition: svm.h:391
@ CLONE
raised on SIGCHLD
Definition: svm.h:386
@ TERMINATE
raised on SIGTERM, SIGINT, SIGHUP, SIGALRM
Definition: svm.h:395
@ TERMINAL
raised on SIGTTIN, SIGTTOU, SIGWINCH
Definition: svm.h:396
@ GENERIC
raised on all other signals
Definition: svm.h:397
@ MEMORY
raised on memory access failure
Definition: svm.h:390
@ FAILURE
raised on SIGABRT, SIGQUIT or generic failure in instruction
Definition: svm.h:388
@ SOFTWARE
the class of interruptions coming from instructions and execution errors
Definition: svm.h:408
@ HARDWARE
the class of interruptions coming from the OS signals
Definition: svm.h:409
@ TIMER
the callback has been triggered after a timer expiration
Definition: svm.h:421
@ NOTIFICATION
the callback has been triggered manually by the plugin developper
Definition: svm.h:420
@ EQUIVALENCE_EQUAL
Used to specify that values are equal.
Definition: svm.h:485
@ EQUIVALENCE_DIFFERENT
Used to specify that values are different.
Definition: svm.h:486
@ ORDER_SUPERIOR
Used to specify that left value is superior to right value.
Definition: svm.h:489
@ COMPARISON_STRONG
Used to specify that the real comparison has been computed.
Definition: svm.h:493
@ ORDER_PARTIAL
Used to specify that the order is partial (unused when an equivalence is used, set automatically when...
Definition: svm.h:492
@ ORDER_UNCOMPARABLE
Used to specify that left value and the right value can not be compared.
Definition: svm.h:490
@ COMPARISON_WEAK
Used to specify that an heuristic or arbitrary comparison has been computed.
Definition: svm.h:494
@ ORDER_TOTAL
Used to specify that the order is total (unused when an equivalence is used)
Definition: svm.h:491
@ ORDER_INFERIOR
Used to specify that left value is inferior to right value.
Definition: svm.h:488
@ ORDER_EQUAL
Used to specify that values are equal.
Definition: svm.h:487
#define SVM_FUNCTION
Declares a monoline SVM API function.
Definition: svm.h:138
#define SVM_TYPE_BEGIN
Declares the begining of a multiline SVM type.
Definition: svm.h:130
#define SVM_TYPE
Declares a monoline SVM type.
Definition: svm.h:126
#define SVM_TYPE_END
Declares the end of a multiline SVM type.
Definition: svm.h:134
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:462
SVM_Boolean type
TRUE when values types does not have the same type, FALSE otherwise.
Definition: svm.h:472
SVM_Boolean null
TRUE when at least one value was null, FALSE otherwise.
Definition: svm.h:473
SVM_Boolean superior_or_equal
TRUE when comparison is an order and left value is superior or equal to right value,...
Definition: svm.h:468
SVM_Boolean inferior
TRUE when comparison is an order and left value is inferior to right value, FALSE otherwise.
Definition: svm.h:465
SVM_Boolean equal
TRUE when values are equal, FALSE otherwise.
Definition: svm.h:463
SVM_Boolean inferior_or_equal
TRUE when comparison is an order and left value is inferior or equal to right value,...
Definition: svm.h:466
SVM_Boolean order
TRUE when comparison supports ordering, FALSE when comparison supports only equivalence.
Definition: svm.h:469
SVM_Boolean different
TRUE when values are different, FALSE otherwise.
Definition: svm.h:464
SVM_Boolean superior
TRUE when comparison is an order and left value is superior to right value, FALSE otherwise.
Definition: svm.h:467
SVM_Boolean weak
TRUE when values are not comparables (a fallback arbitrary comparison is used instead),...
Definition: svm.h:471
SVM_Boolean total
TRUE when comparison is an order and this comparison is total, FALSE otherwise.
Definition: svm.h:470
Definition: svm.h:503
SVM_String _details
Contains additional human readable details.
Definition: svm.h:505
SVM_Boolean _value
Contains the status value.
Definition: svm.h:504
Definition: svm.h:334
SVM_Size size
Definition: svm.h:342
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:335