The send_disk_op() function is only called from the 16bit handlers
found in disk.c.
Signed-off-by: Kevin O'Connor <kevin(a)koconnor.net>
---
src/block.c | 34 +---------------------------------
src/block.h | 1 -
src/disk.c | 32 ++++++++++++++++++++++++++++++++
3 files changed, 33 insertions(+), 34 deletions(-)
diff --git a/src/block.c b/src/block.c
index d9de29f..a383574 100644
--- a/src/block.c
+++ b/src/block.c
@@ -22,7 +22,7 @@
#include "hw/virtio-scsi.h" // virtio_scsi_process_op
#include "malloc.h" // malloc_low
#include "output.h" // dprintf
-#include "stacks.h" // stack_hop
+#include "stacks.h" // call32
#include "std/disk.h" // struct dpte_s
#include "string.h" // checksum
#include "util.h" // process_floppy_op
@@ -613,35 +613,3 @@ process_op(struct disk_op_s *op)
op->count = 0;
return ret;
}
-
-// Execute a "disk_op_s" request - this runs on the extra stack.
-static int
-__send_disk_op(struct disk_op_s *op_far, u16 op_seg)
-{
- struct disk_op_s dop;
- memcpy_far(GET_SEG(SS), &dop
- , op_seg, op_far
- , sizeof(dop));
-
- dprintf(DEBUG_HDL_13, "disk_op d=%p lba=%d buf=%p count=%d cmd=%d\n"
- , dop.drive_gf, (u32)dop.lba, dop.buf_fl
- , dop.count, dop.command);
-
- int status = process_op(&dop);
-
- // Update count with total sectors transferred.
- SET_FARVAR(op_seg, op_far->count, dop.count);
-
- return status;
-}
-
-// Execute a "disk_op_s" request by jumping to the extra 16bit stack.
-int
-send_disk_op(struct disk_op_s *op)
-{
- ASSERT16();
- if (! CONFIG_DRIVES)
- return -1;
-
- return stack_hop(__send_disk_op, op, GET_SEG(SS));
-}
diff --git a/src/block.h b/src/block.h
index a5f38c4..0f15ff9 100644
--- a/src/block.h
+++ b/src/block.h
@@ -115,7 +115,6 @@ int fill_edd(struct segoff_s edd, struct drive_s *drive_gf);
void block_setup(void);
int default_process_op(struct disk_op_s *op);
int process_op(struct disk_op_s *op);
-int send_disk_op(struct disk_op_s *op);
int create_bounce_buf(void);
#endif // block.h
diff --git a/src/disk.c b/src/disk.c
index 3854d00..bcd6a09 100644
--- a/src/disk.c
+++ b/src/disk.c
@@ -87,6 +87,38 @@ getLCHS(struct drive_s *drive_gf)
return res;
}
+// Execute a "disk_op_s" request - this runs on the extra stack.
+static int
+__send_disk_op(struct disk_op_s *op_far, u16 op_seg)
+{
+ struct disk_op_s dop;
+ memcpy_far(GET_SEG(SS), &dop
+ , op_seg, op_far
+ , sizeof(dop));
+
+ dprintf(DEBUG_HDL_13, "disk_op d=%p lba=%d buf=%p count=%d cmd=%d\n"
+ , dop.drive_gf, (u32)dop.lba, dop.buf_fl
+ , dop.count, dop.command);
+
+ int status = process_op(&dop);
+
+ // Update count with total sectors transferred.
+ SET_FARVAR(op_seg, op_far->count, dop.count);
+
+ return status;
+}
+
+// Execute a "disk_op_s" request by jumping to the extra 16bit stack.
+static int
+send_disk_op(struct disk_op_s *op)
+{
+ ASSERT16();
+ if (! CONFIG_DRIVES)
+ return -1;
+
+ return stack_hop(__send_disk_op, op, GET_SEG(SS));
+}
+
// Perform read/write/verify using old-style chs accesses
static void noinline
basic_access(struct bregs *regs, struct drive_s *drive_gf, u16 command)
--
2.5.5