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

📄 psos.h

📁 用于TM1300/PNX1300系列DSP(主要用于视频处理)的操作系统pSOS。包括全部源码
💻 H
📖 第 1 页 / 共 3 页
字号:
/***********************************************************************//*                                                                     *//*   MODULE:  include/psos.h                                           *//*   DATE:    99/04/16                                                 *//*   PURPOSE: Structure typedefs, function prototypes, macros, and     *//*            symbol definitions for pSOS+ kernel                      *//*                                                                     *//*---------------------------------------------------------------------*//*                                                                     *//*          Copyright 1988 - 1999, Integrated Systems, Inc.            *//*                         ALL RIGHTS RESERVED                         *//*                                                                     *//*   Permission is hereby granted to licensees of Integrated Systems,  *//*   Inc. products to use or abstract this computer program for the    *//*   sole purpose of implementing a product based on Integrated        *//*   Systems, Inc. products.  No other rights to reproduce, use,       *//*   or disseminate this program, whether in part or in whole, are     *//*   granted.                                                          *//*                                                                     *//*   Integrated Systems, Inc. makes no representation or warranties    *//*   with respect to the performance of this computer program, and     *//*   specifically disclaims any responsibility for any damages,        *//*   special or consequential, connected with its use.                 *//*                                                                     *//***********************************************************************/#ifndef _PSOS_H#define _PSOS_H#ifdef __cplusplusextern "C" {#endif#include "types.h"#include "errors.h"/* TriMedia specific version number */#define TM_PSOS_VERSION	252/***********************************************************************//* pSOS+ Structure Definitions                                         *//***********************************************************************//*---------------------------------------------------------------------*//* I/O Driver Parameter Structure                                      *//*---------------------------------------------------------------------*/typedef struct ioparms    {    ULONG used;             /* Set by driver if this interface used */    ULONG tid;              /* task ID of calling task */    ULONG in_dev;           /* Input device number */    ULONG status;           /* Processor status of caller */    void *in_iopb;          /* Input pointer to IO parameter block */    void *io_data_area;     /* no longer used */    ULONG err;              /* For error return */    ULONG out_retval;       /* For return value */    } IOPARMS;/*---------------------------------------------------------------------*//* pSOS+ I/O switch table entry - the table is an array of these       *//* structures                                                          *//*---------------------------------------------------------------------*/typedef struct iojent    {    void (*dev_init) (IOPARMS *);       /* device init procedure */    void (*dev_open) (IOPARMS *);       /* device open procedure */    void (*dev_close) (IOPARMS *);      /* device close procedure */    void (*dev_read) (IOPARMS *);       /* device read procedure */    void (*dev_write) (IOPARMS *);      /* device write procedure */    void (*dev_ioctl) (IOPARMS *);      /* device control procedure */    ULONG  dev_param;                   /* Used by STREAMS Modules */    USHORT rsvd2;                       /* reserved, set to 0 */    USHORT flags;                       /* If set to IO_AUTOINIT pSOS */                                        /* will automatically call the */                                        /* devices initialization */                                        /* function */    } IOJENT;#define pSOS_IO_Jump_Table iojent       /* For backward compatibility  */ struct co_info    {    ULONG   tid;  /* ID of task in whose context callout is executing */    ULONG   ptid; /* ID of task who performed start/restart/delete */    }; typedef struct co_info  CO_INFO;/***********************************************************************//* pSOS+ System Calls (defined in psos.s)                              *//***********************************************************************/ULONG as_catch(void (*start_addr)(), ULONG mode);ULONG as_notify(ULONG events);ULONG as_send(ULONG tid, ULONG signals);ULONG as_return(void);ULONG co_register(ULONG type, void (*func)(void *, CO_INFO *),                  void *arg, ULONG *coid);ULONG co_unregister(ULONG coid, ULONG flags, ULONG timeout);ULONG ev_receive(ULONG events, ULONG flags, ULONG timeout,                  ULONG *events_r);ULONG ev_send(ULONG tid, ULONG events);void  k_fatal(ULONG err_code, ULONG flags);ULONG k_terminate(ULONG node, ULONG fcode, ULONG flags);ULONG m_ext2int(void *ext_addr, void **int_addr);ULONG m_int2ext(void *int_addr, void **ext_addr);ULONG pt_create(char name[4], void *paddr, void *laddr, ULONG length,                ULONG bsize, ULONG flags, ULONG *ptid, ULONG *nbuf);ULONG pt_delete(ULONG ptid);ULONG pt_getbuf(ULONG ptid, void **bufaddr);ULONG pt_ident(char name[4], ULONG node, ULONG *ptid);ULONG pt_retbuf(ULONG ptid, void *buf_addr);ULONG pt_sgetbuf(ULONG ptid, void **paddr, void **laddr);ULONG q_broadcast(ULONG qid, ULONG msg_buf[4], ULONG *count);ULONG q_create(char name[4], ULONG count, ULONG flags, ULONG *qid);ULONG q_delete(ULONG qid);ULONG q_ident(char name[4], ULONG node, ULONG *qid);ULONG q_notify(ULONG qid, ULONG tid, ULONG events);ULONG q_receive(ULONG qid, ULONG flags, ULONG timeout,                 ULONG msg_buf[4]);ULONG q_send(ULONG qid, ULONG msg_buf[4]);ULONG q_urgent(ULONG qid, ULONG msg_buf[4]);ULONG q_vcreate(char name[4], ULONG flags, ULONG maxnum, ULONG maxlen,                ULONG *qid);ULONG q_vdelete(ULONG qid);ULONG q_vident(char name[4], ULONG node, ULONG *qid);ULONG q_vnotify(ULONG qid, ULONG tid, ULONG events);ULONG q_vreceive(ULONG qid, ULONG flags, ULONG timeout, void *msgbuf,                 ULONG buf_len, ULONG *msg_len);ULONG q_vsend(ULONG qid, void *msgbuf, ULONG msg_len);ULONG q_vurgent(ULONG qid, void *msgbuf, ULONG msg_len);ULONG q_vbroadcast(ULONG qid, void *msgbuf, ULONG msg_len, ULONG *count);ULONG rn_create(char name[4], void *saddr, ULONG length, ULONG unit_size,                ULONG flags, ULONG *rnid, ULONG *asiz);ULONG rn_delete(ULONG rnid);ULONG rn_getseg(ULONG rnid, ULONG size, ULONG flags, ULONG timeout,                void **seg_addr);ULONG rn_ident(char name[4], ULONG *rnid);ULONG rn_retseg(ULONG rnid, void *seg_addr);ULONG sm_create(char name[4], ULONG count, ULONG flags,ULONG *smid);ULONG sm_delete(ULONG smid);ULONG sm_ident(char name[4], ULONG node, ULONG *smid);ULONG sm_p(ULONG smid, ULONG flags, ULONG timeout);ULONG sm_v(ULONG smid);ULONG sm_notify(ULONG smid, ULONG tid, ULONG events);ULONG t_create(char name[4], ULONG prio, ULONG sstack, ULONG ustack,               ULONG flags, ULONG *tid);ULONG t_delete(ULONG tid);ULONG t_getreg(ULONG tid, ULONG regnum, ULONG *reg_value);ULONG t_ident(char name[4], ULONG node, ULONG *tid);ULONG t_mode(ULONG mask, ULONG new_mode, ULONG *old_mode);ULONG t_restart(ULONG tid, ULONG targs[]);ULONG t_resume(ULONG tid);ULONG t_setpri(ULONG tid, ULONG newprio, ULONG *oldprio);ULONG t_setreg(ULONG tid, ULONG regnum, ULONG reg_value);ULONG t_start(ULONG tid, ULONG mode, void (*start_addr)(), ULONG targs[]);ULONG t_tslice(ULONG tid, ULONG new_tslice, ULONG *old_tslice);ULONG t_suspend(ULONG tid);ULONG t_addvar(ULONG tid, void **tv_addr, void *tv_value);ULONG t_delvar(ULONG tid, void **tv_addr);ULONG tm_cancel(ULONG tmid);ULONG tm_evafter(ULONG ticks, ULONG events, ULONG *tmid);ULONG tm_evevery(ULONG ticks, ULONG events, ULONG *tmid);ULONG tm_evwhen(ULONG date, ULONG time, ULONG ticks, ULONG events,                ULONG *tmid);ULONG tm_get(ULONG *date, ULONG *time, ULONG *ticks);ULONG tm_set(ULONG date, ULONG time, ULONG ticks);ULONG tm_tick(void);ULONG tm_wkafter(ULONG ticks);ULONG tm_wkwhen(ULONG date, ULONG time, ULONG ticks);ULONG tm_getticks(ULONG *tickshi, ULONG *tickslo);/*---------------------------------------------------------------------*//* Asynchronous Service Call Definitions                               *//*---------------------------------------------------------------------*/ULONG ev_asend(ULONG tid, ULONG events);ULONG sm_av(ULONG smid);ULONG q_asend(ULONG qid, ULONG msg_buf[4]);ULONG q_avsend(ULONG qid, void *msgbuf, ULONG msg_len);ULONG q_aurgent(ULONG qid, ULONG msg_buf[4]);ULONG q_avurgent(ULONG qid, void *msgbuf, ULONG msg_len);/*---------------------------------------------------------------------*//* Mutex Service Call definitions                                      *//*---------------------------------------------------------------------*/ULONG mu_create(char name[4], ULONG flags, ULONG ceiling, ULONG *muid);ULONG mu_delete(ULONG muid);ULONG mu_ident(char name[4], ULONG node, ULONG *muid);ULONG mu_lock(ULONG muid, ULONG flags, ULONG timeout);ULONG mu_unlock(ULONG muid);ULONG mu_setceil(ULONG muid, ULONG newceil, ULONG *oldceil); /*---------------------------------------------------------------------*//* Condition Variables Service Call Definitions                        *//*---------------------------------------------------------------------*/ULONG cv_create(char name[4], ULONG flags, ULONG *cvid);ULONG cv_delete(ULONG cvid);ULONG cv_ident(char name[4], ULONG node, ULONG *cvid);ULONG cv_wait(ULONG cvid, ULONG muid, ULONG timeout);ULONG cv_signal(ULONG cvid);ULONG cv_broadcast(ULONG cvid);ULONG cv_asignal(ULONG cvid);ULONG cv_abroadcast(ULONG cvid);/*---------------------------------------------------------------------*//* TSD Service Call Definitions                                        *//*---------------------------------------------------------------------*/ULONG tsd_create(char name[4], ULONG size, ULONG flags, void ****tsdanchor,                 ULONG *tsdix);ULONG tsd_delete(ULONG tsdix);ULONG tsd_ident(char name[4], ULONG *tsdix);ULONG tsd_getval(ULONG tsdix, ULONG tid, void **valp);ULONG tsd_setval(ULONG tsdix, ULONG tid, void *newval);/*---------------------------------------------------------------------*//* Service Call Extension Service Call Definitions                     *//* NOTE: The interface may change in future versions.                  *//*---------------------------------------------------------------------*/ULONG sc_register(ULONG major, ULONG minor, ULONG flags, ULONG ncalls,              void *svcjtab, void (*initfn)(void *, void *), void *arg);ULONG sc_unregister(ULONG major, ULONG minor, ULONG flags);/*---------------------------------------------------------------------*//* I/O Service Call Definitions                                        *//*---------------------------------------------------------------------*/ULONG de_close(ULONG dev, void *iopb, void *retval);ULONG de_cntrl(ULONG dev, void *iopb, void *retval);ULONG de_init(ULONG dev, void *iopb, void *retval, void **data_area);ULONG de_open(ULONG dev, void *iopb, void *retval);ULONG de_read(ULONG dev, void *iopb, void *retval);ULONG de_write(ULONG dev, void *iopb, void *retval);ULONG ioj_bind(ULONG major, struct iojent *iojent);ULONG ioj_bindany(struct iojent *iojent, ULONG *major);ULONG ioj_unbind(ULONG major);ULONG ioj_lock(ULONG major);ULONG ioj_unlock(ULONG major);ULONG ioj_getent(ULONG major, struct iojent *iojent); ULONG dnt_add(char *name, ULONG dev);ULONG dnt_remove(char *name);ULONG dnt_find(char *name, ULONG *dev);#ifdef __TCS__/* The following function is a TriMedia extension: */typedef struct {   ULONG     *stk_low;       /* lowest address of task's stack		*/   ULONG     *stk_sp;        /* current stack pointer			*/   ULONG     *stk_high;      /* highest address of task's stack		*/   ULONG      load;          /* high water mark; maximum amount of	*/                             /*    bytes used on stack Up to the	*/                             /*    moment of the call to t_taskinfo	*/   char       name[4];       /* task's name				*/   ULONG      appid;         /* TCS's application id			*/} PSOS_Task_Info;ULONG t_taskinfo( ULONG task, PSOS_Task_Info *info );#endif/***********************************************************************//* pSOS+ Symbol Definitions                                            *//***********************************************************************/

⌨️ 快捷键说明

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