atapi.c (3b35d4542c8537a9269f6372df531ced6c960084) atapi.c (a9262f551eba44d4d0f9e396d7124c059a93e204)
1/*
2 * QEMU ATAPI Emulation
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 * Copyright (c) 2006 Openedhand Ltd.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal

--- 84 unchanged lines hidden (view full) ---

93 block_acct_start(blk_get_stats(s->blk), &s->acct,
94 ATAPI_SECTOR_SIZE, BLOCK_ACCT_READ);
95
96 trace_cd_read_sector_sync(s->lba);
97
98 switch (s->cd_sector_size) {
99 case 2048:
100 ret = blk_pread(s->blk, (int64_t)s->lba << ATAPI_SECTOR_BITS,
1/*
2 * QEMU ATAPI Emulation
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 * Copyright (c) 2006 Openedhand Ltd.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal

--- 84 unchanged lines hidden (view full) ---

93 block_acct_start(blk_get_stats(s->blk), &s->acct,
94 ATAPI_SECTOR_SIZE, BLOCK_ACCT_READ);
95
96 trace_cd_read_sector_sync(s->lba);
97
98 switch (s->cd_sector_size) {
99 case 2048:
100 ret = blk_pread(s->blk, (int64_t)s->lba << ATAPI_SECTOR_BITS,
101 s->io_buffer, ATAPI_SECTOR_SIZE, 0);
101 ATAPI_SECTOR_SIZE, s->io_buffer, 0);
102 break;
103 case 2352:
104 ret = blk_pread(s->blk, (int64_t)s->lba << ATAPI_SECTOR_BITS,
102 break;
103 case 2352:
104 ret = blk_pread(s->blk, (int64_t)s->lba << ATAPI_SECTOR_BITS,
105 s->io_buffer + 16, ATAPI_SECTOR_SIZE, 0);
105 ATAPI_SECTOR_SIZE, s->io_buffer + 16, 0);
106 if (ret >= 0) {
107 cd_data_to_raw(s->io_buffer, s->lba);
108 }
109 break;
110 default:
111 block_acct_invalid(blk_get_stats(s->blk), BLOCK_ACCT_READ);
112 return -EIO;
113 }

--- 1264 unchanged lines hidden ---
106 if (ret >= 0) {
107 cd_data_to_raw(s->io_buffer, s->lba);
108 }
109 break;
110 default:
111 block_acct_invalid(blk_get_stats(s->blk), BLOCK_ACCT_READ);
112 return -EIO;
113 }

--- 1264 unchanged lines hidden ---