Subversion Repositories freemyipod

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
339 theseven 1
//
2
//
3
//    Copyright 2010 TheSeven
4
//
5
//
427 farthen 6
//    This file is part of emCORE.
339 theseven 7
//
427 farthen 8
//    emCORE is free software: you can redistribute it and/or
339 theseven 9
//    modify it under the terms of the GNU General Public License as
10
//    published by the Free Software Foundation, either version 2 of the
11
//    License, or (at your option) any later version.
12
//
427 farthen 13
//    emCORE is distributed in the hope that it will be useful,
339 theseven 14
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
//    See the GNU General Public License for more details.
17
//
18
//    You should have received a copy of the GNU General Public License along
427 farthen 19
//    with emCORE.  If not, see <http://www.gnu.org/licenses/>.
339 theseven 20
//
21
//
22
 
23
 
24
#ifndef __STORAGE_ATA_TARGET_H__
25
#define __STORAGE_ATA_TARGET_H__
26
 
613 theseven 27
#include "../global.h"
339 theseven 28
 
29
 
613 theseven 30
struct ata_target_driverinfo
31
{
620 theseven 32
    void (*srst_after_error)(bool enable);
33
    void (*set_retries)(int retries);
613 theseven 34
    int (*bbt_translate)(uint64_t sector, uint32_t count, uint64_t* phys, uint32_t* physcount);
35
    void (*bbt_reload)();
36
    void (*bbt_disable)();
37
};
38
 
39
 
339 theseven 40
extern uint16_t ata_identify_data[0x100];
41
extern uint64_t ata_total_sectors;
601 theseven 42
extern struct mutex ata_mutex;
340 theseven 43
 
620 theseven 44
void ata_set_retries(int retries);
45
void ata_srst_after_error(bool enable);
46
 
340 theseven 47
#ifdef ATA_HAVE_BBT
430 theseven 48
extern uint16_t (*ata_bbt)[0x20];
339 theseven 49
extern uint64_t ata_virtual_sectors;
50
 
613 theseven 51
int ata_bbt_translate(uint64_t sector, uint32_t count, uint64_t* phys, uint32_t* physcount);
52
void ata_bbt_reload();
53
void ata_bbt_disable();
339 theseven 54
int ata_rw_sectors_internal(uint64_t sector, uint32_t count, void* buffer, bool write);
340 theseven 55
#endif
339 theseven 56
 
57
 
58
#endif