47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| let Sys = {
 | |
|   // ## **`Sys._sbuf(len)`**
 | |
|   // Helper function to allocate string of at least given length. Note that
 | |
|   // the resulting string is usually bigger than this, and it is always
 | |
|   // longer than 5 bytes; that's to guarantee that the string data is stored in
 | |
|   // a common buffer and not inlined into mjs_val_t, thus the buffer can be
 | |
|   // used as an "output" buffer: a string can be passed to some function which
 | |
|   // will alter the contents, and these changes will be visible to the caller.
 | |
|   _sbuf: function(len) {
 | |
|     let chunk = '          ', buf = chunk;
 | |
|     while (buf.length < len) buf += chunk;
 | |
|     return buf;
 | |
|   },
 | |
| 
 | |
|   // ## **`Sys.calloc(nmemb, size)`**
 | |
|   // Allocate a memory region.
 | |
|   // Note: currently memory allocated this way must be explicitly released with `free()`.
 | |
|   malloc: ffi('void *malloc(int)'),
 | |
|   free: ffi('void free(void *)'),
 | |
| 
 | |
|   // ## **`Sys.total_ram()`**
 | |
|   // Return total available RAM in bytes.
 | |
|   total_ram: ffi('int mgos_get_heap_size()'),
 | |
| 
 | |
|   // ## **`Sys.free_ram()`**
 | |
|   // Return free available RAM in bytes.
 | |
|   free_ram: ffi('int mgos_get_free_heap_size()'),
 | |
| 
 | |
|   // ## **`Sys.reboot(us)`**
 | |
|   // Reboot the system after `us` microseconds. Return value: none.
 | |
|   reboot: ffi('void mgos_system_restart(int)'),
 | |
| 
 | |
|   // ## **`Sys.uptime()`**
 | |
|   // Return number of seconds since last reboot.
 | |
|   uptime: ffi('double mgos_uptime()'),
 | |
| 
 | |
|   // ## **`Sys.usleep(microseconds)`**
 | |
|   // Sleep given number of microseconds.
 | |
|   // Return value: none.
 | |
|   usleep: ffi('void mgos_usleep(int)'),
 | |
| 
 | |
|   // ## **`Sys.wdt_feed()`**
 | |
|   // Feed the watchdog timer.
 | |
|   // Return value: none.
 | |
|   wdt_feed: ffi('void mgos_wdt_feed()')
 | |
| };
 |