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

📄 getput.h

📁 MIPS下的boottloader yamon 的源代码
💻 H
字号:
/************************************************************************
 *
 *  getput.h
 *
 *  Get and put routines for handling 8, 16 and 32 bit accesses
 *
 *
 * ######################################################################
 *
 * Copyright (c) 1999-2000 MIPS Technologies, Inc. All rights reserved. 
 * 
 * Unpublished rights reserved under the Copyright Laws of the United States of 
 * America. 
 * 
 * This document contains information that is proprietary to MIPS Technologies, 
 * Inc. ("MIPS Technologies"). Any copying, modifying or use of this information 
 * (in whole or in part) which is not expressly permitted in writing by MIPS 
 * Technologies or a contractually-authorized third party is strictly 
 * prohibited. At a minimum, this information is protected under unfair 
 * competition laws and the expression of the information contained herein is 
 * protected under federal copyright laws. Violations thereof may result in 
 * criminal penalties and fines. 
 * MIPS Technologies or any contractually-authorized third party reserves the 
 * right to change the information contained in this document to improve 
 * function, design or otherwise. MIPS Technologies does not assume any 
 * liability arising out of the application or use of this information. Any 
 * license under patent rights or any other intellectual property rights owned 
 * by MIPS Technologies or third parties shall be conveyed by MIPS Technologies 
 * or any contractually-authorized third party in a separate license agreement 
 * between the parties. 
 * The information contained in this document constitutes one or more of the 
 * following: commercial computer software, commercial computer software 
 * documentation or other commercial items. If the user of this information, or 
 * any related documentation of any kind, including related technical data or 
 * manuals, is an agency, department, or other entity of the United States 
 * government ("Government"), the use, duplication, reproduction, release, 
 * modification, disclosure, or transfer of this information, or any related 
 * documentation of any kind, is restricted in accordance with Federal 
 * Acquisition Regulation 12.212 for civilian agencies and Defense Federal 
 * Acquisition Regulation Supplement 227.7202 for military agencies. The use of 
 * this information by the Government is further restricted in accordance with 
 * the terms of the license agreement(s) and/or applicable contract terms and 
 * conditions covering this information from MIPS Technologies or any 
 * contractually-authorized third party. 
 *
 ************************************************************************/

#ifndef	_GETPUT_
#define	_GETPUT_

/* First the macroes							*/

#define	GETB8(p)	(*(BYTE *)(p))
#define	GETB16(p)	( (UINT16) (GETB8 (p) <<  8) | (UINT16) GETB8 ((BYTE *)(p)+1) )
#define	GETB32(p)	( (UINT32) (GETB16(p) << 16) | (UINT32) GETB16((BYTE *)(p)+2) )

#define	PUTB8(p,v)	*(BYTE *)(p) = (v)
#define PUTB16(p,v)	{ PUTB8 (p,(v) >>  8); PUTB8 ((BYTE *)(p)+1,v); }
#define	PUTB32(p,v)	{ PUTB16(p,(v) >> 16); PUTB16((BYTE *)(p)+2,v); }

#define	GETL8(p)	GETB8(p)
#define	GETL16(p)	( (UINT16) GETL8 (p) | (UINT16) (GETL8 ((BYTE *)(p)+1) <<  8) )
#define	GETL32(p)	( (UINT32) GETL16(p) | (UINT32) (GETL16((BYTE *)(p)+2) << 16) )

#define	PUTL8(p,v)	PUTB8 (p,v)
#define PUTL16(p,v)	{ PUTL8 (p,v); PUTL8 ((BYTE *)(p)+1,(v) >>  8); }
#define	PUTL32(p,v)	{ PUTL16(p,v); PUTL16((BYTE *)(p)+2,(v) >> 16); }


/* Then the routines to do exactly the same				*/

#define			getb8(p)	GETB8(p)
extern	UINT16		getb16(BYTE *p);
extern	UINT32		getb32(BYTE *p);

#define			putb8(p,v)	PUTB8(p,v)
extern	void		putb16(BYTE *p, UINT16 v);
extern	void		putb32(BYTE *p, UINT32 v);

#define			getl8(p)	GETB8(p)
extern	UINT16		getl16(BYTE *p);
extern	UINT32		getl32(BYTE *p);

#define			putl8(p,v)	PUTB8(p,v)
extern	void		putl16(BYTE *p, UINT16 v);
extern	void		putl32(BYTE *p, UINT32 v);

#endif	/* _GETPUT_ */

⌨️ 快捷键说明

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