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

📄 isa_defs.h

📁 rtptools-1.18.tar.gz rtp generator
💻 H
字号:
/* * Copyright (c) 1993-1994, by Sun Microsystems, Inc. */#ifndef	_SYS_ISA_DEFS_H#define	_SYS_ISA_DEFS_H/* * This header file serves to group a set of well known defines and to * set these for each instruction set architecture.  These defines may * be divided into two groups;  characteristics of the processor and * implementation choices for Solaris on a processor. * * Processor Characteristics: * * _LITTLE_ENDIAN / _BIG_ENDIAN: *	The natural byte order of the processor.  A pointer to an int points *	to the least/most significant byte of that int. * * _STACK_GROWS_UPWARD / _STACK_GROWS_DOWNWARD: *	The processor specific direction of stack growth.  A push onto the *	stack increases/decreases the stack pointer, so it stores data at *	successively higher/lower addresses.  (Stackless machines ignored *	without regrets). * * _LONG_LONG_HTOL / _LONG_LONG_LTOH: *	A pointer to a long long points to the most/least significant long *	within that long long. * * _BIT_FIELDS_HTOL / _BIT_FIELDS_LTOH: *	The C compiler assigns bit fields from the high/low to the low/high end *	of an int (most to least significant vs. least to most significant). * * _IEEE_754: *	The processor (or supported implementations of the processor) *	supports the ieee-754 floating point standard.  No other floating *	point standards are supported (or significant).  Any other supported *	floating point formats are expected to be cased on the ISA processor *	symbol. * * _CHAR_IS_UNSIGNED / _CHAR_IS_SIGNED: *	The C Compiler implements objects of type `char' as `unsigned' or *	`signed' respectively.  This is really an implementation choice of *	the compiler writer, but it is specified in the ABI and tends to *	be uniform across compilers for an instruction set architecture. *	Hence, it has the properties of a processor characteristic. * * _CHAR_ALIGNMENT / _SHORT_ALIGNMENT / _INT_ALIGNMENT / _LONG_ALIGNMENT / * _LONG_LONG_ALIGNMENT / _DOUBLE_ALIGNMENT / _LONG_DOUBLE_ALIGNMENT / * _POINTER_ALIGNMENT: *	The ABI defines alignment requirements of each of the primitive *	object types.  Some, if not all, may be hardware requirements as * 	well.  The values are expressed in "byte-alignment" units. * * _MAX_ALIGNMENT: *	The most stringent alignment requirement as specified by the ABI. *	Equal to the maximum of all the above _XXX_ALIGNMENT values. * * _ALIGNMENT_REQUIRED: *	True or false (1 or 0) whether or not the hardware requires the ABI *	alignment. * * * Implementation Choices: * * _SUNOS_VTOC_8 / _SUNOS_VTOC_16 / _SVR4_VTOC_16: *	This specifies the form of the disk VTOC (or label): * *	_SUNOS_VTOC_8: *		This is a VTOC form which is upwardly compatible with the *		SunOS 4.x disk label and allows 8 partitions per disk. * *	_SUNOS_VTOC_16: *		In this format the incore vtoc image matches the ondisk *		version.  It allows 16 slices per disk, and is not *		compatible with the SunOS 4.x disk label. * *	Note that these are not the only two VTOC forms possible and *	additional forms may be added.  One possible form would be the *	SVr4 VTOC form.  The symbol for that is reserved now, although *	it is not implemented. * *	_SVR4_VTOC_16: *		This VTOC form is compatible with the System V Release 4 *		VTOC (as implemented on the SVr4 Intel and 3b ports) with *		16 partitions per disk. * * * _DMA_USES_PHYSADDR / _DMA_USES_VIRTADDR *	This describes the type of addresses used by system DMA: * *	_DMA_USES_PHYSADDR: *		This type of DMA, used in the x86 and PowerPC implementations, *		requires physical addresses for DMA buffers.  The 24-bit *		addresses used by some legacy boards is the source of the *		"low-memory" (<16MB) requirement for some devices using DMA. * *	_DMA_USES_VIRTADDR: *		This method of DMA allows the use of virtual addresses for *		DMA transfers. * * _FIRMWARE_NEEDS_FDISK / _NO_FDISK_PRESENT *      This indicates the presence/absence of an fdisk table. * *      _FIRMWARE_NEEDS_FDISK *              The fdisk table is required by system firmware.  If present, *              it allows a disk to be subdivided into multiple fdisk *              partitions, each of which is equivalent to a separate, *              virtual disk.  This enables the co-existence of multiple *              operating systems on a shared hard disk. * *      _NO_FDISK_PRESENT *              If the fdisk table is absent, it is assumed that the entire *              media is allocated for a single operating system. */#ifdef	__cplusplusextern "C" {#endif/* * The following set of definitions characterize the Solaris on Intel systems. * * The feature test macro __i386 is generic for all processors implementing * the Intel 386 instruction set or a superset of it.  Specifically, this * includes all members of the 386, 486, and Pentium family of processors. */#if defined(__i386) || defined(i386)/* * Make sure that the ANSI-C "politically correct" symbol is defined. */#if !defined(__i386)#define	__i386#endif/* * Define the appropriate "processor characteristics" */#define	_LITTLE_ENDIAN#define	_STACK_GROWS_DOWNWARD#define	_LONG_LONG_LTOH#define	_BIT_FIELDS_LTOH#define	_IEEE_754#define	_CHAR_IS_SIGNED#define	_CHAR_ALIGNMENT		1#define	_SHORT_ALIGNMENT	2#define	_INT_ALIGNMENT		4#define	_LONG_ALIGNMENT		4#define	_LONG_LONG_ALIGNMENT	4#define	_DOUBLE_ALIGNMENT	4#define	_LONG_DOUBLE_ALIGNMENT	4#define	_POINTER_ALIGNMENT	4#define	_MAX_ALIGNMENT		4#define	_ALIGNMENT_REQUIRED	0/* * Define the appropriate "implementation choices". */#define	_SUNOS_VTOC_16#define	_DMA_USES_PHYSADDR#define	_FIRMWARE_NEEDS_FDISK/* * The following set of definitions characterize the Solaris on PowerPC systems. * * The feature test macro __ppc is generic for all processors implementing * the PowerPC instruction set or a superset of it.  Specifically, this * includes all members of the 601, 603, 604, and 620 family of processors. */#elif defined(__ppc)/* * Define the appropriate "processor characteristics" */#define	_LITTLE_ENDIAN#define	_STACK_GROWS_DOWNWARD#define	_LONG_LONG_LTOH#define	_BIT_FIELDS_LTOH#define	_IEEE_754#define	_CHAR_IS_UNSIGNED#define	_CHAR_ALIGNMENT		1#define	_SHORT_ALIGNMENT	2#define	_INT_ALIGNMENT		4#define	_LONG_ALIGNMENT		4#define	_LONG_LONG_ALIGNMENT	8#define	_DOUBLE_ALIGNMENT	8#define	_LONG_DOUBLE_ALIGNMENT	16#define	_POINTER_ALIGNMENT	4#define	_MAX_ALIGNMENT		16#define	_ALIGNMENT_REQUIRED	1/* * Define the appropriate "implementation choices". */#define	_SUNOS_VTOC_16#define	_DMA_USES_PHYSADDR#define	_FIRMWARE_NEEDS_FDISK/* * The following set of definitions characterize the Solaris on SPARC system. * * The flag __sparc is only guaranteed to indicate SPARC processors version 8 * or earlier. */#elif defined(__sparc) || defined(sparc)/* * Make sure that the ANSI-C "politically correct" symbol is defined. */#if !defined(__sparc)#define	__sparc#endif/* * Define the appropriate "processor characteristics" */#define	_BIG_ENDIAN#define	_STACK_GROWS_DOWNWARD#define	_LONG_LONG_HTOL#define	_BIT_FIELDS_HTOL#define	_IEEE_754#define	_CHAR_IS_SIGNED#define	_CHAR_ALIGNMENT		1#define	_SHORT_ALIGNMENT	2#define	_INT_ALIGNMENT		4#define	_LONG_ALIGNMENT		4#define	_LONG_LONG_ALIGNMENT	8#define	_DOUBLE_ALIGNMENT	8#define	_LONG_DOUBLE_ALIGNMENT	8#define	_POINTER_ALIGNMENT	4#define	_MAX_ALIGNMENT		8#define	_ALIGNMENT_REQUIRED	1/* * Define the appropriate "implementation choices". */#define	_SUNOS_VTOC_8#define	_DMA_USES_VIRTADDR#define	_NO_FDISK_PRESENT/* * #error is strictly ansi-C, but works as well as anything for K&R systems. */#else/*  *#error ISA not supported */#endif#ifdef	__cplusplus}#endif#endif	/* _SYS_ISA_DEFS_H */

⌨️ 快捷键说明

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