Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 May 2003 00:22:56 -0700 (PDT)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 31223 for review
Message-ID:  <200305150722.h4F7MuOq005076@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=31223

Change 31223 by marcel@marcel_nfs on 2003/05/15 00:22:34

	Improve the "header" comment.
	While here, stop using a seperate section for the syscall
	code proper. There's not need for it.

Affected files ...

.. //depot/projects/ia64_epc/sys/ia64/ia64/syscall.s#19 edit

Differences ...

==== //depot/projects/ia64_epc/sys/ia64/ia64/syscall.s#19 (text+ko) ====

@@ -32,13 +32,15 @@
 
 /*
  * A process performs a syscall by performing an indirect call to the
- * address stored in ar.k5. The contents ar.pfs and rp should be saved
- * prior to the syscall in r9 and r10 respectively. The kernel will
- * restore these values on return. The value of gp is preserved across
- * the call.
- * The address in ar.k5 is the start of the EPC gateway page. The code
- * in the gateway page is primarily responsible for increasing the
- * privilege level, but will also make sure we have a reliable psr.
+ * address stored in ar.k5. The contents of ar.pfs and rp should be
+ * saved prior to the syscall in r9 and r10 respectively. The kernel
+ * will restore these values on return. The value of gp is preserved
+ * across the call. This allows for small enough syscall stubs without
+ * getting too weird.
+ * The address in ar.k5 is the start of the EPC gateway page and also
+ * the syscall entry point. The syscall code in the gateway page is
+ * primarily responsible for increasing the privilege level, but will
+ * also make sure we have a reliable psr.
  *
  * A process defines:
  *	r8		-	syscall number
@@ -53,10 +55,16 @@
  *	rp		-	restored from r10
  *	gp		-	preserved
  *
- * The EPC defines:
+ * The EPC syscall code defines:
  *	r11		-	copy of psr.l
  *	r14		-	Kernel memory stack
  *	r15		-	Kernel register stack
+ *
+ * Also in the gateway page are the signal trampolines. As such, stacks
+ * don't have to be made executable per se. Since debuggers have a need
+ * to know about trampolines, we probably need to define a table of
+ * vectors or something along those lines so that debuggers can get the
+ * information they need and we have the freedom to move code around.
  */
 
 	.section	.text.gateway, "ax"
@@ -228,7 +236,7 @@
 
 	.align		PAGE_SIZE
 
-	.section	.text.syscall, "ax"
+	.text
 
 ENTRY(epc_syscall, 8)
 	.prologue



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305150722.h4F7MuOq005076>