[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- hurd doc/ChangeLog doc/hurd.texi libstore/Chang...,
Marcus Brinkmann <=