Skip to content

Commit

Permalink
[int13] Provide a permanently closed window via the control interface
Browse files Browse the repository at this point in the history
Allow objects to support both streaming and block device protocols, by
starting streaming data only when the data transfer window opens.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Jun 28, 2011
1 parent 5eb60f4 commit 69f5b2e
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/arch/i386/interface/pcbios/int13.c
Expand Up @@ -1333,6 +1333,20 @@ static void int13_unhook_vector ( void ) {
&int13_vector );
}

/**
* Check INT13 emulated drive flow control window
*
* @v int13 Emulated drive
*/
static size_t int13_block_window ( struct int13_drive *int13 __unused ) {

/* We are never ready to receive data via this interface.
* This prevents objects that support both block and stream
* interfaces from attempting to send us stream data.
*/
return 0;
}

/**
* Handle INT 13 emulated drive underlying block device closing
*
Expand All @@ -1357,6 +1371,7 @@ static void int13_block_close ( struct int13_drive *int13, int rc ) {

/** INT 13 drive interface operations */
static struct interface_operation int13_block_op[] = {
INTF_OP ( xfer_window, struct int13_drive *, int13_block_window ),
INTF_OP ( intf_close, struct int13_drive *, int13_block_close ),
};

Expand Down

0 comments on commit 69f5b2e

Please sign in to comment.