[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



I would prefer a description that says that this patch reflects the CPU family scheme also to the Unikrafts base include folder.

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.