AMD64 Support:
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 25 Aug 2008 23:34:35 +0000 (23:34 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 25 Aug 2008 23:34:35 +0000 (23:34 +0000)
* Move amd64-specific signal.h defs to machine/signal.h

* Change size field in tls_info from 'int' to 'long' to accomodate
  64 bit architectures.

Submitted-by: Matthew Dillon
Obtained-from: FreeBSD, Jordan Gordeev <jgordeev@dir.bg>, and Matt

sys/cpu/amd64/include/signal.h
sys/sys/msgport.h
sys/sys/tls.h

index 53fdef1..4956269 100644 (file)
  *
  *     @(#)signal.h    8.1 (Berkeley) 6/11/93
  * $FreeBSD: src/sys/i386/include/signal.h,v 1.12 1999/11/12 13:52:11 marcel Exp $
- * $DragonFly: src/sys/cpu/amd64/include/signal.h,v 1.1 2007/08/21 19:40:24 corecode Exp $
+ * $DragonFly: src/sys/cpu/amd64/include/signal.h,v 1.2 2008/08/25 23:34:31 dillon Exp $
  */
 
 #ifndef _CPU_SIGNAL_H_
 #define        _CPU_SIGNAL_H_
 
+/** si_code **/
+/* codes for SIGILL */
+#define ILL_ILLOPC     1       /* Illegal opcode.                      */
+#define ILL_ILLOPN     2       /* Illegal operand.                     */
+#define ILL_ILLADR     3       /* Illegal addressing mode.             */
+#define ILL_ILLTRP     4       /* Illegal trap.                        */
+#define ILL_PRVOPC     5       /* Privileged opcode.                   */
+#define ILL_PRVREG     6       /* Privileged register.                 */
+#define ILL_COPROC     7       /* Coprocessor error.                   */
+#define ILL_BADSTK     8       /* Internal stack error.                */
+
+/* codes for SIGBUS */
+#define BUS_ADRALN     1       /* Invalid address alignment.           */
+#define BUS_ADRERR     2       /* Nonexistent physical address.        */
+#define BUS_OBJERR     3       /* Object-specific hardware error.      */
+
+/* codes for SIGSEGV */
+#define SEGV_MAPERR    1       /* Address not mapped to object.        */
+#define SEGV_ACCERR    2       /* Invalid permissions for mapped       */
+                               /* object.                              */
+
+/* codes for SIGFPE */
+#define FPE_INTOVF     1       /* Integer overflow.                    */
+#define FPE_INTDIV     2       /* Integer divide by zero.              */
+#define FPE_FLTDIV     3       /* Floating point divide by zero.       */
+#define FPE_FLTOVF     4       /* Floating point overflow.             */
+#define FPE_FLTUND     5       /* Floating point underflow.            */
+#define FPE_FLTRES     6       /* Floating point inexact result.       */
+#define FPE_FLTINV     7       /* Invalid floating point operation.    */
+#define FPE_FLTSUB     8       /* Subscript out of range.              */
+
+/* codes for SIGTRAP */
+#define TRAP_BRKPT     1       /* Process breakpoint.                  */
+#define TRAP_TRACE     2       /* Process trace trap.                  */
+
+/* codes for SIGCHLD */
+#define CLD_EXITED     1       /* Child has exited                     */
+#define CLD_KILLED     2       /* Child has terminated abnormally but  */
+                               /* did not create a core file           */
+#define CLD_DUMPED     3       /* Child has terminated abnormally and  */
+                               /* created a core file                  */
+#define CLD_TRAPPED    4       /* Traced child has trapped             */
+#define CLD_STOPPED    5       /* Child has stopped                    */
+#define CLD_CONTINUED  6       /* Stopped child has continued          */
+
+/* codes for SIGPOLL */
+#define POLL_IN                1       /* Data input available                 */
+#define POLL_OUT       2       /* Output buffers available             */
+#define POLL_MSG       3       /* Input message available              */
+#define POLL_ERR       4       /* I/O Error                            */
+#define POLL_PRI       5       /* High priority input available        */
+#define POLL_HUP       4       /* Device disconnected                  */
+
 /*
  * Machine-dependent signal definitions
  */
index 6aa6328..5fd9c51 100644 (file)
@@ -3,7 +3,7 @@
  *
  *     Implements LWKT messages and ports.
  * 
- * $DragonFly: src/sys/sys/msgport.h,v 1.27 2008/03/05 13:03:29 sephe Exp $
+ * $DragonFly: src/sys/sys/msgport.h,v 1.28 2008/08/25 23:34:34 dillon Exp $
  */
 
 #ifndef _SYS_MSGPORT_H_
@@ -90,6 +90,8 @@ typedef struct lwkt_msg {
  *             being passed through an IPI).
  *
  * ABORTABLE   Static flag indicates that ms_abortfn is valid.
+ *
+ * High 16 bits are available to message handlers.
  */
 #define MSGF_DONE      0x0001          /* message is complete */
 #define MSGF_REPLY     0x0002          /* asynch message has been returned */
@@ -98,6 +100,11 @@ typedef struct lwkt_msg {
 #define MSGF_INTRANSIT 0x0010          /* in-transit (IPI) */
 #define MSGF_ABORTABLE 0x0080          /* message supports abort */
 
+#define MSGF_USER0     0x00010000
+#define MSGF_USER1     0x00020000
+#define MSGF_USER2     0x00040000
+#define MSGF_USER3     0x00080000
+
 #define MSG_CMD_CDEV   0x00010000
 #define MSG_CMD_VFS    0x00020000
 #define MSG_CMD_SYSCALL        0x00030000
index cc0a65d..690f962 100644 (file)
@@ -28,7 +28,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $DragonFly: src/sys/sys/tls.h,v 1.8 2007/01/06 01:46:44 dillon Exp $
+ * $DragonFly: src/sys/sys/tls.h,v 1.9 2008/08/25 23:34:35 dillon Exp $
  */
 
 #ifndef _SYS_TLS_H_
 
 struct tls_info {
        void *base;
-       int size;
+       long size;
 };
 
 int set_tls_area(int which, struct tls_info *info, size_t infosize);
 int get_tls_area(int which, struct tls_info *info, size_t infosize);
 
+#ifdef __amd64__
+
+#define TLS_WHICH_FS   0
+#define TLS_WHICH_GS   1
+
+#endif
+
 #endif