1 #include "native.h"
2 #include <stdio.h>
3 #include <time.h>
4
5 // Pure native functions
6
7 #define CHAR_BUFFER_SIZE 256
8 static char buffer[CHAR_BUFFER_SIZE];
9
read_constant_string()10 const char* read_constant_string()
11 {
12 return "Hello from C";
13 }
read_internal_string()14 const char* read_internal_string()
15 {
16 return buffer;
17 }
write_internal_string(const char * string)18 void write_internal_string(const char* string)
19 {
20 snprintf(buffer, CHAR_BUFFER_SIZE, "%s", string);
21 }
write_external_string(char * string,size_t maxLength)22 void write_external_string(char* string, size_t maxLength)
23 {
24 snprintf(string, maxLength, "Set from C");
25 }
execute_function(void (* function)(void *),void * context)26 void execute_function(void(*function)(void*), void* context)
27 {
28 function(context);
29 }
set_time_in_seconds(int seconds)30 void set_time_in_seconds(int seconds)
31 {
32 time_t timeToSet = seconds;
33 stime(&timeToSet);
34 }
write_internal_time_in_seconds()35 void write_internal_time_in_seconds()
36 {
37 time_t systemTime = time(NULL);
38 snprintf(buffer, CHAR_BUFFER_SIZE, "%u", systemTime);
39 }
40