mirror of
https://github.com/peteratebs/rtfsprorelease.git
synced 2025-06-18 16:55:34 -04:00
104 lines
5.7 KiB
C
104 lines
5.7 KiB
C
#ifndef __RTFSEXFATPROTOS__
|
|
#define __RTFSEXFATPROTOS__ 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if (DEBUG_EXFAT_PROBE_ROOT)
|
|
void probePrintDirectoryBlock(DDRIVE *pdr, byte *b, dword cluster, dword sector, int nsectors);
|
|
void probePrintBootRegion(DDRIVE *pdr);
|
|
#endif
|
|
|
|
void pcexfat_filenameobj_destroy(EXFATFILEPARSEOBJ *pfilenameobj);
|
|
BOOLEAN pcexfat_filenameobj_init(DROBJ *pobj, byte *filename, EXFATFILEPARSEOBJ *pfilenameobj, int use_charset);
|
|
BOOLEAN pcexfat_findinbyfilenameobj(DROBJ *pobj, EXFATFILEPARSEOBJ *pfilenameobj, BOOLEAN oneshot, int action);
|
|
BOOLEAN exfatop_remove_free_region(DDRIVE *pdr, dword cluster, dword ncontig);
|
|
BOOLEAN exfatop_add_free_region(DDRIVE *pdr, dword cluster, dword ncontig, BOOLEAN do_erase);
|
|
|
|
word pcexfat_checksum_util(word Checksum, BOOLEAN isprimary, byte *string);
|
|
BOOLEAN pcexfat_link_file_chain(DDRIVE *pdr, REGION_FRAGMENT *pf);
|
|
BOOLEAN pcexfat_grow_directory(DROBJ *pobj);
|
|
REGION_FRAGMENT *pcexfat_load_root_fragments(DDRIVE *pdrive);
|
|
BOOLEAN _pcexfat_bfilio_reduce_size(PC_FILE *pefile, ddword new_size);
|
|
|
|
DROBJ *pcexfat_fndnode(DDRIVE *pdrive, byte *path, int use_charset);
|
|
void pcexfat_initialize_root_finode(DDRIVE *pdrive, FINODE *pfi);
|
|
|
|
|
|
BOOLEAN pcexfat_multi_dir_get(DROBJ *pobj, BLKBUFF **pscan_buff, byte **pscan_data, byte *puser_buffer, dword *n_blocks, BOOLEAN do_increment);
|
|
|
|
FATBUFF *pc_find_fat_blk_primary(FATBUFFCNTXT *pfatbuffcntxt, dword fat_sector_offset);
|
|
void pc_set_fat_blk_primary(FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
void pc_clear_fat_blk_primary(FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
FATBUFF *pc_find_fat_blk_secondary (FATBUFFCNTXT *pfatbuffcntxt, dword fat_sector_offset);
|
|
void pc_clear_fat_blk_secondary(FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
void pc_set_fat_blk_secondary (FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
void pc_uncommit_fat_blk_queue(FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
void pc_commit_fat_blk_queue(FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
void pc_free_fat_blk(FATBUFFCNTXT *pfatbuffcntxt, FATBUFF *pblk);
|
|
FATBUFF *pc_realloc_fat_blk(DDRIVE *pdrive, FATBUFFCNTXT *pfatbuffcntxt, dword fat_sector_offset);
|
|
|
|
BOOLEAN pc_write_bam_block_buffer_page(DDRIVE *pdrive, FATBUFF *pblk);
|
|
void set_bam_dirty(DDRIVE *pdr);
|
|
void clear_bam_dirty(DDRIVE *pdr);
|
|
void pc_free_all_bam_buffers(DDRIVE *pdr);
|
|
|
|
BOOLEAN pcexfat_insert_inode(DROBJ *pobj , DROBJ *pmom, byte _attr, FINODE *infinode, dword initcluster, byte *filename, byte secondaryflags, dword sizehi, dword sizelow, int use_charset);
|
|
|
|
BOOLEAN pcexfat_checkerased(byte *pi);
|
|
void pcexfat_addtoseglist(SEGDESC *s, dword my_block, int my_index);
|
|
|
|
dword preboot_pcclnext(DDRIVE *pdr, dword cluster, int *error);
|
|
void pcexfat_upcase_unicode_string(DDRIVE *pdr, word *to, word *from,int maxcount);
|
|
|
|
BOOLEAN exfatop_read_upCaseTable(DDRIVE *pdr);
|
|
byte *pc_data_in_ubuff(DDRIVE *pdr, dword blockno,byte *puser_buffer, dword user_buffer_first_block,dword user_buffer_n_blocks);
|
|
|
|
|
|
BOOLEAN pcexfat_rmnode(DROBJ *pobj);
|
|
BOOLEAN pcexfat_mvnode(DROBJ *old_parent_obj,DROBJ *old_obj,DROBJ *new_parent_obj, byte *filename,int use_charset);
|
|
BOOLEAN pcexfat_set_volume(DDRIVE *pdrive, byte *volume_label,int use_charset);
|
|
BOOLEAN pcexfat_get_volume(DDRIVE *pdrive, byte *volume_label,int use_charset);
|
|
BOOLEAN pcexfat_get_cwd(DDRIVE *pdrive, byte *path, int use_charset);
|
|
BOOLEAN pcexfat_set_cwd(DDRIVE *pdrive, byte *name, int use_charset);
|
|
BOOLEAN pcexfat_update_by_finode(FINODE *pfi, int entry_index, BOOLEAN set_archive, int set_date_mask, BOOLEAN do_delete);
|
|
void pcexfat_update_finode_datestamp(FINODE *pfi, BOOLEAN set_archive, int set_date_mask);
|
|
BOOLEAN pcexfat_flush(DDRIVE *pdrive);
|
|
dword exfatop_find_contiguous_free_clusters(DDRIVE *pdr, dword startpt, dword endpt, dword min_clusters, dword max_clusters, dword *p_contig, int *is_error);
|
|
BOOLEAN rtexfat_i_dskopen(DDRIVE *pdr);
|
|
void pc_release_exfat_buffers(DDRIVE *pdr);
|
|
BOOLEAN pcexfat_findin( DROBJ *pobj, byte *filename, int action, BOOLEAN oneshot, int use_charset);
|
|
byte *pcexfat_seglist2text(DDRIVE * pdrive, SEGDESC *s, byte *lfn, int use_charset);
|
|
dword exFatfatop_getdir_frag(DROBJ *pobj, dword startpt, dword *pnext_cluster, dword n_clusters, int *end_of_chain);
|
|
dword exFatfatop_getfile_frag(FINODE *pfi, dword startpt, dword *pnext_cluster, dword n_clusters, int *end_of_chain);
|
|
BOOLEAN pcexfat_gread(DSTAT *statobj, int blocks_to_read, byte *buffer, int *blocks_read);
|
|
BOOLEAN pcexfat_parse_path(DDRIVE *pdrive, byte *outpath, byte *inpath, int use_charset);
|
|
BOOLEAN rtexfat_gblk0(DDRIVE *pdr, struct pcblk0 *pbl0b, byte *b);
|
|
|
|
EXFATDDRIVE *pcexfat_pdrtoexfat(DDRIVE *pdr);
|
|
#define PDRTOEXFSTR(X) pcexfat_pdrtoexfat(X)
|
|
|
|
dword pcexfat_getexNOFATCHAINfirstcluster(DROBJ *pobj);
|
|
dword pcexfat_getexNOFATCHAINlastcluster(DROBJ *pobj);
|
|
BOOLEAN pcexfat_expand_nochain(FINODE *pefinode);
|
|
|
|
int pcexfat_bfilio_read(PC_FILE *pefile, byte *in_buff, int count);
|
|
BOOLEAN pcexfat_bpefile_ulseek(PC_FILE *pefile, ddword offset, ddword *pnew_offset, int origin);
|
|
|
|
BOOLEAN pcexfat_bfilio_write(PC_FILE *pefile, byte *in_buff, dword n_bytes, dword *n_written);
|
|
BOOLEAN pcexfat_bfilio_chsize(PC_FILE *pefile, ddword dwnew_size);
|
|
BOOLEAN _pcexfat_bfilio_flush(PC_FILE *pefile);
|
|
BOOLEAN pcexfat_bfilio_load_all_fragments(FINODE *pefinode);
|
|
BOOLEAN pc_exfat_check_disk(byte *driveid,DDRIVE *pdr,CHKDISK_STATS *pchkstat);
|
|
#define pcexfat_set_volume_dirty(A) /* Implement to set and clear dirty bytes in bpb */
|
|
#define pcexfat_clear_volume_dirty(A)
|
|
void pcexfat_getsysdate( DATESTR *pcrdate, byte *putcoffset, byte *pmsincrement);
|
|
DATESTR dwordToDateStr(dword indword);
|
|
|
|
dword pc_byte2clmod64(DDRIVE *pdr, dword nbytes_hi, dword nbytes_lo);
|
|
ddword pc_fragment_size_64(DDRIVE *pdr,REGION_FRAGMENT *pfragment);
|
|
|
|
#endif /* __RTFSEXFATPROTOS__ */
|