⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kernel_interface.h

📁 用于TM1300/PNX1300系列DSP(主要用于视频处理)的操作系统pSOS。包括全部源码
💻 H
字号:
#ifndef _PSOSM_H_#define _PSOSM_H_#include <stdarg.h>#include <sysvars.h>#include <psos.h>#include <sys_conf.h>#include "errno.h"#ifndef __TCS__#include <sys/signal.h>#endif#ifdef __TCS__#define KI_INT intRTOS#else#define KI_INT SIGUSR2#endif/*************************************//* SMKI Symbol Definitions           *//*************************************/#ifndef MC_KIMAXNODES    #define MC_KIMAXNODES 8#endif#ifndef MC_KINENVELOPES    #define MC_KINENVELOPES 100#endif#define SMEM_MAXNODES MC_KIMAXNODES   /* max number of nodes               */#define NENVELOPES    MC_KINENVELOPES /* number of envelopes per queue     */#define MASTER        1             /* master node number                */#define SPIN_VAL      500           /* Timeout value used in software spin loops */#define OFFSET(type, field)  ((ULONG)(&((type *)0)->field))                                    /* Macro to calculate the offset of an item in a struct *//*************************************//* Function Code Definitions         *//*************************************/#define KI_INIT       1             /* initialize KI interface         */#define KI_GETPKB     2             /* get a packet buffer             */#define KI_RETPKB     3             /* return a packet buffer          */#define KI_SEND       4             /* send a packet to a node         */#define KI_BROADCAST  5             /* broadcast a packet - OBSOLETE   */#define KI_RECEIVE    6             /* receive a packet                */#define KI_TIME       7             /* indicate a tick has gone by     */#define KI_CHECK      8             /* poll for packets                */#define KI_ROSTER     9             /* roster notification routine     *//*************************************//* Fatal Error Definitions           *//*************************************/#define FAT_LTO       0xC0000003  /* lock timeout */#define FAT_NOPB      0xC0000004  /* no packet buffers */#define FAT_NOQ       0xC0000005  /* no queue */#define FAT_NOTSUPP   0xC0000006  /* service not supported */#define FAT_BINSTALL  0xC0000007  /* cannot install bus error handler */#define FAT_BERROR    0xC0000008  /* bus error - cannot access node */#define FAT_NOD       0xC0000009  /* number of nodes > max nodes */#define FAT_SHM       0xC0000010  /* failed to set up shared memory */#define FAT_QUEUE     0xC0000011  /* error in init_queue */#define FAT_ROSTER    0xC0000012  /* error in init_roster */#define FAT_SIG       0xC0000013  /* error in signal *//*************************************//* SMKI Structure Definitions        *//*************************************//*---------------------------------------------------------------------*//* ENVELOPE Structure Definition                                       *//*---------------------------------------------------------------------*/typedef struct {  ULONG source;  ULONG index;  ULONG next;                     /* index of next buffer in list    */  ULONG packet[(MC_KIMAXBUF+3)/4];   /* buffer data                     */} ENVELOPE;/*---------------------------------------------------------------------*//* QUEUE Structure Definition                                          *//*---------------------------------------------------------------------*/typedef struct {  ULONG msg_head;                  /* Head of message list (index)   */  ULONG msg_tail;                  /* Tail of message list (index)   */  ULONG free_head;                 /* Head of free list (index)      */  ULONG mq_lock[SMEM_MAXNODES + 1];/* Access lock for message list   */  ULONG fq_lock[SMEM_MAXNODES + 1];/* Access lock for free list      */  ENVELOPE envelope[NENVELOPES];   /* The envelope pool              */} QUEUE;/*---------------------------------------------------------------------*//* DIRECTORY Structure Definition                                      *//*---------------------------------------------------------------------*/typedef struct {  QUEUE *queue_addr[SMEM_MAXNODES + 1];} DIRECTORY;extern ULONG My_Node;     #ifdef __TCS__	extern DIRECTORY k_directory;        extern QUEUE     k_queue;	#define Dir      (&k_directory)	#define My_Queue (&k_queue)        #else 	extern DIRECTORY *k_directory;	extern QUEUE     *k_queues;	#define Dir       k_directory	#define My_Queue (&(k_queues[My_Node]))#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -