|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [UNIKRAFT PATCH v2 3/9] lib/uk9p: Delete the old serialization
This patch deletes the old serialization implementation and removes
the functions from exportsyms.uk.
Signed-off-by: Cristian Banu <cristb@xxxxxxxxx>
---
lib/uk9p/9pdev.c | 36 -----
lib/uk9p/9preq.c | 287 ------------------------------------
lib/uk9p/exportsyms.uk | 7 -
lib/uk9p/include/uk/9pdev.h | 23 ---
lib/uk9p/include/uk/9preq.h | 55 -------
5 files changed, 408 deletions(-)
diff --git a/lib/uk9p/9pdev.c b/lib/uk9p/9pdev.c
index 14ea7ca..1d7e09b 100644
--- a/lib/uk9p/9pdev.c
+++ b/lib/uk9p/9pdev.c
@@ -288,42 +288,6 @@ void uk_9pdev_xmit_notify(struct uk_9pdev *dev)
#endif
}
-struct uk_9preq *uk_9pdev_call(struct uk_9pdev *dev, uint8_t type,
- uint32_t size, const char *fmt, ...)
-{
- struct uk_9preq *req;
- va_list vl;
- int rc;
-
- req = uk_9pdev_req_create(dev, type, size);
- if (PTRISERR(req))
- return req;
-
- va_start(vl, fmt);
- rc = uk_9preq_vserialize(req, fmt, vl);
- va_end(vl);
-
- if (rc < 0)
- goto out;
-
- rc = uk_9preq_ready(req, UK_9PREQ_ZCDIR_NONE, NULL, 0, 0);
- if (rc < 0)
- goto out;
-
- rc = uk_9pdev_request(dev, req);
- if (rc < 0)
- goto out;
-
- rc = uk_9preq_waitreply(req);
- if (rc < 0)
- goto out;
-
- return req;
-out:
- uk_9pdev_req_remove(dev, req);
- return ERR2PTR(rc);
-}
-
struct uk_9preq *uk_9pdev_req_create(struct uk_9pdev *dev, uint8_t type,
uint32_t size)
{
diff --git a/lib/uk9p/9preq.c b/lib/uk9p/9preq.c
index 8d787e7..997f772 100644
--- a/lib/uk9p/9preq.c
+++ b/lib/uk9p/9preq.c
@@ -138,293 +138,6 @@ int uk_9preq_put(struct uk_9preq *req)
return last;
}
-static int _fcall_write(struct uk_9preq_fcall *fcall, const void *buf,
- uint32_t size)
-{
- if (fcall->offset + size > fcall->size)
- return -ENOBUFS;
-
- memcpy((char *)fcall->buf + fcall->offset, buf, size);
- fcall->offset += size;
- return 0;
-}
-
-static int _fcall_serialize(struct uk_9preq_fcall *f, const char *fmt, ...);
-
-static int _fcall_vserialize(struct uk_9preq_fcall *fcall, const char *fmt,
- va_list vl)
-{
- int rc = 0;
-
- while (*fmt) {
- switch (*fmt) {
- case 'b': {
- uint8_t x;
-
- x = va_arg(vl, unsigned int);
- rc = _fcall_write(fcall, &x, sizeof(x));
- if (rc < 0)
- goto out;
- break;
- }
- case 'w': {
- uint16_t x;
-
- x = va_arg(vl, unsigned int);
- rc = _fcall_write(fcall, &x, sizeof(x));
- if (rc < 0)
- goto out;
- break;
- }
- case 'd': {
- uint32_t x;
-
- x = va_arg(vl, uint32_t);
- rc = _fcall_write(fcall, &x, sizeof(x));
- if (rc < 0)
- goto out;
- break;
- }
- case 'q': {
- uint64_t x;
-
- x = va_arg(vl, uint64_t);
- rc = _fcall_write(fcall, &x, sizeof(x));
- if (rc < 0)
- goto out;
- break;
- }
- case 's': {
- struct uk_9p_str *p;
-
- p = va_arg(vl, struct uk_9p_str *);
- rc = _fcall_write(fcall, &p->size, sizeof(p->size));
- if (rc < 0)
- goto out;
- rc = _fcall_write(fcall, p->data, p->size);
- if (rc < 0)
- goto out;
- break;
- }
- case 'Q': {
- struct uk_9p_qid *p;
-
- p = va_arg(vl, struct uk_9p_qid *);
- rc = _fcall_serialize(fcall, "bdq", p->type,
- p->version, p->path);
- if (rc < 0)
- goto out;
- break;
- }
- case 'S': {
- struct uk_9p_stat *p;
-
- p = va_arg(vl, struct uk_9p_stat *);
- rc = _fcall_serialize(fcall, "wwdQdddqsssssddd",
- p->size, p->type, p->dev, &p->qid,
- p->mode, p->atime, p->mtime, p->length,
- &p->name, &p->uid, &p->gid, &p->muid,
- &p->extension, p->n_uid, p->n_gid,
- p->n_muid);
- if (rc < 0)
- goto out;
- break;
- }
- default:
- rc = -EINVAL;
- goto out;
- }
-
- fmt++;
- }
-
-out:
- return rc;
-}
-
-static int _fcall_serialize(struct uk_9preq_fcall *f, const char *fmt, ...)
-{
- va_list vl;
- int rc;
-
- va_start(vl, fmt);
- rc = _fcall_vserialize(f, fmt, vl);
- va_end(vl);
-
- return rc;
-}
-
-int uk_9preq_vserialize(struct uk_9preq *req, const char *fmt, va_list vl)
-{
- int rc;
-
- UK_ASSERT(req);
- UK_ASSERT(UK_READ_ONCE(req->state) == UK_9PREQ_INITIALIZED);
- rc = _fcall_vserialize(&req->xmit, fmt, vl);
-
- return rc;
-}
-
-int uk_9preq_serialize(struct uk_9preq *req, const char *fmt, ...)
-{
- va_list vl;
- int rc;
-
- va_start(vl, fmt);
- rc = uk_9preq_vserialize(req, fmt, vl);
- va_end(vl);
-
- return rc;
-}
-
-static int _fcall_read(struct uk_9preq_fcall *fcall, void *buf, uint32_t size)
-{
- if (fcall->offset + size > fcall->size)
- return -ENOBUFS;
-
- memcpy(buf, (char *)fcall->buf + fcall->offset, size);
- fcall->offset += size;
- return 0;
-}
-
-static int _fcall_deserialize(struct uk_9preq_fcall *f, const char *fmt, ...);
-
-static int _fcall_vdeserialize(struct uk_9preq_fcall *fcall,
- const char *fmt,
- va_list vl)
-{
- int rc = 0;
-
- while (*fmt) {
- switch (*fmt) {
- case 'b': {
- uint8_t *x;
-
- x = va_arg(vl, uint8_t *);
- rc = _fcall_read(fcall, x, sizeof(*x));
- if (rc < 0)
- goto out;
- break;
- }
- case 'w': {
- uint16_t *x;
-
- x = va_arg(vl, uint16_t *);
- rc = _fcall_read(fcall, x, sizeof(*x));
- if (rc < 0)
- goto out;
- break;
- }
- case 'd': {
- uint32_t *x;
-
- x = va_arg(vl, uint32_t *);
- rc = _fcall_read(fcall, x, sizeof(*x));
- if (rc < 0)
- goto out;
- break;
- }
- case 'q': {
- uint64_t *x;
-
- x = va_arg(vl, uint64_t *);
- rc = _fcall_read(fcall, x, sizeof(*x));
- if (rc < 0)
- goto out;
- break;
- }
- case 's': {
- struct uk_9p_str *p;
-
- p = va_arg(vl, struct uk_9p_str *);
- rc = _fcall_read(fcall, &p->size, sizeof(p->size));
- if (rc < 0)
- goto out;
- p->data = (char *)fcall->buf + fcall->offset;
- fcall->offset += p->size;
- break;
- }
- case 'Q': {
- struct uk_9p_qid *p;
-
- p = va_arg(vl, struct uk_9p_qid *);
- rc = _fcall_deserialize(fcall, "bdq", &p->type,
- &p->version, &p->path);
- if (rc < 0)
- goto out;
- break;
- }
- case 'S': {
- struct uk_9p_stat *p;
-
- p = va_arg(vl, struct uk_9p_stat *);
- rc = _fcall_deserialize(fcall, "wwdQdddqsssssddd",
- &p->size, &p->type, &p->dev, &p->qid,
- &p->mode, &p->atime, &p->mtime,
- &p->length, &p->name, &p->uid, &p->gid,
- &p->muid, &p->extension, &p->n_uid,
- &p->n_gid, &p->n_muid);
- if (rc < 0)
- goto out;
- break;
- }
- default:
- rc = -EINVAL;
- goto out;
- }
-
- fmt++;
- }
-
-out:
- return rc;
-}
-
-static int _fcall_deserialize(struct uk_9preq_fcall *f, const char *fmt, ...)
-{
- va_list vl;
- int rc;
-
- va_start(vl, fmt);
- rc = _fcall_vdeserialize(f, fmt, vl);
- va_end(vl);
-
- return rc;
-}
-
-int uk_9preq_vdeserialize(struct uk_9preq *req, const char *fmt, va_list vl)
-{
- int rc;
-
- UK_ASSERT(req);
- UK_ASSERT(UK_READ_ONCE(req->state) == UK_9PREQ_RECEIVED);
- rc = _fcall_vdeserialize(&req->recv, fmt, vl);
-
- return rc;
-}
-
-int uk_9preq_deserialize(struct uk_9preq *req, const char *fmt, ...)
-{
- va_list vl;
- int rc;
-
- va_start(vl, fmt);
- rc = uk_9preq_vdeserialize(req, fmt, vl);
- va_end(vl);
-
- return rc;
-}
-
-int uk_9preq_copy_to(struct uk_9preq *req, void *buf, uint32_t size)
-{
- return _fcall_read(&req->recv, buf, size);
-}
-
-int uk_9preq_copy_from(struct uk_9preq *req, const void *buf, uint32_t size)
-{
- return _fcall_write(&req->xmit, buf, size);
-}
-
int uk_9preq_ready(struct uk_9preq *req, enum uk_9preq_zcdir zc_dir,
void *zc_buf, uint32_t zc_size, uint32_t zc_offset)
{
diff --git a/lib/uk9p/exportsyms.uk b/lib/uk9p/exportsyms.uk
index aae9e8a..7f8e7dd 100644
--- a/lib/uk9p/exportsyms.uk
+++ b/lib/uk9p/exportsyms.uk
@@ -5,12 +5,6 @@ uk_9pdev_trans_set_default
uk_9preq_get
uk_9preq_put
-uk_9preq_vserialize
-uk_9preq_serialize
-uk_9preq_vdeserialize
-uk_9preq_deserialize
-uk_9preq_copy_to
-uk_9preq_copy_from
uk_9preq_receive_cb
uk_9preq_waitreply
uk_9preq_error
@@ -19,7 +13,6 @@ uk_9pdev_connect
uk_9pdev_disconnect
uk_9pdev_request
uk_9pdev_xmit_notify
-uk_9pdev_call
uk_9pdev_set_msize
uk_9pdev_get_msize
diff --git a/lib/uk9p/include/uk/9pdev.h b/lib/uk9p/include/uk/9pdev.h
index 139498f..04ff523 100644
--- a/lib/uk9p/include/uk/9pdev.h
+++ b/lib/uk9p/include/uk/9pdev.h
@@ -107,29 +107,6 @@ int uk_9pdev_request(struct uk_9pdev *dev, struct uk_9preq
*req);
*/
void uk_9pdev_xmit_notify(struct uk_9pdev *dev);
-/**
- * Creates and sends 9P request to the given 9P device, serializing it with
- * the given arguments. This function acts as a shorthand for the explicit
- * calls to req_create(), serialize(), ready(), request(), waitreply().
- *
- * @param dev
- * The Unikraft 9P Device.
- * @param type
- * Transmit type of the request, e.g. Tversion, Tread, and so on.
- * @param size
- * The maximum size for the receive and send buffers.
- * @param fmt
- * The format of the data to be serialized, in the way uk_9preq_serialize()
- * expects it.
- * @param ...
- * The arguments to be serialized.
- * @return
- * - (!PTRISERR): The 9p request in the UK_9PREQ_RECEIVED state.
- * - PTRISERR: The error code with which any of the steps failed.
- */
-struct uk_9preq *uk_9pdev_call(struct uk_9pdev *dev, uint8_t type,
- uint32_t size, const char *fmt, ...);
-
/**
* Create a new request, automatically allocating its tag, based on its type.
*
diff --git a/lib/uk9p/include/uk/9preq.h b/lib/uk9p/include/uk/9preq.h
index 70c1b03..b9713e2 100644
--- a/lib/uk9p/include/uk/9preq.h
+++ b/lib/uk9p/include/uk/9preq.h
@@ -182,61 +182,6 @@ void uk_9preq_get(struct uk_9preq *req);
*/
int uk_9preq_put(struct uk_9preq *req);
-/*
- * The following family of serialization and deserialization functions work
- * by employing a printf-like formatting mechanism for data types supported by
- * the 9p protocol:
- * - 'b': byte (uint8_t)
- * - 'w': word (uint16_t)
- * - 'd': double-word (uint32_t)
- * - 'q': quad-word (uint64_t)
- * - 's': uk_9p_str *
- * - 'S': uk_9p_stat *
- *
- * Similarly to vprintf(), the vserialize() and vdeserialize() functions take
- * a va_list instead of a variable number of arguments.
- *
- * Possible return values:
- * - 0: Operation successful.
- * - (-EINVAL): Invalid format specifier.
- * - (-ENOBUFS): End of buffer reached.
- */
-
-int uk_9preq_vserialize(struct uk_9preq *req, const char *fmt, va_list vl);
-int uk_9preq_serialize(struct uk_9preq *req, const char *fmt, ...);
-int uk_9preq_vdeserialize(struct uk_9preq *req, const char *fmt, va_list vl);
-int uk_9preq_deserialize(struct uk_9preq *req, const char *fmt, ...);
-
-/**
- * Copies raw data from the request receive buffer to the provided buffer.
- *
- * @param req
- * Reference to the 9p request.
- * @param buf
- * Destination buffer.
- * @param size
- * Amount to copy.
- * Possible return values:
- * - 0: Operation successful.
- * - (-ENOBUFS): End of buffer reached.
- */
-int uk_9preq_copy_to(struct uk_9preq *req, void *buf, uint32_t size);
-
-/**
- * Copies raw data from the provided buffer to the request transmission buffer.
- *
- * @param req
- * Reference to the 9p request.
- * @param buf
- * Source buffer.
- * @param size
- * Amount to copy.
- * Possible return values:
- * - 0: Operation successful.
- * - (-ENOBUFS): End of buffer reached.
- */
-int uk_9preq_copy_from(struct uk_9preq *req, const void *buf, uint32_t size);
-
/**
* Marks the given request as being ready, transitioning between states
* INITIALIZED and READY.
--
2.26.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |