[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




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.