Home | History | Annotate | Line # | Download | only in include
      1 /*	$NetBSD: types.h,v 1.33 2024/04/28 10:57:34 skrll Exp $	*/
      2 
      3 /*	$OpenBSD: types.h,v 1.6 2001/08/11 01:58:34 art Exp $	*/
      4 
      5 /*-
      6  * Copyright (c) 1990, 1993
      7  *	The Regents of the University of California.  All rights reserved.
      8  *
      9  * Redistribution and use in source and binary forms, with or without
     10  * modification, are permitted provided that the following conditions
     11  * are met:
     12  * 1. Redistributions of source code must retain the above copyright
     13  *    notice, this list of conditions and the following disclaimer.
     14  * 2. Redistributions in binary form must reproduce the above copyright
     15  *    notice, this list of conditions and the following disclaimer in the
     16  *    documentation and/or other materials provided with the distribution.
     17  * 3. Neither the name of the University nor the names of its contributors
     18  *    may be used to endorse or promote products derived from this software
     19  *    without specific prior written permission.
     20  *
     21  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     22  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     24  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     27  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     28  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     29  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     30  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     31  * SUCH DAMAGE.
     32  *
     33  *	@(#)types.h	8.3 (Berkeley) 1/5/94
     34  */
     35 
     36 #ifndef	_HPPA_TYPES_H_
     37 #define	_HPPA_TYPES_H_
     38 
     39 #include <sys/cdefs.h>
     40 #include <sys/featuretest.h>
     41 
     42 #if defined(_KERNEL)
     43 typedef struct label_t {
     44 	int	lbl_rp;
     45 	int	lbl_sp;
     46 	int	lbl_s[17];
     47 	int	lbl_ss[1];
     48 	double	lbl_sf[10];	/* hp800:fr12-fr15, hp700:fr12-fr21 */
     49 } label_t;
     50 #endif
     51 
     52 typedef	unsigned long		__vaddr_t;
     53 
     54 #if defined(_KERNEL) || defined(_KMEMUSER) || defined(_KERNTYPES) || defined(_STANDALONE)
     55 typedef	unsigned long		hppa_hpa_t;
     56 typedef	unsigned long		hppa_spa_t;
     57 typedef	unsigned int		pa_space_t;
     58 typedef	__vaddr_t		vaddr_t;
     59 typedef	unsigned long		vsize_t;
     60 typedef	unsigned long		paddr_t;
     61 typedef	unsigned long		psize_t;
     62 #define	PRIxVADDR		"lx"
     63 #define	PRIxVSIZE		"lx"
     64 #define	PRIuVSIZE		"lu"
     65 #define	PRIxPADDR		"lx"
     66 #define	PRIxPSIZE		"lx"
     67 #define	PRIuPSIZE		"lu"
     68 
     69 typedef int			register_t;
     70 #define	PRIxREGISTER		"x"
     71 #endif
     72 
     73 /*
     74  * Semaphores must be aligned on 16-byte boundaries on the PA-RISC.
     75  */
     76 typedef struct {
     77 	volatile unsigned long csl_lock[4];
     78 } __cpu_simple_lock_nv_t;
     79 
     80 typedef int			__register_t;
     81 
     82 
     83 #define	__SIMPLELOCK_LOCKED	{ { 0, 0, 0, 0 } }
     84 #define	__SIMPLELOCK_UNLOCKED	{ { 1, 1, 1, 1 } }
     85 
     86 #define	__MACHINE_STACK_GROWS_UP	/* stack grows to higher addresses */
     87 #define	__HAVE_FUNCTION_DESCRIPTORS	/* function ptrs may be descriptors */
     88 #define	__HAVE_RAS
     89 #define	__HAVE_SYSCALL_INTERN
     90 
     91 /*
     92  * On hppa, declaring RAS labels as functions doesn't work, since the toolchain
     93  * will construct PLABELs for them.  Make them "const char []" instead.
     94  */
     95 
     96 #define	RAS_DECL(name)							\
     97 extern const char __CONCAT(name,_ras_start[]), __CONCAT(name,_ras_end[])
     98 
     99 #define	__HAVE_CPU_LWP_SETPRIVATE
    100 #define	__HAVE_COMMON___TLS_GET_ADDR
    101 #define	__HAVE___LWP_GETPRIVATE_FAST
    102 #define	__HAVE_TLS_VARIANT_I
    103 #define	__HAVE_NEW_STYLE_BUS_H
    104 #define	__HAVE_BUS_SPACE_8
    105 
    106 #define	__HAVE_MM_MD_DIRECT_MAPPED_PHYS
    107 #define	__HAVE_MM_MD_KERNACC
    108 
    109 #endif	/* _HPPA_TYPES_H_ */
    110