From: Alan Cox Date: Fri, 17 Jul 2015 22:25:34 +0000 (+0100) Subject: cpu: lay groundwork for 32bit kernel / 16bit user etc X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=7b3cbf1fa7f43986f85c89122d9fe15defa9e930;p=FUZIX.git cpu: lay groundwork for 32bit kernel / 16bit user etc ugetp/uputp for user pointer sizes uptr_t holds a userspace pointer --- diff --git a/Kernel/cpu-6502/cpu.h b/Kernel/cpu-6502/cpu.h index 23be142b..1b9d8304 100644 --- a/Kernel/cpu-6502/cpu.h +++ b/Kernel/cpu-6502/cpu.h @@ -13,6 +13,10 @@ typedef uint16_t uarg_t; /* Holds arguments */ typedef uint16_t usize_t; /* Largest value passed by userspace */ typedef int16_t susize_t; typedef uint16_t uaddr_t; +typedef uint16_t uptr_t; /* User pointer equivalent */ + +#define uputp uputw /* Copy user pointer type */ +#define ugetp ugetw /* between user and kernel */ extern void ei(void); extern irqflags_t di(void); diff --git a/Kernel/cpu-68000/cpu.h b/Kernel/cpu-68000/cpu.h index bfd7171f..19a7d95a 100644 --- a/Kernel/cpu-68000/cpu.h +++ b/Kernel/cpu-68000/cpu.h @@ -13,6 +13,10 @@ typedef uint32_t uarg_t; /* Holds arguments */ typedef uint32_t usize_t; /* Largest value passed by userspace */ typedef int32_t susize_t; typedef uint32_t uaddr_t; +typedef uint32_t uptr_t; /* User pointer equivalent */ + +#define uputp uputl /* Copy user pointer type */ +#define ugetp ugetl /* between user and kernel */ extern void ei(void); extern irqflags_t di(void); diff --git a/Kernel/cpu-6809/cpu.h b/Kernel/cpu-6809/cpu.h index ab2bab08..136eb0be 100644 --- a/Kernel/cpu-6809/cpu.h +++ b/Kernel/cpu-6809/cpu.h @@ -13,6 +13,10 @@ typedef uint16_t uarg_t; /* Holds arguments */ typedef uint16_t usize_t; /* Largest value passed by userspace */ typedef int16_t susize_t; typedef uint16_t uaddr_t; /* A user address must fit this */ +typedef uint16_t uptr_t; /* User pointer equivalent */ + +#define uputp uputw /* Copy user pointer type */ +#define ugetp ugetw /* between user and kernel */ extern void ei(void); extern irqflags_t di(void); diff --git a/Kernel/cpu-8086/cpu.h b/Kernel/cpu-8086/cpu.h index 19c39b76..d9d1c0bd 100644 --- a/Kernel/cpu-8086/cpu.h +++ b/Kernel/cpu-8086/cpu.h @@ -13,6 +13,10 @@ typedef uint16_t uarg_t; /* Holds arguments */ typedef uint16_t usize_t; /* Largest value passed by userspace */ typedef int16_t susize_t; typedef uint16_t uaddr_t; +typedef uint16_t uptr_t; /* User pointer equivalent */ + +#define uputp uputw /* Copy user pointer type */ +#define ugetp ugetw /* between user and kernel */ #define __fastcall__ extern void ei(void); diff --git a/Kernel/cpu-z80/cpu.h b/Kernel/cpu-z80/cpu.h index f5bf3997..abc440f8 100644 --- a/Kernel/cpu-z80/cpu.h +++ b/Kernel/cpu-z80/cpu.h @@ -10,6 +10,10 @@ typedef uint16_t uarg_t; /* Holds arguments */ typedef uint16_t usize_t; /* Largest value passed by userspace */ typedef int16_t susize_t; typedef uint16_t uaddr_t; /* User address */ +typedef uint16_t uptr_t; /* Userspace pointer equivalent */ + +#define uputp uputw /* Copy user pointer type */ +#define ugetp ugetw /* between user and kernel */ #define ei() do {__asm ei __endasm; } while(0);