Remove xfer_ready() (it has been replaced by xfer_window())
[people/holger/gpxe.git] / src / core / xfer.c
index 97fd2a6..0689587 100644 (file)
@@ -85,33 +85,6 @@ int xfer_redirect ( struct xfer_interface *xfer, int type, ... ) {
        return rc;
 }
 
-/**
- * Request data
- *
- * @v xfer             Data transfer interface
- * @v offset           Offset to new position
- * @v whence           Basis for new position
- * @v len              Length of requested data
- * @ret rc             Return status code
- */
-int xfer_request ( struct xfer_interface *xfer, off_t offset, int whence,
-                  size_t len ) {
-       struct xfer_interface *dest = xfer_get_dest ( xfer );
-       int rc;
-
-       DBGC ( xfer, "XFER %p->%p request %s+%ld %zd\n", xfer, dest,
-              whence_text ( whence ), offset, len );
-
-       rc = dest->op->request ( dest, offset, whence, len );
-
-       if ( rc != 0 ) {
-               DBGC ( xfer, "XFER %p<-%p request: %s\n", xfer, dest,
-                      strerror ( rc ) );
-       }
-       xfer_put ( dest );
-       return rc;
-}
-
 /**
  * Seek to position
  *
@@ -138,17 +111,19 @@ int xfer_seek ( struct xfer_interface *xfer, off_t offset, int whence ) {
 }
 
 /**
- * Test to see if interface is ready to accept data
+ * Check flow control window
  *
  * @v xfer             Data transfer interface
- * @ret rc             Return status code
- *
- * This test is optional; the data transfer interface may wish that it
- * does not yet wish to accept data, but cannot prevent attempts to
- * deliver data to it.
+ * @ret len            Length of window
  */
-int xfer_ready ( struct xfer_interface *xfer ) {
-       return xfer_seek ( xfer, 0, SEEK_CUR );
+size_t xfer_window ( struct xfer_interface *xfer ) {
+       struct xfer_interface *dest = xfer_get_dest ( xfer );
+       size_t len;
+
+       len = dest->op->window ( dest );
+
+       xfer_put ( dest );
+       return len;
 }
 
 /**
@@ -312,30 +287,41 @@ int ignore_xfer_vredirect ( struct xfer_interface *xfer __unused,
 }
 
 /**
- * Ignore request() event
+ * Ignore seek() event
  *
  * @v xfer             Data transfer interface
  * @v offset           Offset to new position
  * @v whence           Basis for new position
- * @v len              Length of requested data
  * @ret rc             Return status code
  */
-int ignore_xfer_request ( struct xfer_interface *xfer __unused,
-                         off_t offset __unused, int whence __unused, 
-                         size_t len __unused ) {
+int ignore_xfer_seek ( struct xfer_interface *xfer __unused,
+                      off_t offset __unused, int whence __unused ) {
        return 0;
 }
 
 /**
- * Ignore seek() event
+ * Unlimited flow control window
  *
  * @v xfer             Data transfer interface
- * @v offset           Offset to new position
- * @v whence           Basis for new position
- * @ret rc             Return status code
+ * @ret len            Length of window
+ *
+ * This handler indicates that the interface is always ready to accept
+ * data.
  */
-int ignore_xfer_seek ( struct xfer_interface *xfer __unused,
-                      off_t offset __unused, int whence __unused ) {
+size_t unlimited_xfer_window ( struct xfer_interface *xfer __unused ) {
+       return ~( ( size_t ) 0 );
+}
+
+/**
+ * No flow control window
+ *
+ * @v xfer             Data transfer interface
+ * @ret len            Length of window
+ *
+ * This handler indicates that the interface is never ready to accept
+ * data.
+ */
+size_t no_xfer_window ( struct xfer_interface *xfer __unused ) {
        return 0;
 }
 
@@ -415,8 +401,8 @@ int ignore_xfer_deliver_raw ( struct xfer_interface *xfer,
 struct xfer_interface_operations null_xfer_ops = {
        .close          = ignore_xfer_close,
        .vredirect      = ignore_xfer_vredirect,
-       .request        = ignore_xfer_request,
        .seek           = ignore_xfer_seek,
+       .window         = unlimited_xfer_window,
        .alloc_iob      = default_xfer_alloc_iob,
        .deliver_iob    = xfer_deliver_as_raw,
        .deliver_raw    = ignore_xfer_deliver_raw,