[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH 4/9] build: Move architecture headers to family/architecture folder
Hi Simon, > -----Original Message----- > From: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > Sent: 2018年4月5日 5:29 > To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Shijie Huang <Shijie.Huang@xxxxxxx>; Kaly Xin <Kaly.Xin@xxxxxxx>; nd > <nd@xxxxxxx> > Subject: Re: [UNIKRAFT PATCH 4/9] build: Move architecture headers to > family/architecture folder > > I would prefer a description that says that this patch reflects the CPU > family scheme also to the Unikrafts base include folder. > Ok. I would consider to improve this description in v2. > On 15.03.2018 04:39, Wei Chen wrote: > > As we have introduced the UK_FAMILY in previous patch. We have to place > > the architecture specified headers to arch/family/<actual architecture>: > > unikraft/include/uk/arch----arm----arm32 > > | |-----arm64 > > | > > |-----x86----x86 > > |-----x86_64 > > And, because of arch/*.h are wrappers of actual architecture headers, we > > have to modify these headers to include files from new folder. > > > > Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx> > > --- > > include/uk/arch/arm/arm32/atomic.h | 64 ++++++++++++++++++++++++++++++ > > include/uk/arch/arm/arm32/intsizes.h | 45 +++++++++++++++++++++ > > include/uk/arch/arm/arm32/lcpu.h | 59 ++++++++++++++++++++++++++++ > > include/uk/arch/arm/arm32/limits.h | 45 +++++++++++++++++++++ > > include/uk/arch/arm/arm32/types.h | 35 +++++++++++++++++ > > include/uk/arch/arm/atomic.h | 64 ------------------------------ > > include/uk/arch/arm/intsizes.h | 45 --------------------- > > include/uk/arch/arm/lcpu.h | 59 ---------------------------- > > include/uk/arch/arm/limits.h | 45 --------------------- > > include/uk/arch/arm/types.h | 35 ----------------- > > include/uk/arch/atomic.h | 8 ++-- > > include/uk/arch/lcpu.h | 8 ++-- > > include/uk/arch/limits.h | 16 ++++---- > > include/uk/arch/types.h | 16 ++++---- > > include/uk/arch/x86/x86_64/atomic.h | 45 +++++++++++++++++++++ > > include/uk/arch/x86/x86_64/intsizes.h | 45 +++++++++++++++++++++ > > include/uk/arch/x86/x86_64/lcpu.h | 73 > +++++++++++++++++++++++++++++++++++ > > include/uk/arch/x86/x86_64/limits.h | 46 ++++++++++++++++++++++ > > include/uk/arch/x86/x86_64/types.h | 38 ++++++++++++++++++ > > include/uk/arch/x86_64/atomic.h | 45 --------------------- > > include/uk/arch/x86_64/intsizes.h | 45 --------------------- > > include/uk/arch/x86_64/lcpu.h | 73 ------------------------------- > ---- > > include/uk/arch/x86_64/limits.h | 46 ---------------------- > > include/uk/arch/x86_64/types.h | 38 ------------------ > > 24 files changed, 519 insertions(+), 519 deletions(-) > > create mode 100644 include/uk/arch/arm/arm32/atomic.h > > create mode 100644 include/uk/arch/arm/arm32/intsizes.h > > create mode 100644 include/uk/arch/arm/arm32/lcpu.h > > create mode 100644 include/uk/arch/arm/arm32/limits.h > > create mode 100644 include/uk/arch/arm/arm32/types.h > > delete mode 100644 include/uk/arch/arm/atomic.h > > delete mode 100644 include/uk/arch/arm/intsizes.h > > delete mode 100644 include/uk/arch/arm/lcpu.h > > delete mode 100644 include/uk/arch/arm/limits.h > > delete mode 100644 include/uk/arch/arm/types.h > > create mode 100644 include/uk/arch/x86/x86_64/atomic.h > > create mode 100644 include/uk/arch/x86/x86_64/intsizes.h > > create mode 100644 include/uk/arch/x86/x86_64/lcpu.h > > create mode 100644 include/uk/arch/x86/x86_64/limits.h > > create mode 100644 include/uk/arch/x86/x86_64/types.h > > delete mode 100644 include/uk/arch/x86_64/atomic.h > > delete mode 100644 include/uk/arch/x86_64/intsizes.h > > delete mode 100644 include/uk/arch/x86_64/lcpu.h > > delete mode 100644 include/uk/arch/x86_64/limits.h > > delete mode 100644 include/uk/arch/x86_64/types.h > > > > diff --git a/include/uk/arch/arm/arm32/atomic.h > b/include/uk/arch/arm/arm32/atomic.h > > new file mode 100644 > > index 0000000..9d54eea > > --- /dev/null > > +++ b/include/uk/arch/arm/arm32/atomic.h > > @@ -0,0 +1,64 @@ > > +/* SPDX-License-Identifier: BSD-2-Clause */ > > +/* > > + * Port from Mini-OS: include/arm/os.h > > + */ > > +/* > > + * Copyright (c) 2009 Citrix Systems, Inc. All rights reserved. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + */ > > + > > +#ifndef __UKARCH_ATOMIC_H__ > > +#error Do not include this header directly > > +#endif > > + > > +/** > > + * ukarch_find_lsbit - find first (lowest) set bit in word. > > + * @word: The word to search > > + * > > + * Undefined if no bit exists, so code should check against 0 first. > > + */ > > +static inline unsigned long ukarch_find_lsbit(unsigned long word) > > +{ > > + int clz; > > + > > + /* xxxxx10000 = word > > + * xxxxx01111 = word - 1 > > + * 0000011111 = word ^ (word - 1) > > + * 4 = 31 - clz(word ^ (word - 1)) > > + */ > > + > > + __asm__("sub r0, %[word], #1\n" > > + "eor r0, r0, %[word]\n" > > + "clz %[clz], r0\n" > > + : > > + /* Outputs: */ > > + [clz] "=r"(clz) > > + : > > + /* Inputs: */ > > + [word] "r"(word) > > + : > > + /* Clobbers: */ > > + "r0"); > > + > > + return 31 - clz; > > +} > > diff --git a/include/uk/arch/arm/arm32/intsizes.h > b/include/uk/arch/arm/arm32/intsizes.h > > new file mode 100644 > > index 0000000..5b36c4b > > --- /dev/null > > +++ b/include/uk/arch/arm/arm32/intsizes.h > > @@ -0,0 +1,45 @@ > > +/* SPDX-License-Identifier: BSD-3-Clause */ > > +/* > > + * Authors: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > > + * > > + * > > + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. All rights > reserved. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * 3. Neither the name of the copyright holder nor the names of its > > + * contributors may be used to endorse or promote products derived from > > + * this software without specific prior written permission. > > + * > > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS > BE > > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > THE > > + * POSSIBILITY OF SUCH DAMAGE. > > + * > > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > > + */ > > + > > +#if ((!defined __UKARCH_TYPES_H__) && (!defined __UKARCH_LIMITS_H__)) > > +#error Do not include this header directly > > +#endif > > + > > +#define __C_IS_8 /* char */ > > +#define __S_IS_16 /* short */ > > +#define __I_IS_32 /* int */ > > +#define __L_IS_32 /* long */ > > +#define __LL_IS_64 /* long long */ > > +#define __PTR_IS_32 /* void * */ > > diff --git a/include/uk/arch/arm/arm32/lcpu.h > b/include/uk/arch/arm/arm32/lcpu.h > > new file mode 100644 > > index 0000000..cdeffc3 > > --- /dev/null > > +++ b/include/uk/arch/arm/arm32/lcpu.h > > @@ -0,0 +1,59 @@ > > +/* SPDX-License-Identifier: BSD-2-Clause */ > > +/* > > + * Copyright (c) 2009, Citrix Systems, Inc. > > + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + */ > > + > > +#ifndef __UKARCH_LCPU_H__ > > +#error Do not include this header directly > > +#endif > > + > > +struct __regs { > > + unsigned long r0; > > + unsigned long r1; > > + unsigned long r2; > > + unsigned long r3; > > + unsigned long r4; > > + unsigned long r5; > > + unsigned long r6; > > + unsigned long r7; > > + unsigned long r8; > > + unsigned long r9; > > + unsigned long r10; > > + unsigned long r11; > > + unsigned long r12; > > +}; > > + > > +/* We probably only need "dmb" here, but we'll start by being paranoid. */ > > +#ifndef mb > > +#define mb() __asm__("dsb" : : : "memory") > > +#endif > > + > > +#ifndef rmb > > +#define rmb() __asm__("dsb" : : : "memory") > > +#endif > > + > > +#ifndef wmb > > +#define wmb() __asm__("dsb" : : : "memory") > > +#endif > > diff --git a/include/uk/arch/arm/arm32/limits.h > b/include/uk/arch/arm/arm32/limits.h > > new file mode 100644 > > index 0000000..085761c > > --- /dev/null > > +++ b/include/uk/arch/arm/arm32/limits.h > > @@ -0,0 +1,45 @@ > > +/* SPDX-License-Identifier: BSD-2-Clause */ > > +/* > > + * Copyright (c) 2009, Citrix Systems, Inc. > > + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + */ > > + > > +#ifndef __UKARCH_LIMITS_H__ > > +#error Do not include this header directly > > +#endif > > + > > +#define __PAGE_SHIFT 12 > > + > > +#ifdef __ASSEMBLY__ > > +#define __PAGE_SIZE (1 << __PAGE_SHIFT) > > +#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > +#else > > +#define __PAGE_SIZE (1ULL << __PAGE_SHIFT) > > +#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > +#endif > > + > > +#define __STACK_SIZE_PAGE_ORDER 2 > > +#define __STACK_SIZE (__PAGE_SIZE * (1 << > > __STACK_SIZE_PAGE_ORDER)) > > + > > +#define __WORDSIZE 32 > > diff --git a/include/uk/arch/arm/arm32/types.h > b/include/uk/arch/arm/arm32/types.h > > new file mode 100644 > > index 0000000..e745c0c > > --- /dev/null > > +++ b/include/uk/arch/arm/arm32/types.h > > @@ -0,0 +1,35 @@ > > +/* SPDX-License-Identifier: MIT */ > > +/* > > + * Copyright (c) 2002-2003, K A Fraser & R Neugebauer > > + * Copyright (c) 2005, Grzegorz Milos, Intel Research Cambridge > > + * > > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > > + * of this software and associated documentation files (the "Software"), to > > + * deal in the Software without restriction, including without limitation > the > > + * rights to use, copy, modify, merge, publish, distribute, sublicense, > and/or > > + * sell copies of the Software, and to permit persons to whom the Software > is > > + * furnished to do so, subject to the following conditions: > > + * > > + * The above copyright notice and this permission notice shall be included > in > > + * all copies or substantial portions of the Software. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > OR > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > > + * DEALINGS IN THE SOFTWARE. > > + */ > > + > > +#ifndef __UKARCH_TYPES_H__ > > +#error Do not include this header directly > > +#endif > > + > > +#ifndef __ASSEMBLY__ > > + > > +struct __pte { unsigned long pte_low, pte_high; }; > > +#define npte(x) ({ unsigned long long _x = (x); \ > > + ((pte_t) {(unsigned long)(_x), (unsigned long)(_x>>32)}); }) > > + > > +#endif /* !__ASSEMBLY__ */ > > diff --git a/include/uk/arch/arm/atomic.h b/include/uk/arch/arm/atomic.h > > deleted file mode 100644 > > index 9d54eea..0000000 > > --- a/include/uk/arch/arm/atomic.h > > +++ /dev/null > > @@ -1,64 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-2-Clause */ > > -/* > > - * Port from Mini-OS: include/arm/os.h > > - */ > > -/* > > - * Copyright (c) 2009 Citrix Systems, Inc. All rights reserved. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * > > - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > - * SUCH DAMAGE. > > - */ > > - > > -#ifndef __UKARCH_ATOMIC_H__ > > -#error Do not include this header directly > > -#endif > > - > > -/** > > - * ukarch_find_lsbit - find first (lowest) set bit in word. > > - * @word: The word to search > > - * > > - * Undefined if no bit exists, so code should check against 0 first. > > - */ > > -static inline unsigned long ukarch_find_lsbit(unsigned long word) > > -{ > > - int clz; > > - > > - /* xxxxx10000 = word > > - * xxxxx01111 = word - 1 > > - * 0000011111 = word ^ (word - 1) > > - * 4 = 31 - clz(word ^ (word - 1)) > > - */ > > - > > - __asm__("sub r0, %[word], #1\n" > > - "eor r0, r0, %[word]\n" > > - "clz %[clz], r0\n" > > - : > > - /* Outputs: */ > > - [clz] "=r"(clz) > > - : > > - /* Inputs: */ > > - [word] "r"(word) > > - : > > - /* Clobbers: */ > > - "r0"); > > - > > - return 31 - clz; > > -} > > diff --git a/include/uk/arch/arm/intsizes.h b/include/uk/arch/arm/intsizes.h > > deleted file mode 100644 > > index 5b36c4b..0000000 > > --- a/include/uk/arch/arm/intsizes.h > > +++ /dev/null > > @@ -1,45 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-3-Clause */ > > -/* > > - * Authors: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > > - * > > - * > > - * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. All rights > reserved. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * 3. Neither the name of the copyright holder nor the names of its > > - * contributors may be used to endorse or promote products derived from > > - * this software without specific prior written permission. > > - * > > - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > > - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS > BE > > - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > > - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > > - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > > - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > > - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > > - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > THE > > - * POSSIBILITY OF SUCH DAMAGE. > > - * > > - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > > - */ > > - > > -#if ((!defined __UKARCH_TYPES_H__) && (!defined __UKARCH_LIMITS_H__)) > > -#error Do not include this header directly > > -#endif > > - > > -#define __C_IS_8 /* char */ > > -#define __S_IS_16 /* short */ > > -#define __I_IS_32 /* int */ > > -#define __L_IS_32 /* long */ > > -#define __LL_IS_64 /* long long */ > > -#define __PTR_IS_32 /* void * */ > > diff --git a/include/uk/arch/arm/lcpu.h b/include/uk/arch/arm/lcpu.h > > deleted file mode 100644 > > index cdeffc3..0000000 > > --- a/include/uk/arch/arm/lcpu.h > > +++ /dev/null > > @@ -1,59 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-2-Clause */ > > -/* > > - * Copyright (c) 2009, Citrix Systems, Inc. > > - * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * > > - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > - * SUCH DAMAGE. > > - */ > > - > > -#ifndef __UKARCH_LCPU_H__ > > -#error Do not include this header directly > > -#endif > > - > > -struct __regs { > > - unsigned long r0; > > - unsigned long r1; > > - unsigned long r2; > > - unsigned long r3; > > - unsigned long r4; > > - unsigned long r5; > > - unsigned long r6; > > - unsigned long r7; > > - unsigned long r8; > > - unsigned long r9; > > - unsigned long r10; > > - unsigned long r11; > > - unsigned long r12; > > -}; > > - > > -/* We probably only need "dmb" here, but we'll start by being paranoid. */ > > -#ifndef mb > > -#define mb() __asm__("dsb" : : : "memory") > > -#endif > > - > > -#ifndef rmb > > -#define rmb() __asm__("dsb" : : : "memory") > > -#endif > > - > > -#ifndef wmb > > -#define wmb() __asm__("dsb" : : : "memory") > > -#endif > > diff --git a/include/uk/arch/arm/limits.h b/include/uk/arch/arm/limits.h > > deleted file mode 100644 > > index 085761c..0000000 > > --- a/include/uk/arch/arm/limits.h > > +++ /dev/null > > @@ -1,45 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-2-Clause */ > > -/* > > - * Copyright (c) 2009, Citrix Systems, Inc. > > - * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * > > - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > - * SUCH DAMAGE. > > - */ > > - > > -#ifndef __UKARCH_LIMITS_H__ > > -#error Do not include this header directly > > -#endif > > - > > -#define __PAGE_SHIFT 12 > > - > > -#ifdef __ASSEMBLY__ > > -#define __PAGE_SIZE (1 << __PAGE_SHIFT) > > -#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > -#else > > -#define __PAGE_SIZE (1ULL << __PAGE_SHIFT) > > -#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > -#endif > > - > > -#define __STACK_SIZE_PAGE_ORDER 2 > > -#define __STACK_SIZE (__PAGE_SIZE * (1 << > > __STACK_SIZE_PAGE_ORDER)) > > - > > -#define __WORDSIZE 32 > > diff --git a/include/uk/arch/arm/types.h b/include/uk/arch/arm/types.h > > deleted file mode 100644 > > index e745c0c..0000000 > > --- a/include/uk/arch/arm/types.h > > +++ /dev/null > > @@ -1,35 +0,0 @@ > > -/* SPDX-License-Identifier: MIT */ > > -/* > > - * Copyright (c) 2002-2003, K A Fraser & R Neugebauer > > - * Copyright (c) 2005, Grzegorz Milos, Intel Research Cambridge > > - * > > - * Permission is hereby granted, free of charge, to any person obtaining a > copy > > - * of this software and associated documentation files (the "Software"), to > > - * deal in the Software without restriction, including without limitation > the > > - * rights to use, copy, modify, merge, publish, distribute, sublicense, > and/or > > - * sell copies of the Software, and to permit persons to whom the Software > is > > - * furnished to do so, subject to the following conditions: > > - * > > - * The above copyright notice and this permission notice shall be included > in > > - * all copies or substantial portions of the Software. > > - * > > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > OR > > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > > - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > > - * DEALINGS IN THE SOFTWARE. > > - */ > > - > > -#ifndef __UKARCH_TYPES_H__ > > -#error Do not include this header directly > > -#endif > > - > > -#ifndef __ASSEMBLY__ > > - > > -struct __pte { unsigned long pte_low, pte_high; }; > > -#define npte(x) ({ unsigned long long _x = (x); \ > > - ((pte_t) {(unsigned long)(_x), (unsigned long)(_x>>32)}); }) > > - > > -#endif /* !__ASSEMBLY__ */ > > diff --git a/include/uk/arch/atomic.h b/include/uk/arch/atomic.h > > index 331bd81..48a4a74 100644 > > --- a/include/uk/arch/atomic.h > > +++ b/include/uk/arch/atomic.h > > @@ -37,16 +37,16 @@ extern "C" { > > #endif > > > > #ifdef __X86_32__ > > -#include <uk/arch/x86/atomic.h> > > +#include <uk/arch/x86/x86/atomic.h> > > #endif > > #ifdef __X86_64__ > > -#include <uk/arch/x86_64/atomic.h> > > +#include <uk/arch/x86/x86_64/atomic.h> > > #endif > > #ifdef __ARM_32__ > > -#include <uk/arch/arm/atomic.h> > > +#include <uk/arch/arm/arm32/atomic.h> > > #endif > > #ifdef __ARM_64__ > > -#include <uk/arch/arm64/atomic.h> > > +#include <uk/arch/arm/arm64/atomic.h> > > #endif > > > > /** > > diff --git a/include/uk/arch/lcpu.h b/include/uk/arch/lcpu.h > > index ea780f7..0604a92 100644 > > --- a/include/uk/arch/lcpu.h > > +++ b/include/uk/arch/lcpu.h > > @@ -43,16 +43,16 @@ extern "C" { > > #endif > > > > #ifdef __X86_32__ > > -#include <uk/arch/x86/lcpu.h> > > +#include <uk/arch/x86/x86/lcpu.h> > > #endif > > #ifdef __X86_64__ > > -#include <uk/arch/x86_64/lcpu.h> > > +#include <uk/arch/x86/x86_64/lcpu.h> > > #endif > > #ifdef __ARM_32__ > > -#include <uk/arch/arm/lcpu.h> > > +#include <uk/arch/arm/arm32/lcpu.h> > > #endif > > #ifdef __ARM_64__ > > -#include <uk/arch/arm64/lcpu.h> > > +#include <uk/arch/arm/arm64/lcpu.h> > > #endif > > > > #ifndef likely > > diff --git a/include/uk/arch/limits.h b/include/uk/arch/limits.h > > index 81694d9..7bcdc92 100644 > > --- a/include/uk/arch/limits.h > > +++ b/include/uk/arch/limits.h > > @@ -37,31 +37,31 @@ > > #define __UKARCH_LIMITS_H__ > > > > #ifdef __X86_32__ > > -#include <uk/arch/x86/limits.h> > > +#include <uk/arch/x86/x86/limits.h> > > #endif > > #ifdef __X86_64__ > > -#include <uk/arch/x86_64/limits.h> > > +#include <uk/arch/x86/x86_64/limits.h> > > #endif > > #ifdef __ARM_32__ > > -#include <uk/arch/arm/limits.h> > > +#include <uk/arch/arm/arm32/limits.h> > > #endif > > #ifdef __ARM_64__ > > -#include <uk/arch/arm64/limits.h> > > +#include <uk/arch/arm/arm64/limits.h> > > #endif > > > > #ifndef __ASSEMBLY__ > > > > #ifdef __X86_32__ > > -#include <uk/arch/x86/intsizes.h> > > +#include <uk/arch/x86/x86/intsizes.h> > > #endif > > #ifdef __X86_64__ > > -#include <uk/arch/x86_64/intsizes.h> > > +#include <uk/arch/x86/x86_64/intsizes.h> > > #endif > > #ifdef __ARM_32__ > > -#include <uk/arch/arm/intsizes.h> > > +#include <uk/arch/arm/arm32/intsizes.h> > > #endif > > #ifdef __ARM_64__ > > -#include <uk/arch/arm64/intsizes.h> > > +#include <uk/arch/arm/arm64/intsizes.h> > > #endif > > > > #if (defined __C_IS_8) > > diff --git a/include/uk/arch/types.h b/include/uk/arch/types.h > > index e8d7726..d2c8ff9 100644 > > --- a/include/uk/arch/types.h > > +++ b/include/uk/arch/types.h > > @@ -41,20 +41,20 @@ extern "C" { > > #endif > > > > #ifdef __X86_32__ > > -#include <uk/arch/x86/intsizes.h> > > -#include <uk/arch/x86/types.h> > > +#include <uk/arch/x86/x86/intsizes.h> > > +#include <uk/arch/x86/x86/types.h> > > #endif > > #ifdef __X86_64__ > > -#include <uk/arch/x86_64/intsizes.h> > > -#include <uk/arch/x86_64/types.h> > > +#include <uk/arch/x86/x86_64/intsizes.h> > > +#include <uk/arch/x86/x86_64/types.h> > > #endif > > #ifdef __ARM_32__ > > -#include <uk/arch/arm/intsizes.h> > > -#include <uk/arch/arm/types.h> > > +#include <uk/arch/arm/arm32/intsizes.h> > > +#include <uk/arch/arm/arm32/types.h> > > #endif > > #ifdef __ARM_64__ > > -#include <uk/arch/arm64/intsizes.h> > > -#include <uk/arch/arm64/types.h> > > +#include <uk/arch/arm/arm64/intsizes.h> > > +#include <uk/arch/arm/arm64/types.h> > > #endif > > > > #ifndef __ASSEMBLY__ > > diff --git a/include/uk/arch/x86/x86_64/atomic.h > b/include/uk/arch/x86/x86_64/atomic.h > > new file mode 100644 > > index 0000000..985c388 > > --- /dev/null > > +++ b/include/uk/arch/x86/x86_64/atomic.h > > @@ -0,0 +1,45 @@ > > +/* SPDX-License-Identifier: BSD-2-Clause */ > > +/* > > + * Port from Mini-OS: include/x86/os.h > > + */ > > +/* > > + * Copyright (c) 2009 Citrix Systems, Inc. All rights reserved. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + */ > > +#ifndef __UKARCH_ATOMIC_H__ > > +#error Do not include this header directly > > +#endif > > + > > +/** > > + * ukarch_find_lsbit - find first (lowest) set bit in word. > > + * @word: The word to search > > + * > > + * Undefined if no bit exists, so code should check against 0 first. > > + */ > > +static inline unsigned long ukarch_find_lsbit(unsigned long word) > > +{ > > + __asm__("bsfq %1,%0" > > + :"=r" (word) > > + :"rm" (word)); > > + return word; > > +} > > diff --git a/include/uk/arch/x86/x86_64/intsizes.h > b/include/uk/arch/x86/x86_64/intsizes.h > > new file mode 100644 > > index 0000000..e3ef510 > > --- /dev/null > > +++ b/include/uk/arch/x86/x86_64/intsizes.h > > @@ -0,0 +1,45 @@ > > +/* SPDX-License-Identifier: BSD-3-Clause */ > > +/* > > + * Authors: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > > + * > > + * > > + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. All rights > reserved. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * 3. Neither the name of the copyright holder nor the names of its > > + * contributors may be used to endorse or promote products derived from > > + * this software without specific prior written permission. > > + * > > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS > BE > > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > THE > > + * POSSIBILITY OF SUCH DAMAGE. > > + * > > + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > > + */ > > + > > +#if ((!defined __UKARCH_TYPES_H__) && (!defined __UKARCH_LIMITS_H__)) > > +#error Do not include this header directly > > +#endif > > + > > +#define __C_IS_8 /* char */ > > +#define __S_IS_16 /* short */ > > +#define __I_IS_32 /* int */ > > +#define __L_IS_64 /* long */ > > +#define __LL_IS_64 /* long long */ > > +#define __PTR_IS_64 /* void * */ > > diff --git a/include/uk/arch/x86/x86_64/lcpu.h > b/include/uk/arch/x86/x86_64/lcpu.h > > new file mode 100644 > > index 0000000..cd667e5 > > --- /dev/null > > +++ b/include/uk/arch/x86/x86_64/lcpu.h > > @@ -0,0 +1,73 @@ > > +/* SPDX-License-Identifier: BSD-2-Clause */ > > +/* > > + * Authors: Grzegorz Milos <gm281@xxxxxxxxx> > > + * Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > > + * > > + * Copyright (c) 2005, Grzegorz Milos, Intel Research Cambridge > > + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + */ > > + > > +#ifndef __UKARCH_LCPU_H__ > > +#error Do not include this header directly > > +#endif > > + > > +struct __regs { > > + unsigned long r15; > > + unsigned long r14; > > + unsigned long r13; > > + unsigned long r12; > > + unsigned long rbp; > > + unsigned long rbx; > > +/* arguments: non interrupts/non tracing syscalls only save upto here*/ > > + unsigned long r11; > > + unsigned long r10; > > + unsigned long r9; > > + unsigned long r8; > > + unsigned long rax; > > + unsigned long rcx; > > + unsigned long rdx; > > + unsigned long rsi; > > + unsigned long rdi; > > + unsigned long orig_rax; > > +/* end of arguments */ > > +/* cpu exception frame or undefined */ > > + unsigned long rip; > > + unsigned long cs; > > + unsigned long eflags; > > + unsigned long rsp; > > + unsigned long ss; > > +/* top of stack page */ > > +}; > > + > > +#ifndef mb > > +#define mb() __asm__ __volatile__ ("mfence" : : : "memory") > > +#endif > > + > > +#ifndef rmb > > +#define rmb() __asm__ __volatile__ ("lfence" : : : "memory") > > +#endif > > + > > +#ifndef wmb > > +#define wmb() __asm__ __volatile__ ("sfence" : : : "memory") > > +#endif > > diff --git a/include/uk/arch/x86/x86_64/limits.h > b/include/uk/arch/x86/x86_64/limits.h > > new file mode 100644 > > index 0000000..a969bd1 > > --- /dev/null > > +++ b/include/uk/arch/x86/x86_64/limits.h > > @@ -0,0 +1,46 @@ > > +/* SPDX-License-Identifier: BSD-2-Clause */ > > +/* > > + * Copyright (c) 2009, Citrix Systems, Inc. > > + * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > + * > > + * Redistribution and use in source and binary forms, with or without > > + * modification, are permitted provided that the following conditions > > + * are met: > > + * 1. Redistributions of source code must retain the above copyright > > + * notice, this list of conditions and the following disclaimer. > > + * 2. Redistributions in binary form must reproduce the above copyright > > + * notice, this list of conditions and the following disclaimer in the > > + * documentation and/or other materials provided with the distribution. > > + * > > + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > + * SUCH DAMAGE. > > + */ > > + > > +#ifndef __UKARCH_LIMITS_H__ > > +#error Do not include this header directly > > +#endif > > + > > +#define __PAGE_SHIFT 12 > > + > > +#ifdef __ASSEMBLY__ > > +#define __PAGE_SIZE (1 << __PAGE_SHIFT) > > +#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > +#else > > +#define __PAGE_SIZE (1ULL << __PAGE_SHIFT) > > +#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > +#endif > > + > > +#define __STACK_SIZE_PAGE_ORDER 4 > > +#define __STACK_SIZE (__PAGE_SIZE * (1 << > > __STACK_SIZE_PAGE_ORDER)) > > + > > +#define __WORDSIZE 64 > > +#define __WORDSIZE_COMPAT32 1 > > diff --git a/include/uk/arch/x86/x86_64/types.h > b/include/uk/arch/x86/x86_64/types.h > > new file mode 100644 > > index 0000000..5547b37 > > --- /dev/null > > +++ b/include/uk/arch/x86/x86_64/types.h > > @@ -0,0 +1,38 @@ > > +/* SPDX-License-Identifier: MIT */ > > +/* > > + * Copyright (c) 2002-2003, K A Fraser & R Neugebauer > > + * Copyright (c) 2005, Grzegorz Milos, Intel Research Cambridge > > + * > > + * Permission is hereby granted, free of charge, to any person obtaining a > copy > > + * of this software and associated documentation files (the "Software"), to > > + * deal in the Software without restriction, including without limitation > the > > + * rights to use, copy, modify, merge, publish, distribute, sublicense, > and/or > > + * sell copies of the Software, and to permit persons to whom the Software > is > > + * furnished to do so, subject to the following conditions: > > + * > > + * The above copyright notice and this permission notice shall be included > in > > + * all copies or substantial portions of the Software. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > OR > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > > + * DEALINGS IN THE SOFTWARE. > > + */ > > + > > +#ifndef __UKARCH_TYPES_H__ > > +#error Do not include this header directly > > +#endif > > + > > +#ifndef __ASSEMBLY__ > > + > > +struct __pte { unsigned long pte; }; > > +#define npte(x) ((struct __pte) { (x) }) > > + > > +#define _WORD ".quad" > > + > > +#else > > +#define _WORD .quad > > +#endif /* !__ASSEMBLY__ */ > > diff --git a/include/uk/arch/x86_64/atomic.h > b/include/uk/arch/x86_64/atomic.h > > deleted file mode 100644 > > index 985c388..0000000 > > --- a/include/uk/arch/x86_64/atomic.h > > +++ /dev/null > > @@ -1,45 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-2-Clause */ > > -/* > > - * Port from Mini-OS: include/x86/os.h > > - */ > > -/* > > - * Copyright (c) 2009 Citrix Systems, Inc. All rights reserved. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * > > - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > - * SUCH DAMAGE. > > - */ > > -#ifndef __UKARCH_ATOMIC_H__ > > -#error Do not include this header directly > > -#endif > > - > > -/** > > - * ukarch_find_lsbit - find first (lowest) set bit in word. > > - * @word: The word to search > > - * > > - * Undefined if no bit exists, so code should check against 0 first. > > - */ > > -static inline unsigned long ukarch_find_lsbit(unsigned long word) > > -{ > > - __asm__("bsfq %1,%0" > > - :"=r" (word) > > - :"rm" (word)); > > - return word; > > -} > > diff --git a/include/uk/arch/x86_64/intsizes.h > b/include/uk/arch/x86_64/intsizes.h > > deleted file mode 100644 > > index e3ef510..0000000 > > --- a/include/uk/arch/x86_64/intsizes.h > > +++ /dev/null > > @@ -1,45 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-3-Clause */ > > -/* > > - * Authors: Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > > - * > > - * > > - * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. All rights > reserved. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * 3. Neither the name of the copyright holder nor the names of its > > - * contributors may be used to endorse or promote products derived from > > - * this software without specific prior written permission. > > - * > > - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > > - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, > THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS > BE > > - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > > - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > > - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > > - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > > - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > > - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF > THE > > - * POSSIBILITY OF SUCH DAMAGE. > > - * > > - * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY. > > - */ > > - > > -#if ((!defined __UKARCH_TYPES_H__) && (!defined __UKARCH_LIMITS_H__)) > > -#error Do not include this header directly > > -#endif > > - > > -#define __C_IS_8 /* char */ > > -#define __S_IS_16 /* short */ > > -#define __I_IS_32 /* int */ > > -#define __L_IS_64 /* long */ > > -#define __LL_IS_64 /* long long */ > > -#define __PTR_IS_64 /* void * */ > > diff --git a/include/uk/arch/x86_64/lcpu.h b/include/uk/arch/x86_64/lcpu.h > > deleted file mode 100644 > > index cd667e5..0000000 > > --- a/include/uk/arch/x86_64/lcpu.h > > +++ /dev/null > > @@ -1,73 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-2-Clause */ > > -/* > > - * Authors: Grzegorz Milos <gm281@xxxxxxxxx> > > - * Simon Kuenzer <simon.kuenzer@xxxxxxxxx> > > - * > > - * Copyright (c) 2005, Grzegorz Milos, Intel Research Cambridge > > - * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * > > - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > - * SUCH DAMAGE. > > - */ > > - > > -#ifndef __UKARCH_LCPU_H__ > > -#error Do not include this header directly > > -#endif > > - > > -struct __regs { > > - unsigned long r15; > > - unsigned long r14; > > - unsigned long r13; > > - unsigned long r12; > > - unsigned long rbp; > > - unsigned long rbx; > > -/* arguments: non interrupts/non tracing syscalls only save upto here*/ > > - unsigned long r11; > > - unsigned long r10; > > - unsigned long r9; > > - unsigned long r8; > > - unsigned long rax; > > - unsigned long rcx; > > - unsigned long rdx; > > - unsigned long rsi; > > - unsigned long rdi; > > - unsigned long orig_rax; > > -/* end of arguments */ > > -/* cpu exception frame or undefined */ > > - unsigned long rip; > > - unsigned long cs; > > - unsigned long eflags; > > - unsigned long rsp; > > - unsigned long ss; > > -/* top of stack page */ > > -}; > > - > > -#ifndef mb > > -#define mb() __asm__ __volatile__ ("mfence" : : : "memory") > > -#endif > > - > > -#ifndef rmb > > -#define rmb() __asm__ __volatile__ ("lfence" : : : "memory") > > -#endif > > - > > -#ifndef wmb > > -#define wmb() __asm__ __volatile__ ("sfence" : : : "memory") > > -#endif > > diff --git a/include/uk/arch/x86_64/limits.h > b/include/uk/arch/x86_64/limits.h > > deleted file mode 100644 > > index a969bd1..0000000 > > --- a/include/uk/arch/x86_64/limits.h > > +++ /dev/null > > @@ -1,46 +0,0 @@ > > -/* SPDX-License-Identifier: BSD-2-Clause */ > > -/* > > - * Copyright (c) 2009, Citrix Systems, Inc. > > - * Copyright (c) 2017, NEC Europe Ltd., NEC Corporation. > > - * > > - * Redistribution and use in source and binary forms, with or without > > - * modification, are permitted provided that the following conditions > > - * are met: > > - * 1. Redistributions of source code must retain the above copyright > > - * notice, this list of conditions and the following disclaimer. > > - * 2. Redistributions in binary form must reproduce the above copyright > > - * notice, this list of conditions and the following disclaimer in the > > - * documentation and/or other materials provided with the distribution. > > - * > > - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR > PURPOSE > > - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE > > - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > CONSEQUENTIAL > > - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, > STRICT > > - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY > WAY > > - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > - * SUCH DAMAGE. > > - */ > > - > > -#ifndef __UKARCH_LIMITS_H__ > > -#error Do not include this header directly > > -#endif > > - > > -#define __PAGE_SHIFT 12 > > - > > -#ifdef __ASSEMBLY__ > > -#define __PAGE_SIZE (1 << __PAGE_SHIFT) > > -#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > -#else > > -#define __PAGE_SIZE (1ULL << __PAGE_SHIFT) > > -#define __PAGE_MASK (~((__PAGE_SIZE) - 1)) > > -#endif > > - > > -#define __STACK_SIZE_PAGE_ORDER 4 > > -#define __STACK_SIZE (__PAGE_SIZE * (1 << > > __STACK_SIZE_PAGE_ORDER)) > > - > > -#define __WORDSIZE 64 > > -#define __WORDSIZE_COMPAT32 1 > > diff --git a/include/uk/arch/x86_64/types.h b/include/uk/arch/x86_64/types.h > > deleted file mode 100644 > > index 5547b37..0000000 > > --- a/include/uk/arch/x86_64/types.h > > +++ /dev/null > > @@ -1,38 +0,0 @@ > > -/* SPDX-License-Identifier: MIT */ > > -/* > > - * Copyright (c) 2002-2003, K A Fraser & R Neugebauer > > - * Copyright (c) 2005, Grzegorz Milos, Intel Research Cambridge > > - * > > - * Permission is hereby granted, free of charge, to any person obtaining a > copy > > - * of this software and associated documentation files (the "Software"), to > > - * deal in the Software without restriction, including without limitation > the > > - * rights to use, copy, modify, merge, publish, distribute, sublicense, > and/or > > - * sell copies of the Software, and to permit persons to whom the Software > is > > - * furnished to do so, subject to the following conditions: > > - * > > - * The above copyright notice and this permission notice shall be included > in > > - * all copies or substantial portions of the Software. > > - * > > - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > OR > > - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > THE > > - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > > - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > > - * DEALINGS IN THE SOFTWARE. > > - */ > > - > > -#ifndef __UKARCH_TYPES_H__ > > -#error Do not include this header directly > > -#endif > > - > > -#ifndef __ASSEMBLY__ > > - > > -struct __pte { unsigned long pte; }; > > -#define npte(x) ((struct __pte) { (x) }) > > - > > -#define _WORD ".quad" > > - > > -#else > > -#define _WORD .quad > > -#endif /* !__ASSEMBLY__ */ > > _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |