Add missing port functions for artik053 target (#2811)
JerryScript-DCO-1.0-Signed-off-by: Daniella Barsony bella@inf.u-szeged.hu
This commit is contained in:
committed by
Robert Sipka
parent
89cf1a988c
commit
722d092528
@@ -506,6 +506,75 @@ jerry_port_print_char (char c) /**< the character to print */
|
|||||||
printf ("%c", c);
|
printf ("%c", c);
|
||||||
} /* jerry_port_print_char */
|
} /* jerry_port_print_char */
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_ES2015_MODULE_SYSTEM
|
||||||
|
/**
|
||||||
|
* Determines the size of the given file.
|
||||||
|
* @return size of the file
|
||||||
|
*/
|
||||||
|
static size_t
|
||||||
|
jerry_port_get_file_size (FILE *file_p) /**< opened file */
|
||||||
|
{
|
||||||
|
fseek (file_p, 0, SEEK_END);
|
||||||
|
long size = ftell (file_p);
|
||||||
|
fseek (file_p, 0, SEEK_SET);
|
||||||
|
|
||||||
|
return (size_t) size;
|
||||||
|
} /* jerry_port_get_file_size */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens file with the given path and reads its source.
|
||||||
|
* @return the source of the file
|
||||||
|
*/
|
||||||
|
uint8_t *
|
||||||
|
jerry_port_read_source (const char *file_name_p, /**< file name */
|
||||||
|
size_t *out_size_p) /**< [out] read bytes */
|
||||||
|
{
|
||||||
|
FILE *file_p = fopen (file_name_p, "rb");
|
||||||
|
|
||||||
|
if (file_p == NULL)
|
||||||
|
{
|
||||||
|
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: failed to open file: %s\n", file_name_p);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t file_size = jerry_port_get_file_size (file_p);
|
||||||
|
uint8_t *buffer_p = (uint8_t *) malloc (file_size);
|
||||||
|
|
||||||
|
if (buffer_p == NULL)
|
||||||
|
{
|
||||||
|
fclose (file_p);
|
||||||
|
|
||||||
|
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: failed to allocate memory for module");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t bytes_read = fread (buffer_p, 1u, file_size, file_p);
|
||||||
|
|
||||||
|
if (!bytes_read)
|
||||||
|
{
|
||||||
|
fclose (file_p);
|
||||||
|
free (buffer_p);
|
||||||
|
|
||||||
|
jerry_port_log (JERRY_LOG_LEVEL_ERROR, "Error: failed to read file: %s\n", file_name_p);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose (file_p);
|
||||||
|
*out_size_p = bytes_read;
|
||||||
|
|
||||||
|
return buffer_p;
|
||||||
|
} /* jerry_port_read_source */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Release the previously opened file's content.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
jerry_port_release_source (uint8_t *buffer_p) /**< buffer to free */
|
||||||
|
{
|
||||||
|
free (buffer_p);
|
||||||
|
} /* jerry_port_release_source */
|
||||||
|
#endif /* !CONFIG_DISABLE_ES2015_MODULE_SYSTEM */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main program.
|
* Main program.
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user