LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
Macros | Functions | Variables
ata.c File Reference
#include <stdint.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <time/time.h>
#include <ppc/cache.h>
#include <malloc.h>
#include "ata.h"
#include <debug.h>
#include <byteswap.h>
Include dependency graph for ata.c:

Go to the source code of this file.

Macros

#define MAX(a, b)   (((a)>(b))?(a):(b))
 
#define MIN(a, b)   (((a)<(b))?(a):(b))
 
#define USE_DMA
 
#define SK(sense)   ((sense>>16) & 0xFF)
 
#define ASC(sense)   ((sense>>8) & 0xFF)
 
#define ASCQ(sense)   ((sense>>0) & 0xFF)
 

Functions

 __attribute__ ((unused))
 
int xenon_atapi_request_sense (struct xenon_ata_device *dev)
 
void xenon_atapi_set_modeb (void)
 
int xenon_atapi_get_dvd_key_tsh943a (unsigned char *dvdkey)
 
int xenon_atapi_set_dvd_key (unsigned char *dvdkey)
 
int xenon_ata_init1 (struct xenon_ata_device *dev, uint32_t ioaddress, uint32_t ioaddress2)
 
int xenon_ata_init ()
 
int xenon_atapi_init ()
 

Variables

struct xenon_ata_device ata
 
struct xenon_ata_device atapi
 
DISC_INTERFACE xenon_ata_ops
 
DISC_INTERFACE xenon_atapi_ops
 

Macro Definition Documentation

◆ ASC

#define ASC (   sense)    ((sense>>8) & 0xFF)

Definition at line 421 of file ata.c.

◆ ASCQ

#define ASCQ (   sense)    ((sense>>0) & 0xFF)

Definition at line 422 of file ata.c.

◆ MAX

#define MAX (   a,
 
)    (((a)>(b))?(a):(b))

Definition at line 34 of file ata.c.

◆ MIN

#define MIN (   a,
 
)    (((a)<(b))?(a):(b))

Definition at line 35 of file ata.c.

◆ SK

#define SK (   sense)    ((sense>>16) & 0xFF)

Definition at line 420 of file ata.c.

◆ USE_DMA

#define USE_DMA

Definition at line 40 of file ata.c.

Function Documentation

◆ __attribute__()

__attribute__ ( (unused)  )

Definition at line 384 of file ata.c.

◆ xenon_ata_init()

int xenon_ata_init ( )

Definition at line 779 of file ata.c.

◆ xenon_ata_init1()

int xenon_ata_init1 ( struct xenon_ata_device dev,
uint32_t  ioaddress,
uint32_t  ioaddress2 
)

Definition at line 663 of file ata.c.

◆ xenon_atapi_get_dvd_key_tsh943a()

int xenon_atapi_get_dvd_key_tsh943a ( unsigned char *  dvdkey)

Definition at line 482 of file ata.c.

◆ xenon_atapi_init()

int xenon_atapi_init ( )

Definition at line 795 of file ata.c.

◆ xenon_atapi_request_sense()

int xenon_atapi_request_sense ( struct xenon_ata_device dev)

Definition at line 425 of file ata.c.

◆ xenon_atapi_set_dvd_key()

int xenon_atapi_set_dvd_key ( unsigned char *  dvdkey)

Definition at line 505 of file ata.c.

◆ xenon_atapi_set_modeb()

void xenon_atapi_set_modeb ( void  )

Definition at line 465 of file ata.c.

Variable Documentation

◆ ata

struct xenon_ata_device ata

Definition at line 42 of file ata.c.

◆ atapi

struct xenon_ata_device atapi

Definition at line 43 of file ata.c.

◆ xenon_ata_ops

DISC_INTERFACE xenon_ata_ops
Initial value:
= {
.sectors = (FN_MEDIUM_DEVSECTORS) & ata_sectors,
.readSectors = (FN_MEDIUM_READSECTORS) & ata_readsectors,
.writeSectors = (FN_MEDIUM_WRITESECTORS) & ata_writesectors,
.clearStatus = (FN_MEDIUM_CLEARSTATUS) & ata_clearstatus,
.shutdown = (FN_MEDIUM_SHUTDOWN) & ata_shutdown,
.isInserted = (FN_MEDIUM_ISINSERTED) & ata_inserted,
.startup = (FN_MEDIUM_STARTUP) & ata_startup,
.ioType = FEATURE_XENON_ATA,
}
#define FEATURE_XENON_ATA
Definition: disc_io.h:41
bool(* FN_MEDIUM_STARTUP)(void)
Definition: disc_io.h:47
bool(* FN_MEDIUM_CLEARSTATUS)(void)
Definition: disc_io.h:51
#define FEATURE_MEDIUM_CANREAD
Definition: disc_io.h:39
s32(* FN_MEDIUM_DEVSECTORS)(void)
Definition: disc_io.h:53
bool(* FN_MEDIUM_SHUTDOWN)(void)
Definition: disc_io.h:52
bool(* FN_MEDIUM_READSECTORS)(sec_t sector, sec_t numSectors, void *buffer)
Definition: disc_io.h:49
bool(* FN_MEDIUM_WRITESECTORS)(sec_t sector, sec_t numSectors, const void *buffer)
Definition: disc_io.h:50
#define FEATURE_MEDIUM_CANWRITE
Definition: disc_io.h:40
bool(* FN_MEDIUM_ISINSERTED)(void)
Definition: disc_io.h:48
u8 features
Definition: xenos_edid.h:15

Definition at line 755 of file ata.c.

◆ xenon_atapi_ops

DISC_INTERFACE xenon_atapi_ops
Initial value:
= {
.sectors = (FN_MEDIUM_DEVSECTORS) & atapi_sectors,
.readSectors = (FN_MEDIUM_READSECTORS) & atapi_readsectors,
.clearStatus = (FN_MEDIUM_CLEARSTATUS) & ata_clearstatus,
.shutdown = (FN_MEDIUM_SHUTDOWN) & ata_shutdown,
.isInserted = (FN_MEDIUM_ISINSERTED) & atapi_inserted,
.startup = (FN_MEDIUM_STARTUP) & ata_startup,
}
#define FEATURE_XENON_ATAPI
Definition: disc_io.h:42

Definition at line 767 of file ata.c.