commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

hurd doc/ChangeLog doc/hurd.texi libstore/Chang...


From: Marcus Brinkmann
Subject: hurd doc/ChangeLog doc/hurd.texi libstore/Chang...
Date: Tue, 03 Dec 2002 12:47:06 -0500

CVSROOT:        /cvsroot/hurd
Module name:    hurd
Changes by:     Marcus Brinkmann <address@hidden>       02/12/03 12:47:06

Modified files:
        doc            : ChangeLog hurd.texi 
        libstore       : ChangeLog copy.c device.c file.c memobj.c 
                         mvol.c nbd.c rdwr.c remap.c store.h stripe.c 
                         task.c unknown.c zero.c 

Log message:
        doc/
        2002-12-03  Marcus Brinkmann  <address@hidden>
        
        * hurd.texi (Store I/O): Add store_set_size.
        
        libstore/
        2002-10-01  Ludovic Courtès <address@hidden>
        
        * store.h: New type store_set_size_meth_t: New type.  New
        prototype store_set_size.
        (struct store_class): Added a set_size () method.
        * rdwr.c (store_set_size): New function.
        * file.c (file_store_set_size): New function.
        (store_file_class): Add file_store_set_size.
        * concat.c (concat_set_size): New function.
        (store_concat_class): concat_set_size.
        * copy.c (copy_set_size): New function.
        (store_copy_class): copy_set_size.
        * device.c (device_set_size): New function.
        (store_device_class): device_set_size.
        * memobj.c (memobj_set_size): New function.
        (store_memobj_class): memobj_set_size.
        * mvol.c (mvol_set_size): New function.
        (store_mvol_class): mvol_set_size.
        * nbd.c (nbd_set_size): New function.
        (store_nbd_class): nbd_set_size.
        * remap.c (remap_set_size): New function.
        (store_remap_class): remap_set_size.
        * stripe.c (stripe_set_size): New function.
        (store_stripe_class): stripe_set_size.
        * unknown.c (unknown_set_size): New function.
        (store_unknown_class): unknown_set_size.
        * zero.c (zero_set_size): New function.
        (store_zero_class): zero_set_size.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/doc/ChangeLog.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/doc/hurd.texi.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/ChangeLog.diff?tr1=1.93&tr2=1.94&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/copy.c.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/device.c.diff?tr1=1.29&tr2=1.30&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/file.c.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/memobj.c.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/mvol.c.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/nbd.c.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/rdwr.c.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/remap.c.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/store.h.diff?tr1=1.44&tr2=1.45&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/stripe.c.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/task.c.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/unknown.c.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/libstore/zero.c.diff?tr1=1.14&tr2=1.15&r1=text&r2=text

Patches:
Index: hurd/doc/ChangeLog
diff -u hurd/doc/ChangeLog:1.21 hurd/doc/ChangeLog:1.22
--- hurd/doc/ChangeLog:1.21     Sun Sep 29 16:58:34 2002
+++ hurd/doc/ChangeLog  Tue Dec  3 12:47:05 2002
@@ -1,3 +1,7 @@
+2002-12-03  Marcus Brinkmann  <address@hidden>
+
+       * hurd.texi (Store I/O): Add store_set_size.
+
 2002-09-29  Marcus Brinkmann  <address@hidden>
 
        * hurd.texi (Translators): Change isofs to iso9660fs
Index: hurd/doc/hurd.texi
diff -u hurd/doc/hurd.texi:1.24 hurd/doc/hurd.texi:1.25
--- hurd/doc/hurd.texi:1.24     Sun Sep 29 16:58:34 2002
+++ hurd/doc/hurd.texi  Tue Dec  3 12:47:05 2002
@@ -3295,6 +3295,9 @@
 @var{blocks} (as defined by @address@hidden>block_size}).
 @end deftypefun
 
address@hidden error_t store_set_size (@w{struct store address@hidden, 
@w{store_offset_t @var{newsize}})
+Set @var{store}'s size to @var{newsize} (in bytes).
address@hidden deftypefun
 
 @node Store Classes
 @subsection Store Classes
Index: hurd/libstore/ChangeLog
diff -u hurd/libstore/ChangeLog:1.93 hurd/libstore/ChangeLog:1.94
--- hurd/libstore/ChangeLog:1.93        Sun Nov  3 14:27:36 2002
+++ hurd/libstore/ChangeLog     Tue Dec  3 12:47:06 2002
@@ -1,3 +1,32 @@
+2002-10-01  Ludovic Courtès <address@hidden>
+
+       * store.h: New type store_set_size_meth_t: New type.  New
+       prototype store_set_size.
+       (struct store_class): Added a set_size () method.
+       * rdwr.c (store_set_size): New function.
+       * file.c (file_store_set_size): New function.
+       (store_file_class): Add file_store_set_size.
+       * concat.c (concat_set_size): New function.
+       (store_concat_class): concat_set_size.
+       * copy.c (copy_set_size): New function.
+       (store_copy_class): copy_set_size.
+       * device.c (device_set_size): New function.
+       (store_device_class): device_set_size.
+       * memobj.c (memobj_set_size): New function.
+       (store_memobj_class): memobj_set_size.
+       * mvol.c (mvol_set_size): New function.
+       (store_mvol_class): mvol_set_size.
+       * nbd.c (nbd_set_size): New function.
+       (store_nbd_class): nbd_set_size.
+       * remap.c (remap_set_size): New function.
+       (store_remap_class): remap_set_size.
+       * stripe.c (stripe_set_size): New function.
+       (store_stripe_class): stripe_set_size.
+       * unknown.c (unknown_set_size): New function.
+       (store_unknown_class): unknown_set_size.
+       * zero.c (zero_set_size): New function.
+       (store_zero_class): zero_set_size.
+
 2002-11-03  Neal H. Walfield  <address@hidden>
 
        * kids.c: Do not include <malloc.h>.
Index: hurd/libstore/copy.c
diff -u hurd/libstore/copy.c:1.14 hurd/libstore/copy.c:1.15
--- hurd/libstore/copy.c:1.14   Thu Mar 14 16:09:54 2002
+++ hurd/libstore/copy.c        Tue Dec  3 12:47:06 2002
@@ -74,18 +74,22 @@
   *amount = len;
   return 0;
 }
+
+static error_t
+copy_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
 
 error_t
 copy_allocate_encoding (const struct store *store, struct store_enc *enc)
 {
-  /* ... */
   return EOPNOTSUPP;
 }
 
 error_t
 copy_encode (const struct store *store, struct store_enc *enc)
 {
-  /* ... */
   return EOPNOTSUPP;
 }
 
@@ -93,7 +97,6 @@
 copy_decode (struct store_enc *enc, const struct store_class *const *classes,
             struct store **store)
 {
-  /* ... */
   return EOPNOTSUPP;
 }
 
@@ -159,7 +162,7 @@
 const struct store_class
 store_copy_class =
 {
-  STORAGE_COPY, "copy", copy_read, copy_write,
+  STORAGE_COPY, "copy", copy_read, copy_write, copy_set_size,
   copy_allocate_encoding, copy_encode, copy_decode,
   copy_set_flags, copy_clear_flags, copy_cleanup, copy_clone, 0, copy_open
 };
Index: hurd/libstore/device.c
diff -u hurd/libstore/device.c:1.29 hurd/libstore/device.c:1.30
--- hurd/libstore/device.c:1.29 Thu May 16 17:02:50 2002
+++ hurd/libstore/device.c      Tue Dec  3 12:47:06 2002
@@ -70,6 +70,12 @@
 }
 
 static error_t
+dev_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
+static error_t
 dev_decode (struct store_enc *enc, const struct store_class *const *classes,
            struct store **store)
 {
@@ -238,7 +244,7 @@
 const struct store_class
 store_device_class =
 {
-  STORAGE_DEVICE, "device", dev_read, dev_write,
+  STORAGE_DEVICE, "device", dev_read, dev_write, dev_set_size,
   store_std_leaf_allocate_encoding, store_std_leaf_encode, dev_decode,
   dev_set_flags, dev_clear_flags, 0, 0, 0, dev_open, 0, dev_map
 };
Index: hurd/libstore/file.c
diff -u hurd/libstore/file.c:1.17 hurd/libstore/file.c:1.18
--- hurd/libstore/file.c:1.17   Thu Mar 14 16:09:54 2002
+++ hurd/libstore/file.c        Tue Dec  3 12:47:06 2002
@@ -27,6 +27,29 @@
 
 #include "store.h"
 
+/* Return 0 if STORE's range is enforced by the filesystem, otherwise an
+   error.  */
+static error_t
+enforced (struct store *store)
+{
+  if (store->num_runs != 1 || store->runs[0].start != 0)
+    /* Can't enforce non-contiguous ranges, or one not starting at 0.  */
+    return EINVAL;
+  else
+    {
+      /* See if the the current (one) range is that the kernel is enforcing. */
+      struct stat st;
+      error_t err = io_stat (store->port, &st);
+
+      if (!err
+         && store->runs[0].length != (st.st_size >> store->log2_block_size))
+       /* The single run is not the whole file.  */
+       err = EINVAL;
+
+      return err;
+    }
+}
+
 static error_t
 file_read (struct store *store,
           store_offset_t addr, size_t index, size_t amount, void **buf,
@@ -46,6 +69,27 @@
 }
 
 static error_t
+file_store_set_size (struct store *store, size_t newsize)
+{
+  error_t err;
+
+  if (enforced (store) != 0)
+    /* Bail out if there is more than a single run.  */
+    return EOPNOTSUPP;
+
+  err = file_set_size (store->port, newsize);
+
+  if (!err)
+  {
+    /* Update STORE's size and run.  */
+    store->size = newsize;
+    store->runs[0].length = newsize >> store->log2_block_size;
+  }
+
+  return err;
+}
+
+static error_t
 file_decode (struct store_enc *enc, const struct store_class *const *classes,
             struct store **store)
 {
@@ -88,28 +132,7 @@
   store->port = MACH_PORT_NULL;
 }
 
-/* Return 0 if STORE's range is enforced by the filesystem, otherwise an
-   error.  */
-static error_t
-enforced (struct store *store)
-{
-  if (store->num_runs != 1 || store->runs[0].start != 0)
-    /* Can't enforce non-contiguous ranges, or one not starting at 0.  */
-    return EINVAL;
-  else
-    /* See if the the current (one) range is that the kernel is enforcing. */
-    {
-      struct stat st;
-      error_t err = io_stat (store->port, &st);
-
-      if (!err
-         && store->runs[0].length != (st.st_size >> store->log2_block_size))
-       /* The single run is not the whole file.  */
-       err = EINVAL;
 
-      return err;
-    }
-}
 
 static error_t
 file_set_flags (struct store *store, int flags)
@@ -192,7 +215,7 @@
 const struct store_class
 store_file_class =
 {
-  STORAGE_HURD_FILE, "file", file_read, file_write,
+  STORAGE_HURD_FILE, "file", file_read, file_write, file_store_set_size,
   store_std_leaf_allocate_encoding, store_std_leaf_encode, file_decode,
   file_set_flags, file_clear_flags, 0, 0, 0, file_open, 0, file_map
 };
@@ -219,6 +242,7 @@
 store_file_byte_class =
 {
   STORAGE_HURD_FILE, "file", file_byte_read, file_byte_write,
+  file_store_set_size,
   store_std_leaf_allocate_encoding, store_std_leaf_encode, file_decode,
   file_set_flags, file_clear_flags, 0, 0, 0, file_open, 0, file_map
 };
Index: hurd/libstore/memobj.c
diff -u hurd/libstore/memobj.c:1.4 hurd/libstore/memobj.c:1.5
--- hurd/libstore/memobj.c:1.4  Thu Mar 14 16:09:53 2002
+++ hurd/libstore/memobj.c      Tue Dec  3 12:47:06 2002
@@ -170,6 +170,12 @@
 }
 
 static error_t
+memobj_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
+static error_t
 memobj_decode (struct store_enc *enc, const struct store_class *const *classes,
               struct store **store)
 {
@@ -182,6 +188,7 @@
   STORAGE_MEMORY, "memobj",
   map: memobj_map,
   read: memobj_read,
+  set_size: memobj_set_size,
   write: memobj_write,
   allocate_encoding: store_std_leaf_allocate_encoding,
   encode: store_std_leaf_encode,
Index: hurd/libstore/mvol.c
diff -u hurd/libstore/mvol.c:1.5 hurd/libstore/mvol.c:1.6
--- hurd/libstore/mvol.c:1.5    Thu Mar 14 16:09:54 2002
+++ hurd/libstore/mvol.c        Tue Dec  3 12:47:06 2002
@@ -70,6 +70,12 @@
   return err;
 }
 
+static error_t
+mvol_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
 error_t
 mvol_remap (struct store *source,
            const struct store_run *runs, size_t num_runs,
@@ -81,7 +87,7 @@
 const struct store_class
 store_mvol_class =
 {
-  -1, "mvol", mvol_read, mvol_write,
+  -1, "mvol", mvol_read, mvol_write, mvol_set_size,
   0, 0, 0,
   store_set_child_flags, store_clear_child_flags, 0, 0, mvol_remap
 };
Index: hurd/libstore/nbd.c
diff -u hurd/libstore/nbd.c:1.18 hurd/libstore/nbd.c:1.19
--- hurd/libstore/nbd.c:1.18    Thu Mar 14 16:09:54 2002
+++ hurd/libstore/nbd.c Tue Dec  3 12:47:06 2002
@@ -264,6 +264,12 @@
   return err;
 }
 
+static error_t
+nbd_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
 
 
 /* Setup hooks.  */
@@ -473,6 +479,7 @@
   validate_name: nbd_validate_name,
   read: nbd_read,
   write: nbd_write,
+  set_size: nbd_set_size,
   allocate_encoding: store_std_leaf_allocate_encoding,
   encode: store_std_leaf_encode,
   decode: nbd_decode,
Index: hurd/libstore/rdwr.c
diff -u hurd/libstore/rdwr.c:1.25 hurd/libstore/rdwr.c:1.26
--- hurd/libstore/rdwr.c:1.25   Wed Mar 13 20:23:08 2002
+++ hurd/libstore/rdwr.c        Tue Dec  3 12:47:06 2002
@@ -285,3 +285,16 @@
       return err;
     }
 }
+
+/* Set STORE's size to NEWSIZE (in bytes).  */
+error_t
+store_set_size (struct store *store, size_t newsize)
+{
+  error_t err;
+  store_set_size_meth_t set_size = store->class->set_size;
+
+  /* Updating the runs list is up to the class set_size method.  */
+  err = (* set_size) (store, newsize);
+
+  return err;
+}
Index: hurd/libstore/remap.c
diff -u hurd/libstore/remap.c:1.12 hurd/libstore/remap.c:1.13
--- hurd/libstore/remap.c:1.12  Thu Mar 14 16:09:54 2002
+++ hurd/libstore/remap.c       Tue Dec  3 12:47:06 2002
@@ -41,6 +41,12 @@
   return store_write (store->children[0], addr, buf, len, amount);
 }
 
+static error_t
+remap_set_size (struct store *store, size_t newsize)
+{
+  return store_set_size (store->children[0], newsize);
+}
+
 error_t
 remap_allocate_encoding (const struct store *store, struct store_enc *enc)
 {
@@ -200,7 +206,7 @@
 const struct store_class
 store_remap_class =
 {
-  STORAGE_REMAP, "remap", remap_read, remap_write,
+  STORAGE_REMAP, "remap", remap_read, remap_write, remap_set_size,
   remap_allocate_encoding, remap_encode, remap_decode,
   store_set_child_flags, store_clear_child_flags,
   NULL, NULL, NULL,            /* cleanup, clone, remap */
Index: hurd/libstore/store.h
diff -u hurd/libstore/store.h:1.44 hurd/libstore/store.h:1.45
--- hurd/libstore/store.h:1.44  Tue Jun 11 17:39:53 2002
+++ hurd/libstore/store.h       Tue Dec  3 12:47:06 2002
@@ -132,6 +132,8 @@
                                     store_offset_t addr, size_t index,
                                     mach_msg_type_number_t amount,
                                     void **buf, mach_msg_type_number_t *len);
+typedef error_t (*store_set_size_meth_t)(struct store *store,
+                                        size_t newsize);
 
 struct store_enc;              /* fwd decl */
 
@@ -144,11 +146,13 @@
   const char *name;
 
   /* Read up to AMOUNT bytes at the underlying address ADDR from the storage
-     into BUF and LEN.  INDEX varies from 0 to the number of runs in STORE. */
+     into BUF and LEN.  INDEX varies from 0 to the number of runs in STORE.  */
   store_read_meth_t read;
   /* Write up to LEN bytes from BUF to the storage at the underlying address
-     ADDR.  INDEX varies from 0 to the number of runs in STORE. */
+     ADDR.  INDEX varies from 0 to the number of runs in STORE.  */
   store_write_meth_t write;
+  /* Set store's size to NEWSIZE (in bytes).  */
+  store_set_size_meth_t set_size;
 
   /* To the lengths of each for the four arrays in ENC, add how much STORE
      would need to be encoded.  */
@@ -304,6 +308,9 @@
    (as defined by STORE->block_size).  Note that LEN is in bytes.  */
 error_t store_read (struct store *store,
                    store_offset_t addr, size_t amount, void **buf, size_t 
*len);
+
+/* Set STORE's size to NEWSIZE (in bytes).  */
+error_t store_set_size (struct store *store, size_t newsize);
 
 /* If STORE was created using store_create, remove the reference to the
    source from which it was created.  */
Index: hurd/libstore/stripe.c
diff -u hurd/libstore/stripe.c:1.18 hurd/libstore/stripe.c:1.19
--- hurd/libstore/stripe.c:1.18 Thu Mar 14 16:09:53 2002
+++ hurd/libstore/stripe.c      Tue Dec  3 12:47:06 2002
@@ -58,6 +58,12 @@
 }
 
 error_t
+stripe_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
+error_t
 stripe_remap (struct store *source,
              const struct store_run *runs, size_t num_runs,
              struct store **store)
@@ -105,7 +111,7 @@
 const struct store_class
 store_ileave_class =
 {
-  STORAGE_INTERLEAVE, "interleave", stripe_read, stripe_write,
+  STORAGE_INTERLEAVE, "interleave", stripe_read, stripe_write, stripe_set_size,
   ileave_allocate_encoding, ileave_encode, ileave_decode,
   store_set_child_flags, store_clear_child_flags, 0, 0, stripe_remap
 };
@@ -149,7 +155,7 @@
 const struct store_class
 store_concat_class =
 {
-  STORAGE_CONCAT, "concat", stripe_read, stripe_write,
+  STORAGE_CONCAT, "concat", stripe_read, stripe_write, stripe_set_size,
   concat_allocate_encoding, concat_encode, concat_decode,
   store_set_child_flags, store_clear_child_flags, 0, 0, stripe_remap,
   store_concat_open
Index: hurd/libstore/task.c
diff -u hurd/libstore/task.c:1.6 hurd/libstore/task.c:1.7
--- hurd/libstore/task.c:1.6    Thu Mar 14 16:09:53 2002
+++ hurd/libstore/task.c        Tue Dec  3 12:47:06 2002
@@ -75,6 +75,12 @@
 }
 
 static error_t
+task_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
+static error_t
 task_decode (struct store_enc *enc, const struct store_class *const *classes,
             struct store **store)
 {
@@ -127,7 +133,7 @@
 const struct store_class
 store_task_class =
 {
-  STORAGE_TASK, "task", task_read, task_write,
+  STORAGE_TASK, "task", task_read, task_write, task_set_size,
   store_std_leaf_allocate_encoding, store_std_leaf_encode, task_decode,
   task_set_flags, task_clear_flags, 0, 0, 0, task_open
 };
Index: hurd/libstore/unknown.c
diff -u hurd/libstore/unknown.c:1.3 hurd/libstore/unknown.c:1.4
--- hurd/libstore/unknown.c:1.3 Thu Mar 14 16:09:53 2002
+++ hurd/libstore/unknown.c     Tue Dec  3 12:47:06 2002
@@ -42,6 +42,12 @@
 }
 
 static error_t
+noset_size (struct store *store, size_t newsize)
+{
+  return EFTYPE;
+}
+
+static error_t
 noflags (struct store *store, int flags)
 {
   return EINVAL;
@@ -211,6 +217,7 @@
   -1, "unknown",
   read:                        noread,
   write:               nowrite,
+  set_size:            noset_size,
   allocate_encoding:   unknown_allocate_encoding,
   encode:              unknown_encode,
   decode:              store_unknown_decode,
Index: hurd/libstore/zero.c
diff -u hurd/libstore/zero.c:1.14 hurd/libstore/zero.c:1.15
--- hurd/libstore/zero.c:1.14   Thu Mar 14 16:09:53 2002
+++ hurd/libstore/zero.c        Tue Dec  3 12:47:06 2002
@@ -55,6 +55,12 @@
   return 0;
 }
 
+static error_t
+zero_set_size (struct store *store, size_t newsize)
+{
+  return EOPNOTSUPP;
+}
+
 /* Modify SOURCE to reflect those runs in RUNS, and return it in STORE.  */
 error_t
 zero_remap (struct store *source,
@@ -173,7 +179,7 @@
 const struct store_class
 store_zero_class =
 {
-  STORAGE_ZERO, "zero", zero_read, zero_write,
+  STORAGE_ZERO, "zero", zero_read, zero_write, zero_set_size,
   zero_allocate_encoding, zero_encode, zero_decode,
   0, 0, 0, 0, zero_remap, zero_open, zero_validate_name,
   zero_map




reply via email to

[Prev in Thread] Current Thread [Next in Thread]