1/* -*- Mode:C; c-basic-offset:4; tab-width:4 -*- 2 **************************************************************************** 3 * (C) 2003 - Rolf Neugebauer - Intel Research Cambridge 4 **************************************************************************** 5 * 6 * File: types.h 7 * Author: Rolf Neugebauer (neugebar@dcs.gla.ac.uk) 8 * Changes: 9 * 10 * Date: May 2003 11 * 12 * Environment: Xen Minimal OS 13 * Description: a random collection of type definitions 14 * 15 **************************************************************************** 16 * $Id: h-insert.h,v 1.4 2002/11/08 16:03:55 rn Exp $ 17 **************************************************************************** 18 */ 19 20#ifndef _MINIOS_TYPES_H_ 21#define _MINIOS_TYPES_H_ 22 23/* XXX: fix the kernelside Xen driver #include abuse */ 24#ifndef __RUMP_KERNEL__ 25#include <bmk-core/types.h> 26 27#ifndef _BSD_SIZE_T_ 28typedef unsigned int u_int; 29typedef unsigned long u_long; 30typedef unsigned long size_t; 31#endif 32 33#ifndef offsetof 34#define offsetof(_t_,_e_) __builtin_offsetof(_t_,_e_) 35#endif 36#endif 37 38#ifdef __i386__ 39typedef struct { unsigned long pte_low, pte_high; } pte_t; 40 41#elif defined(__x86_64__) 42 43typedef struct { unsigned long pte; } pte_t; 44#endif /* __i386__ || __x86_64__ */ 45 46#ifdef __x86_64__ 47#define __pte(x) ((pte_t) { (x) } ) 48#else 49#define __pte(x) ({ unsigned long long _x = (x); \ 50 ((pte_t) {(unsigned long)(_x), (unsigned long)(_x>>32)}); }) 51#endif 52 53#endif /* _MINIOS_TYPES_H_ */ 54