[eros-cvs] cvs commit: eros/src/doc/www/devel/ObRef/primary Node.html

shap@eros.cs.jhu.edu shap@eros.cs.jhu.edu
Wed, 29 Aug 2001 09:38:56 -0400


shap        01/08/29 09:38:56

  Modified:    src/base/domain/destroy triv_destroy.i486.S
               src/base/sys/eros NodeKey.h
               src/base/sys/key pk_NodeKey.cxx
               src/base/sys/libkey lk_ndcopy.c
               src/doc/www/devel/ObRef/primary Node.html
  Log:
  Converted "node copy" to place slot in data register 1

Revision  Changes    Path
1.22      +2 -1      eros/src/base/domain/destroy/triv_destroy.i486.S

Index: triv_destroy.i486.S
===================================================================
RCS file: /cvs/eros/src/base/domain/destroy/triv_destroy.i486.S,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- triv_destroy.i486.S	2001/05/25 23:49:47	1.21
+++ triv_destroy.i486.S	2001/08/29 13:38:56	1.22
@@ -95,7 +95,8 @@
 	decl	%esi
 	js	return_node	/* test sign bit for negative number */
 
-	movl	$OC_Node_Copy(0),%OC
+	movl	$OC_Node_xCopy,%OC
+	movl	$0,%ebx
 	addl	%esi,%OC
 	/* retrieve the key... */
 	CALL_OC(KR_SEGNODE, KR_NULL, KR_SCRATCH);



1.34      +1 -1      eros/src/base/sys/eros/NodeKey.h

Index: NodeKey.h
===================================================================
RCS file: /cvs/eros/src/base/sys/eros/NodeKey.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- NodeKey.h	2001/08/29 12:27:44	1.33
+++ NodeKey.h	2001/08/29 13:38:56	1.34
@@ -35,7 +35,7 @@
 
 /* ORDER and RESULT code values: */
 
-#define OC_Node_Copy(k)          (0+(k))
+#define OC_Node_xCopy            0
 #define OC_Node_Swap(k)          (32+(k)) /* for parallel w/ dom key */
 #define OC_Node_WriteNumber      96
 



1.84      +9 -35     eros/src/base/sys/key/pk_NodeKey.cxx

Index: pk_NodeKey.cxx
===================================================================
RCS file: /cvs/eros/src/base/sys/key/pk_NodeKey.cxx,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- pk_NodeKey.cxx	2001/08/29 12:27:44	1.83
+++ pk_NodeKey.cxx	2001/08/29 13:38:56	1.84
@@ -123,46 +123,20 @@
       return;
     }
 
-  case OC_Node_Copy(0):
-  case OC_Node_Copy(1):
-  case OC_Node_Copy(2):
-  case OC_Node_Copy(3):
-  case OC_Node_Copy(4):		/* brand copy not permitted */
-  case OC_Node_Copy(5):
-  case OC_Node_Copy(6):
-  case OC_Node_Copy(7):
-  case OC_Node_Copy(8):
-  case OC_Node_Copy(9):
-  case OC_Node_Copy(10):
-  case OC_Node_Copy(11):
-  case OC_Node_Copy(12):
-  case OC_Node_Copy(13):
-  case OC_Node_Copy(14):
-  case OC_Node_Copy(15):
-  case OC_Node_Copy(16):
-  case OC_Node_Copy(17):
-  case OC_Node_Copy(18):
-  case OC_Node_Copy(19):
-  case OC_Node_Copy(20):
-  case OC_Node_Copy(21):
-  case OC_Node_Copy(22):
-  case OC_Node_Copy(23):
-  case OC_Node_Copy(24):
-  case OC_Node_Copy(25):
-  case OC_Node_Copy(26):
-  case OC_Node_Copy(27):
-  case OC_Node_Copy(28):
-  case OC_Node_Copy(29):
-  case OC_Node_Copy(30):
-  case OC_Node_Copy(31):
+  case OC_Node_xCopy:
     {
-      uint32_t slot = inv.entry.code - OC_Node_Copy(0);
+      uint32_t slot = inv.entry.w1;
 
+      COMMIT_POINT();
+
+      if (slot >= EROS_NODE_SIZE) {
+	inv.exit.code = RC_RequestError;
+	return;
+      }
+
       /* All of these complete ok. */
       inv.exit.code = RC_OK;
       
-      COMMIT_POINT();
-
       if ( (*theNode)[slot].IsRdHazard() )
 	theNode->ClearHazard(slot);
 



1.17      +2 -2      eros/src/base/sys/libkey/lk_ndcopy.c

Index: lk_ndcopy.c
===================================================================
RCS file: /cvs/eros/src/base/sys/libkey/lk_ndcopy.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- lk_ndcopy.c	2001/05/24 04:37:59	1.16
+++ lk_ndcopy.c	2001/08/29 13:38:56	1.17
@@ -28,7 +28,7 @@
 {
   Message msg;
 
-  msg.snd_w1 = 0;
+  msg.snd_w1 = slot;
   msg.snd_w2 = 0;
   msg.snd_w3 = 0;
   
@@ -45,7 +45,7 @@
   msg.rcv_len = 0;		/* no data returned */
 
   msg.snd_invKey = krNode;
-  msg.snd_code = OC_Node_Copy(slot);
+  msg.snd_code = OC_Node_xCopy;
 
   return CALL(&msg);
 }



1.36      +13 -2     eros/src/doc/www/devel/ObRef/primary/Node.html

Index: Node.html
===================================================================
RCS file: /cvs/eros/src/doc/www/devel/ObRef/primary/Node.html,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- Node.html	2001/08/29 12:27:44	1.35
+++ Node.html	2001/08/29 13:38:56	1.36
@@ -129,11 +129,22 @@
 	   </tr>
 	 </table>
 	 <p> 
-    <dt> <strong>Copy Key N</strong> (OC = <em>N</em>)
+    <dt> <strong>Copy Key N</strong> (OC = 0)
     <dd> 
-	 <p> Copies the key in slot N (0 &lt;= N &lt;= 31) of the Node
+	 <p> Copies the key in  slot N (0 &lt;= N &lt;= 31) of the Node
 	 to the key register named in key slot 0 (RK0).
 	 <table>
+	   <tr valign=top>
+	     <td>
+	       <strong>Request</strong>
+	     </td>
+	     <td align=right>
+	       R0
+	     </td>
+	     <td>
+	       The node slot to be copied.
+	     </td>
+	   </tr>
 	   <tr valign=top>
 	     <td>
 	       <strong>Reply</strong>