2021-09-25 09:31:44 +02:00
|
|
|
|
|
|
|
/*====================================================================
|
|
|
|
* os_convert.h
|
|
|
|
*
|
|
|
|
* Copyright 1995, Silicon Graphics, Inc.
|
|
|
|
* All Rights Reserved.
|
|
|
|
*
|
|
|
|
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics,
|
|
|
|
* Inc.; the contents of this file may not be disclosed to third
|
|
|
|
* parties, copied or duplicated in any form, in whole or in part,
|
|
|
|
* without the prior written permission of Silicon Graphics, Inc.
|
|
|
|
*
|
|
|
|
* RESTRICTED RIGHTS LEGEND:
|
|
|
|
* Use, duplication or disclosure by the Government is subject to
|
|
|
|
* restrictions as set forth in subdivision (c)(1)(ii) of the Rights
|
|
|
|
* in Technical Data and Computer Software clause at DFARS
|
|
|
|
* 252.227-7013, and/or in similar or successor clauses in the FAR,
|
|
|
|
* DOD or NASA FAR Supplement. Unpublished - rights reserved under the
|
|
|
|
* Copyright Laws of the United States.
|
|
|
|
*====================================================================*/
|
|
|
|
|
|
|
|
/*---------------------------------------------------------------------*
|
|
|
|
Copyright (C) 1998 Nintendo. (Originated by SGI)
|
|
|
|
|
|
|
|
$RCSfile: os_convert.h,v $
|
|
|
|
$Revision: 1.2 $
|
|
|
|
$Date: 1999/04/21 02:53:11 $
|
|
|
|
*---------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
#ifndef _OS_CONVERT_H_
|
|
|
|
#define _OS_CONVERT_H_
|
|
|
|
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <PR/ultratypes.h>
|
|
|
|
|
|
|
|
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* Type definitions
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* Global definitions
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define OS_CLOCK_RATE 62500000LL
|
|
|
|
#define OS_CPU_COUNTER (OS_CLOCK_RATE*3/4)
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* Macro definitions
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define OS_NSEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625000LL))/(1000000000LL/15625000LL))
|
|
|
|
#define OS_USEC_TO_CYCLES(n) (((u64)(n)*(OS_CPU_COUNTER/15625LL))/(1000000LL/15625LL))
|
|
|
|
#define OS_CYCLES_TO_NSEC(c) (((u64)(c)*(1000000000LL/15625000LL))/(OS_CPU_COUNTER/15625000LL))
|
|
|
|
#define OS_CYCLES_TO_USEC(c) (((u64)(c)*(1000000LL/15625LL))/(OS_CPU_COUNTER/15625LL))
|
|
|
|
|
|
|
|
/* OS_K?_TO_PHYSICAL macro bug fix for CodeWarrior */
|
|
|
|
#ifndef __MWERKS__
|
|
|
|
#define OS_K0_TO_PHYSICAL(x) (u32)(((char *)(x)-0x80000000))
|
|
|
|
#define OS_K1_TO_PHYSICAL(x) (u32)(((char *)(x)-0xa0000000))
|
|
|
|
#else
|
|
|
|
#define OS_K0_TO_PHYSICAL(x) ((char *)(x)-0x80000000)
|
|
|
|
#define OS_K1_TO_PHYSICAL(x) ((char *)(x)-0xa0000000)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define OS_PHYSICAL_TO_K0(x) (void *)(((u32)(x)+0x80000000))
|
|
|
|
#define OS_PHYSICAL_TO_K1(x) (void *)(((u32)(x)+0xa0000000))
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* Extern variables
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
|
|
*
|
|
|
|
* Function prototypes
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Address translation routines and macros */
|
|
|
|
|
|
|
|
extern u32 osVirtualToPhysical(void *);
|
|
|
|
extern void * osPhysicalToVirtual(u32);
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) */
|
|
|
|
|
|
|
|
#ifdef _LANGUAGE_C_PLUS_PLUS
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* !_OS_CONVERT_H_ */
|