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

📄 modularize.h

📁 一个用在mips体系结构中的操作系统
💻 H
字号:
/* * Copyright (C) 1996-1998 by the Board of Trustees *    of Leland Stanford Junior University. *  * This file is part of the SimOS distribution.  * See LICENSE file for terms of the license.  * *//*  *  @TITLE "modularize.h" * *  This file is supposed to include all the typedefs, macros *  and function headers that allows diskdevice.c to compile *  independently of proteus. * *//* $Id: modularize.h,v 1.7 1998/02/10 00:36:46 bosch Exp $ */#ifndef MODULARIZE_H#define MODULARIZE_H/* ---- including header files ---- */#include <stdio.h>#include <math.h>  #include <sys/types.h>#include <sys/stat.h>#include <sys/file.h>#include <malloc.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <sim_error.h>/* ---- constant declarations ---- */#define TRUE        1#define FALSE       0#define ERROR      -1		/* misc error */#define FATAL      -9		/* fatal error *//* ----global variables ---- *//* none *//* ---- macros for debugging ---- */#define DEBUG1 if (1)#define DEBUG0 if (0)/* ======================================================================= *//* Redefinition of the macros or constants previously available in   porteus main program. */#define PRIVATE static#define ulong unsigned long#define CYCLE_COUNTING_OFF#define CYCLE_COUNTING_ON#define INVARIANT2(a,b)   {if (!(a)) {fprintf(stderr, b); ASSERT(0);}}#define INVARIANT3(a,b,c)   {if (!(a)) {fprintf(stderr, b, c); ASSERT(0);}}#define INVARIANT4(a,b,c,d)   {if (!(a)) {fprintf(stderr, b, c, d); ASSERT(0);}}#ifndef SOLOextern double diskTICSperMSEC;#define TICSperMSEC (diskTICSperMSEC)#define MSECperTIC  (1.0/diskTICSperMSEC)#else#define TICSperMSEC  25000.0	/* assuming 25MHz */#define MSECperTIC  (1/25000.0)	/* assuming 25MHz */#endif#define UlongAbsDiff(a,b)  ((a) >(b)? ((a)-(b)):((b)-(a)))#define define_local(a, b, c) (*(a) = (b))/* though only consists of 0 and 1 */typedef int boolean;/* definition for TICS */#ifdef LONG_LONG_TIME typedef uint64 TICS;#elsetypedef unsigned long TICS;#endif#ifdef LONG_LONG_TIME# define MAXTIME (TICS)(0xffffffffffffffffLL)#else# define MAXTIME (TICS)(0xffffffffL)#endif#define NEVER MAXTIME/* Redefinition of functions in the timing module */TICS InitTime(void);TICS GetTime(void);TICS max(TICS one, TICS two);TICS min(TICS one, TICS two);void WaitTime(TICS);void WaitDuration(TICS);char* time_print(TICS t);char* timep_print(TICS *t);/* ======================================================================= *//* this is the global structure that contains information about time */typedef struct timestruct{  TICS currenttime;} timestruct;/* this is to be used by the event manager */void thread_suspend(int tid);#define MY_TID  0xFF		/* just a dummy used as a thread ID */#define MY_STID 0xFF		/* another dummy */#ifndef SOLOextern void thread_wakeup(int disk,int tid);extern void  thread_suspend_continue(int tid, void (*routine)(void *), void *arg);#endif/* ---------------- for REQUEST() only ------------------- *//* maximum heap size */#define HEAP_MAX  40#define CURR_PROCESSOR 5	/* dummy */#define NO_OF_DISKS 1000      /* plenty */#define INDEX_EVENT(a,b,c)      {}#define INDEX_TIME_EVENT(a,b,c,d) {}#define SUM_ARRAY_METRIC(a, b, c) {}#define AVG_ARRAY_METRIC(a,b,c)   {}#define STDDEV_ARRAY_METRIC(a,b,c,d) {}typedef char *UserData;  /* ---- typedef for function pointer to functions that returns void ---- */typedef void (*FuncPtr)(int, TICS);#endif                          /* only include this file if it is not				   previously included */

⌨️ 快捷键说明

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