X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfcrypt.h;h=fddb1ae3ebadfb5bdfbd5b96350001c487e1386a;hb=0f0e095f408d4d867a056dffc9d20d853d761489;hp=fcc75eea79c54a518fb6c5c3379a1b73152ce458;hpb=add1a38544028f7f763b0ccf9ac354e8b45bec23;p=tfcrypt.git diff --git a/tfcrypt.h b/tfcrypt.h index fcc75ee..fddb1ae 100644 --- a/tfcrypt.h +++ b/tfcrypt.h @@ -29,6 +29,9 @@ #ifndef _TFCRYPT_H #define _TFCRYPT_H +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE +#endif #ifndef _BSD_SOURCE #define _BSD_SOURCE #endif @@ -38,6 +41,9 @@ #ifndef _LARGEFILE64_SOURCE #define _LARGEFILE64_SOURCE #endif +#ifndef _FILE_OFFSET_BITS +#define _FILE_OFFSET_BITS 64 +#endif #ifndef _TFCRYPT_VERSION #error Version number may help you to identify missing functionality. @@ -132,18 +138,20 @@ extern tfc_fsize iseek_blocks, iseek, oseek, maxlen; extern tfc_fsize total_processed_src, total_processed_dst; extern tfc_fsize delta_processed; extern tfc_fsize genrandom_nr_bytes, genzero_nr_bytes; +extern tfc_fsize rdpos; +extern tfc_fsize maxkeylen, keyoffset; extern int sfd, kfd, dfd; extern struct stat s_stat; extern size_t blksize, xtsblocks; extern char pwdask[512], pwdagain[512]; extern size_t lio, lrem, ldone, lblock; -extern size_t maxkeylen, ctrsz; +extern size_t ctrsz; extern struct sigaction sigact; extern size_t sksum_turns; extern int do_edcrypt, do_stop, quiet, error_action; extern int counter_opt, mackey_opt, do_mac, do_outfmt, rawkey; extern int idx, write_flags; -extern tfc_yesno catch_all_errors, password, overwrite_source, do_fsync, do_pad, do_tfcrypt1; +extern tfc_yesno catch_all_errors, ignore_seek_errors, password, overwrite_source, do_fsync, do_pad, do_tfcrypt1; extern tfc_yesno do_preserve_time, do_stats_in_gibs, do_statline_dynamic, do_less_stats; extern tfc_yesno no_repeat, do_full_hexdump, verbose, statline_was_shown; extern char *srcfname, *dstfname, *do_mac_file, *counter_file, *sksum_hashlist_file; @@ -153,6 +161,9 @@ extern tfc_useconds status_timer, bench_timer; extern tfc_useconds current_time, delta_time; extern struct getpasswd_state getps; +size_t xread(int fd, void *data, size_t szdata); +size_t xwrite(int fd, const void *data, size_t szdata); + void xerror(tfc_yesno noexit, tfc_yesno noerrno, tfc_yesno nostats, const char *fmt, ...); void xexit(int status); void usage(void); @@ -174,6 +185,7 @@ void xclose(int fd); const char *tfc_modename(int mode); void tfc_getcurtime(tfc_useconds *tx); tfc_fsize tfc_fdsize(int fd); +tfc_fsize tfc_fdgetpos(int fd); tfc_fsize tfc_fnamesize(char *fname, tfc_yesno noexit); tfc_fsize tfc_modifysize(tfc_fsize szmodify, const char *szspec); void fcopy_matime(int fd, const struct stat *st); @@ -189,7 +201,7 @@ void change_status_timer(int signal); void setup_next_alarm(tfc_useconds useconds); void skein(void *hash, size_t bits, const void *key, const void *data, size_t szdata); void tf_key_tweak_compat(void *key); -tfc_yesno skeinfd(void *hash, size_t bits, const void *key, int fd, tfc_fsize readto); +tfc_yesno skeinfd(void *hash, size_t bits, const void *key, int fd, tfc_fsize offset, tfc_fsize readto); void gen_write_bytes(const char *foutname, tfc_fsize offset, tfc_fsize nrbytes); void do_edbase64(char **fargv); @@ -198,7 +210,7 @@ void do_benchmark(tfc_useconds useconds, double dseconds); enum { NO, YES }; -enum { TFC_ERRACT_EXIT, TFC_ERRACT_CONT, TFC_ERRACT_SYNC }; +enum { TFC_ERRACT_EXIT, TFC_ERRACT_CONT, TFC_ERRACT_SYNC, TFC_ERRACT_LSYNC }; enum { TFC_STOP_BEGAN = 1, TFC_STOP_FULL }; enum { TFC_DO_PLAIN, TFC_DO_ENCRYPT, TFC_DO_DECRYPT }; enum { TFC_MAC_DROP = -1, TFC_MAC_SIGN = 1, TFC_MAC_VRFY, TFC_MAC_JUST_VRFY };