Skip to content

Commit

Permalink
Improve the jerry port api documents.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
lygstate committed Feb 9, 2022
1 parent d00f481 commit 6fe006a
Show file tree
Hide file tree
Showing 18 changed files with 33 additions and 281 deletions.
2 changes: 2 additions & 0 deletions docs/05.PORT-API.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ void jerry_port_context_free (void);
*
* The implementation can decide whether error and debug messages are logged to
* 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);
```
Expand Down
4 changes: 3 additions & 1 deletion jerry-core/include/jerryscript-port.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ void jerry_port_context_free (void);
*
* The implementation can decide whether error and debug messages are logged to
* 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);

Expand Down Expand Up @@ -246,7 +248,7 @@ void jerry_port_path_free (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
* `jerry_port_source_free`, which can be used to finalize the buffer.
Expand Down
15 changes: 0 additions & 15 deletions jerry-port/common/jerry-port-context.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,6 @@
*/
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
jerry_port_context_alloc (size_t context_size)
{
Expand All @@ -43,20 +36,12 @@ jerry_port_context_alloc (size_t context_size)
return total_size;
} /* jerry_port_context_alloc */

/**
* Get the current context.
*
* @return the pointer to the current context
*/
jerry_context_t *JERRY_ATTR_WEAK
jerry_port_context_get (void)
{
return current_context_p;
} /* jerry_port_context_get */

/**
* Free the currently allocated external context.
*/
void JERRY_ATTR_WEAK
jerry_port_context_free (void)
{
Expand Down
39 changes: 7 additions & 32 deletions jerry-port/common/jerry-port-fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,8 @@ jerry_port_get_file_size (FILE *file_p) /**< opened file */
return (jerry_size_t) 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_port_source_read (const char *file_name_p, /**< file name */
jerry_size_t *out_size_p) /**< [out] read bytes */
jerry_port_source_read (const char *file_name_p, jerry_size_t *out_size_p)
{
/* 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
Expand Down Expand Up @@ -92,11 +87,8 @@ jerry_port_source_read (const char *file_name_p, /**< file name */
return buffer_p;
} /* jerry_port_source_read */

/**
* Release the previously opened file's content.
*/
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);
} /* jerry_port_source_free */
Expand All @@ -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))

/**
* 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_port_path_normalize (const jerry_char_t *path_p, /**< input path */
jerry_size_t path_size) /**< size of the path */
jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size)
{
jerry_char_t *buffer_p = (jerry_char_t *) malloc (path_size + 1);

Expand All @@ -128,26 +113,16 @@ jerry_port_path_normalize (const jerry_char_t *path_p, /**< input path */
memcpy (buffer_p, path_p, path_size + 1);

return buffer_p;
} /* jerry_port_normalize_path */
} /* 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
jerry_port_path_free (jerry_char_t *path_p)
{
free (path_p);
} /* jerry_port_normalize_path */
} /* 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_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;

Expand All @@ -157,6 +132,6 @@ jerry_port_path_base (const jerry_char_t *path_p) /**< path */
}

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)) */
33 changes: 4 additions & 29 deletions jerry-port/common/jerry-port-io.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,27 @@

#include "jerryscript-port.h"

/**
* Default implementation of jerry_port_log. Prints log messages to stderr.
*/
void JERRY_ATTR_WEAK
jerry_port_log (const char *message_p) /**< message */
jerry_port_log (const char *message_p)
{
fputs (message_p, stderr);
} /* jerry_port_log */

/**
* Default implementation of jerry_port_print_byte. Uses 'putchar' to
* print a single character to standard output.
*/
void JERRY_ATTR_WEAK
jerry_port_print_byte (jerry_char_t byte) /**< the character to print */
jerry_port_print_byte (jerry_char_t byte)
{
putchar (byte);
} /* jerry_port_print_byte */

/**
* Default implementation of jerry_port_print_buffer. Uses 'jerry_port_print_byte' to
* print characters of the input buffer.
*/
void JERRY_ATTR_WEAK
jerry_port_print_buffer (const jerry_char_t *buffer_p, /**< string buffer */
jerry_size_t buffer_size) /**< string size*/
jerry_port_print_buffer (const jerry_char_t *buffer_p, jerry_size_t buffer_size)
{
for (jerry_size_t i = 0; i < buffer_size; i++)
{
jerry_port_print_byte (buffer_p[i]);
}
} /* jerry_port_print_byte */
} /* 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_port_line_read (jerry_size_t *out_size_p)
{
Expand Down Expand Up @@ -94,11 +74,6 @@ jerry_port_line_read (jerry_size_t *out_size_p)
}
} /* 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
jerry_port_line_free (jerry_char_t *buffer_p)
{
Expand Down
6 changes: 1 addition & 5 deletions jerry-port/common/jerry-port-process.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,8 @@

#include "jerryscript-port.h"

/**
* Default implementation of jerry_port_fatal. Calls 'abort' if exit code is
* non-zero, 'exit' otherwise.
*/
void JERRY_ATTR_WEAK
jerry_port_fatal (jerry_fatal_code_t code) /**< cause of error */
jerry_port_fatal (jerry_fatal_code_t code)
{
if (code != 0 && code != JERRY_FATAL_OUT_OF_MEMORY)
{
Expand Down
11 changes: 0 additions & 11 deletions jerry-port/unix/jerry-port-unix-date.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@
#include <sys/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
jerry_port_local_tza (double unix_ms)
{
Expand Down Expand Up @@ -53,11 +47,6 @@ jerry_port_local_tza (double unix_ms)
#endif /* HAVE_TM_GMTOFF */
} /* jerry_port_local_tza */

/**
* Default implementation of jerry_port_current_time.
*
* @return milliseconds since Unix epoch
*/
double
jerry_port_current_time (void)
{
Expand Down
24 changes: 3 additions & 21 deletions jerry-port/unix/jerry-port-unix-fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,44 +20,26 @@
#include <stdlib.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_port_path_normalize (const jerry_char_t *path_p, /**< input path */
jerry_size_t path_size) /**< size of the path */
jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size)
{
(void) path_size;

return (jerry_char_t *) realpath ((char *) path_p, NULL);
} /* jerry_port_path_normalize */

/**
* Free a path buffer returned by jerry_port_path_normalize.
*/
void
jerry_port_path_free (jerry_char_t *path_p)
{
free (path_p);
} /* 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_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;

return (jerry_size_t) (basename_p - path_p);
} /* jerry_port_get_directory_end */
} /* jerry_port_path_base */

#endif /* defined(__unix__) || defined(__APPLE__) */
5 changes: 1 addition & 4 deletions jerry-port/unix/jerry-port-unix-process.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,8 @@

#include <unistd.h>

/**
* Default implementation of jerry_port_sleep, uses 'usleep'.
*/
void
jerry_port_sleep (uint32_t sleep_time) /**< milliseconds to sleep */
jerry_port_sleep (uint32_t sleep_time)
{
usleep ((useconds_t) sleep_time * 1000);
} /* jerry_port_sleep */
Expand Down
15 changes: 2 additions & 13 deletions jerry-port/win/jerry-port-win-date.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ unix_time_to_filetime (double t, LPFILETIME ft_p)

ft_p->dwLowDateTime = (DWORD) ll;
ft_p->dwHighDateTime = (DWORD) (ll >> 32);
} /* unix_time_to_file_time */
} /* unix_time_to_filetime */

/**
* Convert a FILETIME to a unix time value.
Expand All @@ -58,14 +58,8 @@ filetime_to_unix_time (LPFILETIME ft_p)
date.HighPart = ft_p->dwHighDateTime;
date.LowPart = ft_p->dwLowDateTime;
return (double) (((LONGLONG) date.QuadPart - UNIX_EPOCH_IN_TICKS) / TICKS_PER_MS);
} /* FileTimeToUnixTimeMs */
} /* 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
jerry_port_local_tza (double unix_ms)
{
Expand All @@ -86,11 +80,6 @@ jerry_port_local_tza (double unix_ms)
return 0;
} /* jerry_port_local_tza */

/**
* Default implementation of jerry_port_current_time.
*
* @return milliseconds since Unix epoch
*/
double
jerry_port_current_time (void)
{
Expand Down
19 changes: 1 addition & 18 deletions jerry-port/win/jerry-port-win-fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,37 +20,20 @@
#include <stdlib.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_port_path_normalize (const jerry_char_t *path_p, /**< input path */
jerry_size_t path_size) /**< size of the path */
jerry_port_path_normalize (const jerry_char_t *path_p, jerry_size_t path_size)
{
(void) path_size;

return (jerry_char_t *) _fullpath (NULL, path_p, _MAX_PATH);
} /* jerry_port_path_normalize */

/**
* Free a path buffer returned by jerry_port_path_normalize.
*/
void
jerry_port_path_free (jerry_char_t *path_p)
{
free (path_p);
} /* 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_port_path_base (const jerry_char_t *path_p)
{
Expand Down
5 changes: 1 addition & 4 deletions jerry-port/win/jerry-port-win-process.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,8 @@

#include <windows.h>

/**
* Default implementation of jerry_port_sleep, uses 'Sleep'.
*/
void
jerry_port_sleep (uint32_t sleep_time) /**< milliseconds to sleep */
jerry_port_sleep (uint32_t sleep_time)
{
Sleep (sleep_time);
} /* jerry_port_sleep */
Expand Down

0 comments on commit 6fe006a

Please sign in to comment.