Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
obj.h File Reference
Object Type. More...
Go to the source code of this file.
Data Structures | |
struct | PmObj_s |
Object. More... | |
struct | PmBoolean_s |
Boolean object. More... | |
Typedefs | |
typedef enum PmType_e | PmType_t |
Object type enum. | |
typedef uint16_t | PmObjDesc_t |
Object Descriptor. | |
typedef struct PmObj_s | PmObj_t |
Object. | |
typedef struct PmBoolean_s | PmBoolean_t |
Boolean object. | |
Enumerations | |
enum | PmType_e { , OBJ_TYPE_NON = 0x00, OBJ_TYPE_INT = 0x01, OBJ_TYPE_FLT = 0x02, OBJ_TYPE_STR = 0x03, OBJ_TYPE_TUP = 0x04, OBJ_TYPE_COB = 0x05, OBJ_TYPE_MOD = 0x06, OBJ_TYPE_CLO = 0x07, OBJ_TYPE_FXN = 0x08, OBJ_TYPE_CLI = 0x09, OBJ_TYPE_CIM = 0x0A, OBJ_TYPE_NIM = 0x0B, OBJ_TYPE_NOB = 0x0C, OBJ_TYPE_THR = 0x0D, OBJ_TYPE_BOOL = 0x0F, OBJ_TYPE_CIO = 0x10, OBJ_TYPE_MTH = 0x11 , OBJ_TYPE_LST = 0x12, OBJ_TYPE_DIC = 0x13, OBJ_TYPE_BYA = 0x14 , OBJ_TYPE_BYS = 0x18, OBJ_TYPE_FRM = 0x19, OBJ_TYPE_BLK = 0x1A, OBJ_TYPE_SEG = 0x1B, OBJ_TYPE_SGL = 0x1C, OBJ_TYPE_SQI = 0x1D, OBJ_TYPE_NFM = 0x1E } |
Object type enum. More... | |
Functions | |
PmReturn_t | obj_loadFromImg (PmMemSpace_t memspace, uint8_t const **paddr, pPmObj_t *r_pobj) |
Loads an object from an image in memory. | |
PmReturn_t | obj_loadFromImgObj (pPmObj_t pimg, pPmObj_t *r_pobj) |
Loads a code object from a code image object. | |
int8_t | obj_isFalse (pPmObj_t pobj) |
Finds the boolean value of the given object. | |
PmReturn_t | obj_isIn (pPmObj_t pobj, pPmObj_t pitem) |
Returns the boolean true if the item is in the object. | |
int8_t | obj_compare (pPmObj_t pobj1, pPmObj_t pobj2) |
Compares two objects for equality. | |
PmReturn_t | obj_print (pPmObj_t pobj, uint8_t marshallString) |
Print an object, thereby using objects helpers. | |
PmReturn_t | obj_repr (pPmObj_t pobj, pPmObj_t *r_pstr) |
Returns by reference a string object that is the human-readable representation of the object. |
Detailed Description
Object Type.
Object type header.
Definition in file obj.h.
Typedef Documentation
typedef struct PmBoolean_s PmBoolean_t |
Boolean object.
typedef uint16_t PmObjDesc_t |
Object Descriptor.
All active PyMite "objects" must have this at the top of their struct. (CodeObj, Frame, Dict, List, Tuple, etc.).
The following is a diagram of the object descriptor:
MSb LSb 7 6 5 4 3 2 1 0 pchunk-> +-+-+-+-+-+-+-+-+ S := Size of the chunk (2 LSbs dropped) | S[9:2] | F := Free bit +-+-+---------+-+ M := GC Mark bit |F|M| T |S| T := Object type (PyMite specific) +-+-+---------+-+ | object data | ... ... | end data | Theoretical min size == 2 +---------------+ Effective min size == 8 (due to pmHeapDesc_t)
Macros are used to get and set field values. Using macros eliminates declaring bit fields which fails on some compilers.
Object type enum.
These values go in the od_type fields of the obj descriptor. Be sure these values correspond to those in the image creator tool. The hashable types are grouped together for convenience.
WARNING: od_type must be at most 5 bits! (must be < 0x20)
Enumeration Type Documentation
enum PmType_e |
Object type enum.
These values go in the od_type fields of the obj descriptor. Be sure these values correspond to those in the image creator tool. The hashable types are grouped together for convenience.
WARNING: od_type must be at most 5 bits! (must be < 0x20)
- Enumerator:
Function Documentation
int8_t obj_isFalse | ( | pPmObj_t | pobj ) |
PmReturn_t obj_isIn | ( | pPmObj_t | pobj, |
pPmObj_t | pitem | ||
) |
PmReturn_t obj_loadFromImg | ( | PmMemSpace_t | memspace, |
uint8_t const ** | paddr, | ||
pPmObj_t * | r_pobj | ||
) |
Loads an object from an image in memory.
Return pointer to object. Leave add pointing one byte past end of obj.
The following lists the simple object types and their image structures: -None: -type: int8_t - OBJ_TYPE_NON
-Int: -type: int8_t - OBJ_TYPE_INT -value: int32_t - signed integer value
-Float: -type: int8_t - OBJ_TYPE_FLOAT -value: float32_t - 32-bit floating point value
-Slice (is this allowed in img?): -type: int8_t - OBJ_TYPE_SLICE -index1: int16_t - first index. -index2: int16_t - second index.
- Parameters:
-
memspace memory space/type paddr ptr to ptr to obj return by reference: paddr pts to first byte after obj r_pobj Return arg, the loaded object.
- Returns:
- Return status
PmReturn_t obj_loadFromImgObj | ( | pPmObj_t | pimg, |
pPmObj_t * | r_pobj | ||
) |
PmReturn_t obj_print | ( | pPmObj_t | pobj, |
uint8_t | marshallString | ||
) |
Print an object, thereby using objects helpers.
- Parameters:
-
pobj Ptr to object for printing. marshallString Only has influence on the way strings are printed. If 0, just output the string bytewise. Otherwise, surround with single quotes and escape unprintable characters.
- Returns:
- Return status
PmReturn_t obj_repr | ( | pPmObj_t | pobj, |
pPmObj_t * | r_pstr | ||
) |
Generated on Tue Jul 12 2022 17:07:01 by
