Improve the jerry port api documents. (#4977)

Notable changes:
  - Remove the comments in port impl, that's easily getting to in-consistence
  - Sync the jerryscript-port.h and 05.PORT-API.md
  - Fixes the invalid comment in port codes

JerryScript-DCO-1.0-Signed-off-by: Yonggang Luo luoyonggang@gmail.com
This commit is contained in:
Yonggang Luo
2024-12-17 17:10:37 +08:00
committed by GitHub
parent 77c72d4da7
commit b4bc23078a
16 changed files with 21 additions and 227 deletions
+2
View File
@@ -119,6 +119,8 @@ void jerry_port_context_free (void);
* *
* The implementation can decide whether error and debug messages are logged to * The implementation can decide whether error and debug messages are logged to
* the console, or saved to a database or to a file. * the console, or saved to a database or to a file.
*
* @param message_p: the message to log.
*/ */
void jerry_port_log (const char *message_p); void jerry_port_log (const char *message_p);
``` ```
+3 -1
View File
@@ -143,6 +143,8 @@ void jerry_port_context_free (void);
* *
* The implementation can decide whether error and debug messages are logged to * The implementation can decide whether error and debug messages are logged to
* the console, or saved to a database or to a file. * the console, or saved to a database or to a file.
*
* @param message_p: the message to log.
*/ */
void jerry_port_log (const char *message_p); void jerry_port_log (const char *message_p);
@@ -237,7 +239,7 @@ void jerry_port_path_free (jerry_char_t *path_p);
jerry_size_t jerry_port_path_base (const jerry_char_t *path_p); jerry_size_t jerry_port_path_base (const jerry_char_t *path_p);
/** /**
* Open a source file and read the content into a buffer. * Open a source file and read its contents into a buffer.
* *
* When the source file is no longer needed by the caller, the returned pointer will be passed to * When the source file is no longer needed by the caller, the returned pointer will be passed to
* `jerry_port_source_free`, which can be used to finalize the buffer. * `jerry_port_source_free`, which can be used to finalize the buffer.
-15
View File
@@ -27,13 +27,6 @@
*/ */
static jerry_context_t *current_context_p = NULL; static jerry_context_t *current_context_p = NULL;
/**
* Allocate a new external context.
*
* @param context_size: requested context size
*
* @return total allcoated size
*/
size_t JERRY_ATTR_WEAK size_t JERRY_ATTR_WEAK
jerry_port_context_alloc (size_t context_size) jerry_port_context_alloc (size_t context_size)
{ {
@@ -43,20 +36,12 @@ jerry_port_context_alloc (size_t context_size)
return total_size; return total_size;
} /* jerry_port_context_alloc */ } /* jerry_port_context_alloc */
/**
* Get the current context.
*
* @return the pointer to the current context
*/
jerry_context_t *JERRY_ATTR_WEAK jerry_context_t *JERRY_ATTR_WEAK
jerry_port_context_get (void) jerry_port_context_get (void)
{ {
return current_context_p; return current_context_p;
} /* jerry_port_context_get */ } /* jerry_port_context_get */
/**
* Free the currently allocated external context.
*/
void JERRY_ATTR_WEAK void JERRY_ATTR_WEAK
jerry_port_context_free (void) jerry_port_context_free (void)
{ {
+5 -30
View File
@@ -41,13 +41,8 @@ jerry_port_get_file_size (FILE *file_p) /**< opened file */
return (jerry_size_t) size; return (jerry_size_t) size;
} /* jerry_port_get_file_size */ } /* jerry_port_get_file_size */
/**
* Opens file with the given path and reads its source.
* @return the source of the file
*/
jerry_char_t *JERRY_ATTR_WEAK jerry_char_t *JERRY_ATTR_WEAK
jerry_port_source_read (const char *file_name_p, /**< file name */ jerry_port_source_read (const char *file_name_p, jerry_size_t *out_size_p)
jerry_size_t *out_size_p) /**< [out] read bytes */
{ {
/* TODO(dbatyai): Temporary workaround for nuttx target /* TODO(dbatyai): Temporary workaround for nuttx target
* The nuttx target builds and copies the jerryscript libraries as a separate build step, which causes linking issues * The nuttx target builds and copies the jerryscript libraries as a separate build step, which causes linking issues
@@ -92,11 +87,8 @@ jerry_port_source_read (const char *file_name_p, /**< file name */
return buffer_p; return buffer_p;
} /* jerry_port_source_read */ } /* jerry_port_source_read */
/**
* Release the previously opened file's content.
*/
void JERRY_ATTR_WEAK void JERRY_ATTR_WEAK
jerry_port_source_free (uint8_t *buffer_p) /**< buffer to free */ jerry_port_source_free (uint8_t *buffer_p)
{ {
free (buffer_p); free (buffer_p);
} /* jerry_port_source_free */ } /* jerry_port_source_free */
@@ -107,15 +99,8 @@ jerry_port_source_free (uint8_t *buffer_p) /**< buffer to free */
*/ */
#if defined(JERRY_WEAK_SYMBOL_SUPPORT) && !(defined(__unix__) || defined(__APPLE__) || defined(_WIN32)) #if defined(JERRY_WEAK_SYMBOL_SUPPORT) && !(defined(__unix__) || defined(__APPLE__) || defined(_WIN32))
/**
* Normalize a file path.
*
* @return a newly allocated buffer with the normalized path if the operation is successful,
* NULL otherwise
*/
jerry_char_t *JERRY_ATTR_WEAK jerry_char_t *JERRY_ATTR_WEAK
jerry_port_path_normalize (const jerry_char_t *path_p, /**< input path */ jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size)
jerry_size_t path_size) /**< size of the path */
{ {
jerry_char_t *buffer_p = (jerry_char_t *) malloc (path_size + 1); jerry_char_t *buffer_p = (jerry_char_t *) malloc (path_size + 1);
@@ -130,24 +115,14 @@ jerry_port_path_normalize (const jerry_char_t *path_p, /**< input path */
return buffer_p; return buffer_p;
} /* jerry_port_path_normalize */ } /* jerry_port_path_normalize */
/**
* Free a path buffer returned by jerry_port_path_normalize.
*
* @param path_p: the path to free
*/
void JERRY_ATTR_WEAK void JERRY_ATTR_WEAK
jerry_port_path_free (jerry_char_t *path_p) jerry_port_path_free (jerry_char_t *path_p)
{ {
free (path_p); free (path_p);
} /* jerry_port_path_free */ } /* jerry_port_path_free */
/**
* Computes the end of the directory part of a path.
*
* @return end of the directory part of a path.
*/
jerry_size_t JERRY_ATTR_WEAK jerry_size_t JERRY_ATTR_WEAK
jerry_port_path_base (const jerry_char_t *path_p) /**< path */ jerry_port_path_base (const jerry_char_t *path_p)
{ {
const jerry_char_t *basename_p = (jerry_char_t *) strrchr ((char *) path_p, '/') + 1; const jerry_char_t *basename_p = (jerry_char_t *) strrchr ((char *) path_p, '/') + 1;
@@ -157,6 +132,6 @@ jerry_port_path_base (const jerry_char_t *path_p) /**< path */
} }
return (jerry_size_t) (basename_p - path_p); return (jerry_size_t) (basename_p - path_p);
} /* jerry_port_get_directory_end */ } /* jerry_port_path_base */
#endif /* defined(JERRY_WEAK_SYMBOL_SUPPORT) && !(defined(__unix__) || defined(__APPLE__) || defined(_WIN32)) */ #endif /* defined(JERRY_WEAK_SYMBOL_SUPPORT) && !(defined(__unix__) || defined(__APPLE__) || defined(_WIN32)) */
-13
View File
@@ -34,14 +34,6 @@ jerry_port_print_buffer (const jerry_char_t *buffer_p, jerry_size_t buffer_size)
fwrite (buffer_p, 1, buffer_size, stdout); fwrite (buffer_p, 1, buffer_size, stdout);
} /* jerry_port_print_buffer */ } /* jerry_port_print_buffer */
/**
* Read a line from standard input as a zero-terminated string.
*
* @param out_size_p: length of the string
*
* @return pointer to the buffer storing the string,
* or NULL if end of input
*/
jerry_char_t *JERRY_ATTR_WEAK jerry_char_t *JERRY_ATTR_WEAK
jerry_port_line_read (jerry_size_t *out_size_p) jerry_port_line_read (jerry_size_t *out_size_p)
{ {
@@ -80,11 +72,6 @@ jerry_port_line_read (jerry_size_t *out_size_p)
} }
} /* jerry_port_line_read */ } /* jerry_port_line_read */
/**
* Free a line buffer allocated by jerry_port_line_read
*
* @param buffer_p: buffer that has been allocated by jerry_port_line_read
*/
void JERRY_ATTR_WEAK void JERRY_ATTR_WEAK
jerry_port_line_free (jerry_char_t *buffer_p) jerry_port_line_free (jerry_char_t *buffer_p)
{ {
-11
View File
@@ -20,12 +20,6 @@
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>
/**
* Default implementation of jerry_port_local_tza.
*
* @return offset between UTC and local time at the given unix timestamp, if
* available. Otherwise, returns 0, assuming UTC time.
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -53,11 +47,6 @@ jerry_port_local_tza (double unix_ms)
#endif /* HAVE_TM_GMTOFF */ #endif /* HAVE_TM_GMTOFF */
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Default implementation of jerry_port_current_time.
*
* @return milliseconds since Unix epoch
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
+3 -21
View File
@@ -20,44 +20,26 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
/**
* Normalize a file path using realpath.
*
* @param path_p: input path
* @param path_size: input path size
*
* @return a newly allocated buffer with the normalized path if the operation is successful,
* NULL otherwise
*/
jerry_char_t * jerry_char_t *
jerry_port_path_normalize (const jerry_char_t *path_p, /**< input path */ jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size)
jerry_size_t path_size) /**< size of the path */
{ {
(void) path_size; (void) path_size;
return (jerry_char_t *) realpath ((char *) path_p, NULL); return (jerry_char_t *) realpath ((char *) path_p, NULL);
} /* jerry_port_path_normalize */ } /* jerry_port_path_normalize */
/**
* Free a path buffer returned by jerry_port_path_normalize.
*/
void void
jerry_port_path_free (jerry_char_t *path_p) jerry_port_path_free (jerry_char_t *path_p)
{ {
free (path_p); free (path_p);
} /* jerry_port_path_free */ } /* jerry_port_path_free */
/**
* Computes the end of the directory part of a path.
*
* @return end of the directory part of a path.
*/
jerry_size_t JERRY_ATTR_WEAK jerry_size_t JERRY_ATTR_WEAK
jerry_port_path_base (const jerry_char_t *path_p) /**< path */ jerry_port_path_base (const jerry_char_t *path_p)
{ {
const jerry_char_t *basename_p = (jerry_char_t *) strrchr ((char *) path_p, '/') + 1; const jerry_char_t *basename_p = (jerry_char_t *) strrchr ((char *) path_p, '/') + 1;
return (jerry_size_t) (basename_p - path_p); return (jerry_size_t) (basename_p - path_p);
} /* jerry_port_get_directory_end */ } /* jerry_port_path_base */
#endif /* defined(__unix__) || defined(__APPLE__) */ #endif /* defined(__unix__) || defined(__APPLE__) */
+1 -4
View File
@@ -25,11 +25,8 @@
#include <unistd.h> #include <unistd.h>
/**
* Default implementation of jerry_port_sleep, uses 'usleep'.
*/
void void
jerry_port_sleep (uint32_t sleep_time) /**< milliseconds to sleep */ jerry_port_sleep (uint32_t sleep_time)
{ {
usleep ((useconds_t) sleep_time * 1000); usleep ((useconds_t) sleep_time * 1000);
} /* jerry_port_sleep */ } /* jerry_port_sleep */
-11
View File
@@ -72,12 +72,6 @@ filetime_to_unix_time (LPFILETIME ft_p)
return (double) (((LONGLONG) date.QuadPart - UNIX_EPOCH_IN_TICKS) / TICKS_PER_MS); return (double) (((LONGLONG) date.QuadPart - UNIX_EPOCH_IN_TICKS) / TICKS_PER_MS);
} /* filetime_to_unix_time */ } /* filetime_to_unix_time */
/**
* Default implementation of jerry_port_local_tza.
*
* @return offset between UTC and local time at the given unix timestamp, if
* available. Otherwise, returns 0, assuming UTC time.
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -115,11 +109,6 @@ jerry_port_local_tza (double unix_ms)
return 0; return 0;
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Default implementation of jerry_port_current_time.
*
* @return milliseconds since Unix epoch
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
+1 -18
View File
@@ -20,37 +20,20 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
/**
* Normalize a file path.
*
* @return a newly allocated buffer with the normalized path if the operation is successful,
* NULL otherwise
*/
jerry_char_t * jerry_char_t *
jerry_port_path_normalize (const jerry_char_t *path_p, /**< input path */ jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size)
jerry_size_t path_size) /**< size of the path */
{ {
(void) path_size; (void) path_size;
return (jerry_char_t *) _fullpath (NULL, path_p, _MAX_PATH); return (jerry_char_t *) _fullpath (NULL, path_p, _MAX_PATH);
} /* jerry_port_path_normalize */ } /* jerry_port_path_normalize */
/**
* Free a path buffer returned by jerry_port_path_normalize.
*/
void void
jerry_port_path_free (jerry_char_t *path_p) jerry_port_path_free (jerry_char_t *path_p)
{ {
free (path_p); free (path_p);
} /* jerry_port_path_free */ } /* jerry_port_path_free */
/**
* Get the end of the directory part of the input path.
*
* @param path_p: input zero-terminated path string
*
* @return offset of the directory end in the input path string
*/
jerry_size_t jerry_size_t
jerry_port_path_base (const jerry_char_t *path_p) jerry_port_path_base (const jerry_char_t *path_p)
{ {
+1 -4
View File
@@ -80,11 +80,8 @@ jerry_port_init (void)
} }
} /* jerry_port_init */ } /* jerry_port_init */
/**
* Default implementation of jerry_port_sleep, uses 'Sleep'.
*/
void void
jerry_port_sleep (uint32_t sleep_time) /**< milliseconds to sleep */ jerry_port_sleep (uint32_t sleep_time)
{ {
Sleep (sleep_time); Sleep (sleep_time);
} /* jerry_port_sleep */ } /* jerry_port_sleep */
@@ -30,35 +30,20 @@
static const char ESP_JS_TAG[] = "JS"; static const char ESP_JS_TAG[] = "JS";
/**
* Provide log message implementation for the engine.
*/
void void
jerry_port_log (const char *message_p) /**< message */ jerry_port_log (const char *message_p)
{ {
ESP_LOGI (ESP_JS_TAG, "%s", message_p); ESP_LOGI (ESP_JS_TAG, "%s", message_p);
} /* jerry_port_log */ } /* jerry_port_log */
/**
* Implementation of jerry_port_fatal.
* Calls 'abort' if exit code is non-zero, 'exit' otherwise.
*/
void void
jerry_port_fatal (jerry_fatal_code_t code) /**< cause of error */ jerry_port_fatal (jerry_fatal_code_t code)
{ {
ESP_LOGE (ESP_JS_TAG, "Fatal error: %d", code); ESP_LOGE (ESP_JS_TAG, "Fatal error: %d", code);
vTaskSuspend (NULL); vTaskSuspend (NULL);
abort (); abort ();
} /* jerry_port_fatal */ } /* jerry_port_fatal */
/**
* Default implementation of jerry_port_local_tza. Uses the 'tm_gmtoff' field
* of 'struct tm' (a GNU extension) filled by 'localtime_r' if available on the
* system, does nothing otherwise.
*
* @return offset between UTC and local time at the given unix timestamp, if
* available. Otherwise, returns 0, assuming UTC time.
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -71,13 +56,6 @@ jerry_port_local_tza (double unix_ms)
return -atoi (buf) * 3600 * 1000 / 100; return -atoi (buf) * 3600 * 1000 / 100;
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Implementation of jerry_port_get_current_time.
* Uses 'gettimeofday' if available on the system, does nothing otherwise.
*
* @return milliseconds since Unix epoch if 'gettimeofday' is available
* 0 - otherwise.
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
+1 -17
View File
@@ -20,20 +20,14 @@
#include "mbed.h" #include "mbed.h"
/**
* Aborts the program.
*/
void void
jerry_port_fatal (jerry_fatal_code_t code) jerry_port_fatal (jerry_fatal_code_t code)
{ {
exit ((int) code); exit ((int) code);
} /* jerry_port_fatal */ } /* jerry_port_fatal */
/**
* Provide log message implementation for the engine.
*/
void void
jerry_port_log (const char *message_p) /**< message */ jerry_port_log (const char *message_p)
{ {
while (*message_p != '\0') while (*message_p != '\0')
{ {
@@ -47,11 +41,6 @@ jerry_port_log (const char *message_p) /**< message */
} }
} /* jerry_port_log */ } /* jerry_port_log */
/**
* Dummy function to get the time zone adjustment.
*
* @return 0
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -60,11 +49,6 @@ jerry_port_local_tza (double unix_ms)
return 0; return 0;
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Implementation of jerry_port_current_time.
*
* @return current timer's counter value in milliseconds
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
+1 -25
View File
@@ -19,23 +19,12 @@
#include "jerryscript-port.h" #include "jerryscript-port.h"
/**
* Default implementation of jerry_port_log. Prints log messages to stderr.
*/
void void
jerry_port_log (const char *message_p) /**< message */ jerry_port_log (const char *message_p)
{ {
(void) message_p; (void) message_p;
} /* jerry_port_log */ } /* jerry_port_log */
/**
* Read a line from standard input as a zero-terminated string.
*
* @param out_size_p: length of the string
*
* @return pointer to the buffer storing the string,
* or NULL if end of input
*/
jerry_char_t * jerry_char_t *
jerry_port_line_read (jerry_size_t *out_size_p) jerry_port_line_read (jerry_size_t *out_size_p)
{ {
@@ -43,20 +32,12 @@ jerry_port_line_read (jerry_size_t *out_size_p)
return NULL; return NULL;
} /* jerry_port_line_read */ } /* jerry_port_line_read */
/**
* Aborts the program.
*/
void void
jerry_port_fatal (jerry_fatal_code_t code) jerry_port_fatal (jerry_fatal_code_t code)
{ {
exit ((int) code); exit ((int) code);
} /* jerry_port_fatal */ } /* jerry_port_fatal */
/**
* Dummy function to get the time zone adjustment.
*
* @return 0
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -66,11 +47,6 @@ jerry_port_local_tza (double unix_ms)
return 0; return 0;
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Dummy function to get the current time.
*
* @return 0
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
-10
View File
@@ -18,11 +18,6 @@
#include "jerryscript-port.h" #include "jerryscript-port.h"
/**
* Dummy function to get the time zone adjustment.
*
* @return 0
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -32,11 +27,6 @@ jerry_port_local_tza (double unix_ms)
return 0; return 0;
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Dummy function to get the current time.
*
* @return 0
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
+1 -23
View File
@@ -22,20 +22,12 @@
#include "getline-zephyr.h" #include "getline-zephyr.h"
/**
* Aborts the program.
*/
void void
jerry_port_fatal (jerry_fatal_code_t code) jerry_port_fatal (jerry_fatal_code_t code)
{ {
exit ((int) code); exit ((int) code);
} /* jerry_port_fatal */ } /* jerry_port_fatal */
/**
* Dummy function to get the time zone adjustment.
*
* @return 0
*/
int32_t int32_t
jerry_port_local_tza (double unix_ms) jerry_port_local_tza (double unix_ms)
{ {
@@ -45,11 +37,6 @@ jerry_port_local_tza (double unix_ms)
return 0; return 0;
} /* jerry_port_local_tza */ } /* jerry_port_local_tza */
/**
* Dummy function to get the current time.
*
* @return 0
*/
double double
jerry_port_current_time (void) jerry_port_current_time (void)
{ {
@@ -57,18 +44,12 @@ jerry_port_current_time (void)
return (double) ms; return (double) ms;
} /* jerry_port_current_time */ } /* jerry_port_current_time */
/**
* Provide implementation of jerry_port_sleep.
*/
void void
jerry_port_sleep (uint32_t sleep_time) /**< milliseconds to sleep */ jerry_port_sleep (uint32_t sleep_time)
{ {
k_usleep ((useconds_t) sleep_time * 1000); k_usleep ((useconds_t) sleep_time * 1000);
} /* jerry_port_sleep */ } /* jerry_port_sleep */
/**
* Read line from stdin
*/
jerry_char_t * jerry_char_t *
jerry_port_line_read (jerry_size_t *out_size_p) jerry_port_line_read (jerry_size_t *out_size_p)
{ {
@@ -78,9 +59,6 @@ jerry_port_line_read (jerry_size_t *out_size_p)
return (jerry_char_t *) line_p; return (jerry_char_t *) line_p;
} /* jerry_port_line_read */ } /* jerry_port_line_read */
/**
* Free line, no-op.
*/
void void
jerry_port_line_free (jerry_char_t *line_p) jerry_port_line_free (jerry_char_t *line_p)
{ {