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

📄 portkern.h

📁 ertfs文件系统里面既有完整ucos程序
💻 H
字号:
//
//    Module description:
//        This file contains macros and prototypes that are kernel specific.  
//        See also portkern.c
//  

// This is for ERTFS_STAND_ALONE only. Not used in RTIP enviroment


#if (defined(PLUS))
#include <nucleus.h>
#define KS_TASK_HANDLE      NU_TASK *
#endif

#define IS_386_PM 0

#define IS_PC_ARCH  0
#define IS_NOT_PC_ARCH  1



// constant definition
// *******************************************************************
#define KS_LITTLE_ENDIAN  1      /* 1 is an intel byte order 0 is motorolla */
#define SHORT_W_ALLIGN    1      /* If 1 shorts must be on 2 byte boundaries */

#define FLAT_ADDRESSING 1
#define KS_FAR
/* Set to 1 to use memory mapped io (peeks and pokes) set to zero to use
   intel style in and out instructions */
#define USE_MEM_MAPPED_IO 1

#define KS_LITTLE_ODD_PTR_OK 0

#define KS_CONSTANT const

/* =============CHECK PROCESSOR CONFIGURATION  =============== */
#if (!defined(KS_LITTLE_ENDIAN) || !defined(KS_FAR)\
|| !defined(FLAT_ADDRESSING) || !defined(KS_CONSTANT)\
|| !defined(USE_MEM_MAPPED_IO) || !defined(SHORT_W_ALLIGN))
#error - Configuration values missing
#endif

// ********************************************************************
// TYPES
// ********************************************************************
/*
**             ** Typedefs that wont need changing          ** 
** byte            - Unsigned char
** word            - Unsigned short
** dword           - Unsigned long
** BOOLEAN         - int
*/

#define TRUE  1                 // Don't change
#define FALSE 0                 // Don't change

typedef unsigned char byte;     // Don't change
typedef unsigned short word;    // Don't change
typedef unsigned long dword;    // Don't change
#if (!defined(UCOS))
typedef int  BOOLEAN;           // Don't change
#endif


// *******************************************************************
// ********************************************************************
// DERIVED TYPES 
// *******************************************************************
// ********************************************************************

/* Derived types. These are derived from the values above and
   should not be changed */
typedef byte  KS_FAR * PFBYTE;
typedef int   KS_FAR * PFINT;
typedef word  KS_FAR * PFWORD;
typedef long  KS_FAR * PFLONG;
typedef dword KS_FAR * PFDWORD;
typedef char  KS_FAR * PFCHAR;
typedef void  KS_FAR * PFVOID;
typedef KS_CONSTANT char  KS_FAR * PFCCHAR;
typedef KS_CONSTANT byte  KS_FAR * PFCBYTE;


#if (defined(POLLOS))
#define KS_TASK_HANDLE      int
#endif

#if (defined(UCOS))
//#include    "IX86L.H"
//#include    "OS_CFG.H"
//#include    "\software\ucos\source\UCOS.H"
#include "includes.h"
#define KS_TASK_HANDLE      byte
#endif


BOOLEAN ks_resource_init(void);

#if (!defined(POLLOS))
/* POLLED MODE DOESN'T NEED SEMAPHORES */
void ks_claim_logdrive(int driveno);
void ks_release_logdrive(int driveno);
void ks_claim_fscritical(void);
void ks_release_fscritical(void);
void ks_claim_drive_io(int driveno);
void ks_release_drive_io(int driveno);
#endif

BOOLEAN ks_test_ide_signal(int controller, word timeout);
void ks_clear_ide_signal(int controller);
void ks_set_ide_signal(int controller);
dword ks_get_ticks(void);
word ks_ticks_p_sec(void);
word ks_msec_p_tick(void);
void ks_sleep(word no_ticks);
int phys_to_virtual(PFBYTE * virt, unsigned long phys);

#if (defined(POLLOS))
/* POLLED MODE DOESN'T NEED SEMAPHORES */
#define OS_FS_ENTER()
#define OS_FS_EXIT()
#define OS_CLAIM_LOGDRIVE(X)
#define OS_RELEASE_LOGDRIVE(X)
#define OS_CLAIM_FSCRITICAL()
#define OS_RELEASE_FSCRITICAL()
#define OS_CLAIM_DRIVE_IO(X)
#define OS_RELEASE_DRIVE_IO(X)
#else
#define OS_FS_ENTER()
#define OS_FS_EXIT()
#define OS_CLAIM_LOGDRIVE(X)    ks_claim_logdrive(X);
#define OS_RELEASE_LOGDRIVE(X)  ks_release_logdrive(X);
#define OS_CLAIM_FSCRITICAL()   ks_claim_fscritical();
#define OS_RELEASE_FSCRITICAL() ks_release_fscritical();
#define OS_CLAIM_DRIVE_IO(X)    ks_claim_drive_io(X);
#define OS_RELEASE_DRIVE_IO(X)  ks_release_drive_io(X);
#endif

/* Defined in portkern.c */
void ks_enable(void);
void ks_disable(void);


void aos_exit(void);

⌨️ 快捷键说明

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