#include <stdint.h>
#include <stdio.h>
#include "plat.h"
#include "pmfeatures.h"
#include "pmEmptyPlatformDefs.h"
#include "sli.h"
#include "mem.h"
#include "obj.h"
#include "seq.h"
#include "tuple.h"
#include "strobj.h"
#include "heap.h"
#include "int.h"
#include "seglist.h"
#include "list.h"
#include "dict.h"
#include "codeobj.h"
#include "func.h"
#include "module.h"
#include "frame.h"
#include "interp.h"
#include "img.h"
#include "global.h"
#include "class.h"
#include "thread.h"
#include "float.h"
#include "plat_interface.h"
#include "bytearray.h"
Go to the source code of this file.
Defines | |
#define | PM_RELEASE 8 |
#define | C_NULL 0 |
#define | C_FALSE 0 |
#define | C_TRUE 1 |
#define | C_SAME (int8_t)0 |
#define | C_DIFFER (int8_t)-1 |
#define | INLINE __inline__ |
#define | PM_RAISE(retexn, exn) retexn = (exn) |
#define | PM_BREAK_IF_ERROR(retval) if ((retval) != PM_RET_OK) break |
#define | PM_RETURN_IF_ERROR(retval) if ((retval) != PM_RET_OK) return (retval) |
#define | PM_REPORT_IF_ERROR(retval) |
#define | PM_GOTO_IF_ERROR(retval, target) |
#define | C_ASSERT(boolexpr) |
#define | VERBOSITY_LOW 1 |
#define | VERBOSITY_MEDIUM 2 |
#define | VERBOSITY_HIGH 3 |
#define | C_DEBUG_PRINT(...) |
Typedefs | |
typedef enum PmReturn_e | PmReturn_t |
typedef PmReturn_t(* | pPmNativeFxn_t )(pPmFrame_t *) |
Enumerations | |
enum | PmReturn_e { PM_RET_OK = 0, PM_RET_NO = 0xFF, PM_RET_ERR = 0xFE, PM_RET_STUB = 0xFD, PM_RET_ASSERT_FAIL = 0xFC, PM_RET_FRAME_SWITCH = 0xFB, PM_RET_EX = 0xE0, PM_RET_EX_EXIT = 0xE1, PM_RET_EX_IO = 0xE2, PM_RET_EX_ZDIV = 0xE3, PM_RET_EX_ASSRT = 0xE4, PM_RET_EX_ATTR = 0xE5, PM_RET_EX_IMPRT = 0xE6, PM_RET_EX_INDX = 0xE7, PM_RET_EX_KEY = 0xE8, PM_RET_EX_MEM = 0xE9, PM_RET_EX_NAME = 0xEA, PM_RET_EX_SYNTAX = 0xEB, PM_RET_EX_SYS = 0xEC, PM_RET_EX_TYPE = 0xED, PM_RET_EX_VAL = 0xEE, PM_RET_EX_STOP = 0xEF, PM_RET_EX_WARN = 0xF0 } |
Functions | |
PmReturn_t | pm_init (PmMemSpace_t memspace, uint8_t const *const pusrimg) |
PmReturn_t | pm_run (uint8_t const *modstr) |
PmReturn_t | pm_vmPeriodic (uint16_t usecsSinceLastCall) |
Variables | |
volatile uint32_t | pm_timerMsTicks |
pPmNativeFxn_t const | std_nat_fxn_table [] |
pPmNativeFxn_t const | usr_nat_fxn_table [] |
Include things that are needed by nearly everything.
Definition in file pm.h.
#define C_ASSERT | ( | boolexpr | ) |
#define C_DIFFER (int8_t)-1 |
#define C_SAME (int8_t)0 |
#define PM_BREAK_IF_ERROR | ( | retval | ) | if ((retval) != PM_RET_OK) break |
#define PM_GOTO_IF_ERROR | ( | retval, | |||
target | ) |
#define PM_RAISE | ( | retexn, | |||
exn | ) | retexn = (exn) |
#define PM_RELEASE 8 |
#define PM_REPORT_IF_ERROR | ( | retval | ) |
Value:
if ((retval) != PM_RET_OK) \ plat_reportError(retval)
#define PM_RETURN_IF_ERROR | ( | retval | ) | if ((retval) != PM_RET_OK) return (retval) |
#define VERBOSITY_HIGH 3 |
#define VERBOSITY_LOW 1 |
#define VERBOSITY_MEDIUM 2 |
typedef enum PmReturn_e PmReturn_t |
Return values for system functions to report status, errors, exceptions, etc. Normally, functions which use these values should propagate the same return value up the call tree to the interpreter.
typedef PmReturn_t(* pPmNativeFxn_t)(pPmFrame_t *) |
enum PmReturn_e |
Return values for system functions to report status, errors, exceptions, etc. Normally, functions which use these values should propagate the same return value up the call tree to the interpreter.
PmReturn_t pm_init | ( | PmMemSpace_t | memspace, | |
uint8_t const *const | pusrimg | |||
) |
Initializes the PyMite virtual machine and indexes the user's application image. The VM heap and globals are reset. The argument, pusrimg, may be null for interactive sessions.
memspace | Memory space in which the user image is located | |
pusrimg | Address of the user image in the memory space |
PmReturn_t pm_run | ( | uint8_t const * | modstr | ) |
PmReturn_t pm_vmPeriodic | ( | uint16_t | usecsSinceLastCall | ) |
Needs to be called periodically by the host program. For the desktop target, it is periodically called using a signal. For embedded targets, it needs to be called periodically. It should be called from a timer interrupt.
usecsSinceLastCall | Microseconds (not less than those) that passed since last call. This must be <64535. |
volatile uint32_t pm_timerMsTicks |