📄 portkern.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 + -