Developer World
Spresense SDK Library v3.2.0-ebc0364
mptask.h File Reference
#include <sys/types.h>
#include <asmp/types.h>
#include <semaphore.h>
#include <stdbool.h>

Go to the source code of this file.

Classes

struct  mptask_attr
 
struct  mpbindobj
 
struct  unified_binary
 
struct  binary_info
 
struct  mptask
 

Macros

#define CPU_ZERO(s)   do { *(s) = 0; } while (0)
 
#define CPU_SET(c, s)   do { *(s) |= (1 << (c)); } while (0)
 
#define CPU_CLR(c, s)   do { *(s) &= ~(1 << (c)); } while (0)
 
#define CPU_ISSET(c, s)   ((*(s) & (1 << (c))) != 0)
 
#define CPU_COUNT(s)   sched_cpu_count(s)
 
#define CPU_AND(d, s1, s2)   do { *(d) = *(s1) & *(s2); } while (0)
 
#define CPU_OR(d, s1, s2)   do { *(d) = *(s1) | *(s2); } while (0)
 
#define CPU_XOR(d, s1, s2)   do { *(d) = *(s1) ^ *(s2); } while (0)
 
#define CPU_EQUAL(s1, s2)   (*(s2) == *(s2))
 
#define CPU_ALLOC(n)   (FAR cpu_set_t *)malloc(sizeof(cpu_set_t));
 
#define CPU_FREE(s)   free(s)
 
#define CPU_ALLOC_SIZE(n)   sizeof(cpu_set_t)
 
#define CPU_ZERO_S(n, s)   CPU_ZERO_S(s)
 
#define CPU_SET_S(c, n, s)   CPU_SET(c,s)
 
#define CPU_CLR_S(c, n, s)   CPU_CLR(c,s)
 
#define CPU_ISSET_S(c, n, s)   CPU_ISSET(c,s)
 
#define CPU_COUNT_S(n, s)   CPU_COUNT(s)
 
#define CPU_AND_S(n, d, s1, s2)   CPU_AND(d,s1,s2)
 
#define CPU_OR_S(n, d, s1, s2)   CPU_OR(d,s1,s2)
 
#define CPU_XOR_S(n, d, s1, s2)   CPU_XOR(d,s1,s2)
 
#define CPU_EQUAL_S(n, s1, s2)   CPU_EQUAL(s1,s2)
 
#define NMPBINDS   8
 
#define mptask_bindobj(t, o)   mptask_bind((t), (mpobj_t *)(o))
 
#define EXTERN   extern "C"
 

Typedefs

typedef enum mptask_state mptask_state_t
 
typedef struct mptask_attr mptask_attr_t
 
typedef struct mpbindobj mpbindobj_t
 Bind object type. More...
 
typedef struct unified_binary unified_binary_t
 
typedef struct binary_info binary_info_t
 
typedef struct mptask mptask_t
 MP task object. More...
 

Enumerations

enum  mptask_state { STATE_INIT = 0 , STATE_EXEC , STATE_PAUSED , STATE_EXIT }
 

Functions

int mptask_init (mptask_t *task, const char *filename)
 
int mptask_init_secure (mptask_t *task, const char *filename)
 
int mptask_attr_init (mptask_attr_t *attr)
 
int mptask_destroy (mptask_t *task, bool force, int *exit_status)
 
int mptask_bind (mptask_t *task, mpobj_t *obj)
 
int mptask_setattr (mptask_t *task, const mptask_attr_t *attr)
 
int mptask_getattr (mptask_t *task, mptask_attr_t *attr)
 
int mptask_assign (mptask_t *task)
 
int mptask_assign_cpus (mptask_t *task, int ncpus)
 
cpuid_t mptask_getcpuid (mptask_t *task)
 
cpuid_t mptask_getsubcoreid (mptask_t *task)
 
int mptask_getcpuidset (mptask_t *task, cpu_set_t *cpuids)
 
int mptask_exec (mptask_t *task)
 
int mptask_join (mptask_t *task, int *exit_status)