diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2011-08-04 19:36:27 +0200 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2011-08-06 13:57:52 -0400 |
commit | d7a7cf3a437faa6d56d5dbb060480601ef90799e (patch) | |
tree | fc0eade1bde294431ebc44887a7dd4d69359bc2d /src/cdrom.c | |
parent | 32f03876f4528cc74fde2624e2b5a1c756929453 (diff) | |
download | seabios-d7a7cf3a437faa6d56d5dbb060480601ef90799e.tar.gz |
ahci/cdrom: shared bounce buffer
This patch creates a common bounce buffer in block.c which
is shared by the cdrom and ahci drivers.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'src/cdrom.c')
-rw-r--r-- | src/cdrom.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/cdrom.c b/src/cdrom.c index 3769dfa6..6351fec0 100644 --- a/src/cdrom.c +++ b/src/cdrom.c @@ -18,7 +18,6 @@ ****************************************************************/ struct drive_s *cdemu_drive_gf VAR16VISIBLE; -u8 *cdemu_buf_fl VAR16VISIBLE; static int cdemu_read(struct disk_op_s *op) @@ -33,7 +32,7 @@ cdemu_read(struct disk_op_s *op) int count = op->count; op->count = 0; - u8 *cdbuf_fl = GET_GLOBAL(cdemu_buf_fl); + u8 *cdbuf_fl = GET_GLOBAL(bounce_buf_fl); if (op->lba & 3) { // Partial read of first block. @@ -111,17 +110,16 @@ cdemu_setup(void) return; if (!CDCount) return; + if (bounce_buf_init() < 0) + return; struct drive_s *drive_g = malloc_fseg(sizeof(*drive_g)); - u8 *buf = malloc_low(CDROM_SECTOR_SIZE); - if (!drive_g || !buf) { + if (!drive_g) { warn_noalloc(); free(drive_g); - free(buf); return; } cdemu_drive_gf = drive_g; - cdemu_buf_fl = buf; memset(drive_g, 0, sizeof(*drive_g)); drive_g->type = DTYPE_CDEMU; drive_g->blksize = DISK_SECTOR_SIZE; |