X-Git-Url: https://git.jtryba.com/browse/friidump.git/blobdiff_plain/d44030dfa440b1967ec7dcd3ccfe46fb69934486..867172b68a5667caf61a41618a3f812eaad54726:/libfriidump/disc.h?ds=sidebyside diff --git a/libfriidump/disc.h b/libfriidump/disc.h index 345e681..f8af6ea 100644 --- a/libfriidump/disc.h +++ b/libfriidump/disc.h @@ -55,6 +55,25 @@ typedef enum { typedef struct disc_s disc; +/* Always-available evidence for a failed Nintendo seed/cache read. */ +typedef struct { + bool valid; + unsigned int seed_block_index; + u_int32_t sector_start; + u_int32_t sector_end; + int retry; + char stage[48]; + char detail[160]; + int transport_result; + int os_error; + int scsi_status; + int sense_key; + int asc; + int ascq; + int cdb_length; + u_int8_t cdb[12]; +} disc_seed_diagnostic; + /* Functions */ FRIIDUMPLIB_EXPORT disc *disc_new (char *dvd_device, u_int32_t command); @@ -88,6 +107,9 @@ FRIIDUMPLIB_EXPORT char *disc_get_version (disc *d, u_int8_t *v, char **v_s); FRIIDUMPLIB_EXPORT char *disc_get_title (disc *d, char **t_s); FRIIDUMPLIB_EXPORT bool disc_get_update (disc *d); +FRIIDUMPLIB_EXPORT char *disc_get_drive_vendor (disc *d); +FRIIDUMPLIB_EXPORT char *disc_get_drive_product_id (disc *d); +FRIIDUMPLIB_EXPORT char *disc_get_drive_firmware_revision (disc *d); FRIIDUMPLIB_EXPORT char *disc_get_drive_model_string (disc *d); FRIIDUMPLIB_EXPORT char *disc_get_device (disc *d); FRIIDUMPLIB_EXPORT void *disc_get_native_handle (disc *d); @@ -116,7 +138,7 @@ FRIIDUMPLIB_EXPORT int disc_xbox_unlock (disc *d); FRIIDUMPLIB_EXPORT int disc_xbox_read_10 (disc *d, u_int32_t sector, u_int32_t sectors, u_int8_t *buf, size_t bufsize); FRIIDUMPLIB_EXPORT int disc_xbox_read_dvd_structure (disc *d, u_int8_t format, u_int8_t layer, u_int8_t *buf, size_t bufsize); FRIIDUMPLIB_EXPORT int disc_xbox_read_capacity_10 (disc *d, u_int32_t *sectors, u_int32_t *sector_size); -FRIIDUMPLIB_EXPORT int disc_xbox_recovery_kick (disc *d, bool auth_recovery); +FRIIDUMPLIB_EXPORT int disc_xbox_prepare_game_view (disc *d, u_int32_t *sectors, u_int32_t *sector_size); FRIIDUMPLIB_EXPORT int disc_xbox_refresh_volume (disc *d); FRIIDUMPLIB_EXPORT int disc_lock_volume (disc *d); FRIIDUMPLIB_EXPORT int disc_refresh_volume (disc *d); @@ -124,6 +146,7 @@ FRIIDUMPLIB_EXPORT int disc_xbox_lock_volume (disc *d); FRIIDUMPLIB_EXPORT int disc_xbox_media_cycle (disc *d); FRIIDUMPLIB_EXPORT int disc_xbox_wait_ready (disc *d, unsigned int timeout_ms); FRIIDUMPLIB_EXPORT int disc_media_preflight (disc *d, unsigned int timeout_ms, int *sense_key, int *asc, int *ascq); +FRIIDUMPLIB_EXPORT bool disc_get_seed_diagnostic (disc *d, disc_seed_diagnostic *out); #ifdef __cplusplus }