Index: libstore/device.c
===================================================================
RCS file: /cvsroot/hurd/hurd/libstore/device.c,v
retrieving revision 1.30
diff -u -r1.30 device.c
--- libstore/device.c	3 Dec 2002 17:47:06 -0000	1.30
+++ libstore/device.c	9 Aug 2003 11:28:09 -0000
@@ -1,6 +1,6 @@
 /* Mach device store backend
 
-   Copyright (C) 1995,96,97,99,2001,02 Free Software Foundation, Inc.
+   Copyright (C) 1995,96,97,99,2001,02,03 Free Software Foundation, Inc.
    Written by Miles Bader <miles@gnu.org>
    This file is part of the GNU Hurd.
 
@@ -52,8 +52,8 @@
 	  store_offset_t addr, size_t index, mach_msg_type_number_t amount,
 	  void **buf, mach_msg_type_number_t *len)
 {
-  return dev_error (device_read (store->port, 0, addr, amount,
-				 (io_buf_ptr_t *)buf, len));
+  return dev_error (device_read (store->port, 0, (recnum_t) addr,
+				 amount, (io_buf_ptr_t *)buf, len));
 }
 
 static error_t
@@ -62,7 +62,8 @@
 	   const void *buf, mach_msg_type_number_t len,
 	   mach_msg_type_number_t *amount)
 {
-  error_t err = dev_error (device_write (store->port, 0, addr,
+  error_t err = dev_error (device_write (store->port, 0,
+					 (recnum_t) addr,
 					 (io_buf_ptr_t)buf, len,
 					 (int *) amount));
   *amount = *(int *) amount;	/* stupid device.defs uses int */
@@ -97,14 +98,41 @@
   error_t err = get_privileged_ports (0, &dev_master);
   if (! err)
     {
+#ifdef KERNEL_SECURITY_TOKEN_VALUE
+      security_token_t sec_token = KERNEL_SECURITY_TOKEN_VALUE;
+#endif
       if (*mod_flags & STORE_HARD_READONLY)
-	err = device_open (dev_master, D_READ, (char *)name, device);
+	err = device_open (dev_master,
+#ifdef KERN_INVALID_LEDGER
+			   MACH_PORT_NULL,  /* OSF Mach */
+#endif
+			   D_READ,
+#ifdef KERNEL_SECURITY_TOKEN_VALUE
+			   sec_token,  /* OSF Mach */
+#endif
+			   (char *)name, device);
       else
 	{
-	  err = device_open (dev_master, D_WRITE | D_READ, (char *)name, device);
+	  err = device_open (dev_master,
+#ifdef KERN_INVALID_LEDGER
+			     MACH_PORT_NULL,
+#endif
+			     D_WRITE | D_READ,
+#ifdef KERNEL_SECURITY_TOKEN_VALUE
+			     sec_token,
+#endif
+			     (char *)name, device);
 	  if (err == ED_READ_ONLY)
 	    {
-	      err = device_open (dev_master, D_READ, (char *)name, device);
+	      err = device_open (dev_master,
+#ifdef KERN_INVALID_LEDGER
+				 MACH_PORT_NULL,
+#endif
+				 D_READ,
+#ifdef KERNEL_SECURITY_TOKEN_VALUE
+				 sec_token,
+#endif
+				 (char *)name, device);
 	      if (! err)
 		*mod_flags |= STORE_HARD_READONLY;
 	    }
@@ -292,7 +320,8 @@
 	      run.start = 0;
 	      run.length = sizes[DEV_GET_SIZE_DEVICE_SIZE] / block_size;
 
-	      if (run.length * block_size != sizes[DEV_GET_SIZE_DEVICE_SIZE])
+	      if (run.length * block_size
+		  != (size_t) sizes[DEV_GET_SIZE_DEVICE_SIZE])
 		/* Bogus results (which some mach devices return).  */
 		block_size = 0;
 	    }

