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

📄 tk_ntask.h

📁 internich公司实现的一个非常非常小的OS
💻 H
字号:
/* * FILENAME: tk_ntask.h * * Copyright  2000-2004 By InterNiche Technologies Inc. All rights reserved * * * MODULE: NTF * * PORTABLE: yes */#ifndef TK_NTASK_H#define TK_NTASK_H#ifndef INICHE_TASKS#error must define INICHE_TASKS in ipport.h to use this file#endif/* include the nichtask file in misclib */#include "task.h"/* the TK_ object macros, for defining task objects, etc. */#define  TK_ENTRY(name)       int   name(int parm)#define  TK_ENTRY_PTR(name)   int(*name)(int)#define  TK_OBJECT(name)      task *   name#define  TK_OBJECT_PTR(name)  task **  name#ifndef  TK_RETURN_ERROR#define  TK_RETURN_ERROR()    return   (-1)#endif#ifndef  TK_RETURN_OK#define  TK_RETURN_OK()       parm++;  return   (0)#endif/* the TK_ function macros: */#define  tk_yield()     {  tk_wake(tk_cur);  tk_block(); }#define  TK_APP_WAKE(ev)   tk_ev_wake(ev)#define  TK_WAKE(task)     tk_wake(*task)#define  TK_BLOCK()        tk_block()#define  TK_SLEEP(tks)     tk_sleep(tks)#define  NET_PRIORITY         0     /* not used on tasks */#define  MAIN_TASK_IS_NET     1     /* compiler main() is converted to net task */#define  TK_THIS  tk_cur#define  TK_NETMAINPARM       0     /* parameter to main/net task */#define  TCPWAKE_ALREADY      1     /* tell tcp we already have this */#if !defined(STK_TOPDOWN) && !defined(STK_BOTTOMUP)#define  STK_TOPDOWN          1     /* Most CPU stacks are top down */#endif/* * synchronization primitives *  * Need one or the other of LOCK_NET_RESOURCE/UNLOCK_NET_RESOURCE and * ENTER_CRIT_SECTION/EXIT_CRIT_SECTION.  These should be implementable * as either functions or macros, so we allow e.g. ipport.h_h to  * override these definitions by defining the names as macros. * NicheTask targets generally use ENTER_CRIT_SECTION/EXIT_CRIT_SECTION, * so we default to function declaractions for them. */#ifndef LOCK_NET_RESOURCE#define  LOCK_NET_RESOURCE(x)#endif#ifndef UNLOCK_NET_RESOURCE#define  UNLOCK_NET_RESOURCE(x)#endif#ifndef ENTER_CRIT_SECTIONvoid ENTER_CRIT_SECTION(void * p);#endif#ifndef EXIT_CRIT_SECTIONvoid EXIT_CRIT_SECTION(void * p);#endif/* declare tasks which need to be accessed by system code */extern   task *   to_netmain;extern   task *   to_emailer;extern   task *   to_ftpclnt;extern   task *   to_pingcheck;/* define macros to  wake net task on packet receipt, etc */#define  SignalPktDemux()  tk_wake(to_netmain)#define  SignalEmailTask() tk_wake(to_emailer)#define  SignalFtpClient() tk_wake(to_ftpclnt)#endif  /* TK_NTASK_H */

⌨️ 快捷键说明

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