17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * lib/krb5/rcache/rc_io.h
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * This file of the Kerberos V5 software is derived from public-domain code
57c478bd9Sstevel@tonic-gate  * contributed by Daniel J. Bernstein, <brnstnd@acf10.nyu.edu>.
67c478bd9Sstevel@tonic-gate  *
77c478bd9Sstevel@tonic-gate  */
87c478bd9Sstevel@tonic-gate 
97c478bd9Sstevel@tonic-gate /*
107c478bd9Sstevel@tonic-gate  * Declarations for the I/O sub-package of the replay cache
117c478bd9Sstevel@tonic-gate  */
127c478bd9Sstevel@tonic-gate 
137c478bd9Sstevel@tonic-gate #ifndef KRB5_RC_IO_H
147c478bd9Sstevel@tonic-gate #define KRB5_RC_IO_H
157c478bd9Sstevel@tonic-gate 
167c478bd9Sstevel@tonic-gate typedef struct krb5_rc_iostuff
177c478bd9Sstevel@tonic-gate  {
187c478bd9Sstevel@tonic-gate   int fd;
197c478bd9Sstevel@tonic-gate #ifdef MSDOS_FILESYSTEM
207c478bd9Sstevel@tonic-gate   long mark;
217c478bd9Sstevel@tonic-gate #else
22505d05c7Sgtb   off_t mark; /* on newer systems, should be pos_t */
237c478bd9Sstevel@tonic-gate #endif
247c478bd9Sstevel@tonic-gate   char *fn;
257c478bd9Sstevel@tonic-gate  }
267c478bd9Sstevel@tonic-gate krb5_rc_iostuff;
277c478bd9Sstevel@tonic-gate 
287c478bd9Sstevel@tonic-gate /* first argument is always iostuff for result file */
297c478bd9Sstevel@tonic-gate 
30*1da57d55SToomas Soome krb5_error_code krb5_rc_io_creat
31505d05c7Sgtb 	(krb5_context,
327c478bd9Sstevel@tonic-gate 		   krb5_rc_iostuff *,
33505d05c7Sgtb 		   char **);
34*1da57d55SToomas Soome krb5_error_code krb5_rc_io_open
35505d05c7Sgtb 	(krb5_context,
367c478bd9Sstevel@tonic-gate 		   krb5_rc_iostuff *,
37505d05c7Sgtb 		   char *);
38*1da57d55SToomas Soome krb5_error_code krb5_rc_io_move
39505d05c7Sgtb 	(krb5_context,
407c478bd9Sstevel@tonic-gate 		   krb5_rc_iostuff *,
41505d05c7Sgtb 		   krb5_rc_iostuff *);
42*1da57d55SToomas Soome krb5_error_code krb5_rc_io_write
43505d05c7Sgtb 	(krb5_context,
447c478bd9Sstevel@tonic-gate 		   krb5_rc_iostuff *,
457c478bd9Sstevel@tonic-gate 		   krb5_pointer,
46505d05c7Sgtb 		   unsigned int);
47*1da57d55SToomas Soome krb5_error_code krb5_rc_io_read
48505d05c7Sgtb 	(krb5_context,
497c478bd9Sstevel@tonic-gate 		   krb5_rc_iostuff *,
507c478bd9Sstevel@tonic-gate 		   krb5_pointer,
51505d05c7Sgtb 		   unsigned int);
52*1da57d55SToomas Soome krb5_error_code krb5_rc_io_close
53505d05c7Sgtb 	(krb5_context,
54505d05c7Sgtb 		   krb5_rc_iostuff *);
55*1da57d55SToomas Soome krb5_error_code krb5_rc_io_destroy
56505d05c7Sgtb 	(krb5_context,
57505d05c7Sgtb 		   krb5_rc_iostuff *);
58*1da57d55SToomas Soome krb5_error_code krb5_rc_io_mark
59505d05c7Sgtb 	(krb5_context,
60505d05c7Sgtb 		   krb5_rc_iostuff *);
61*1da57d55SToomas Soome krb5_error_code krb5_rc_io_unmark
62505d05c7Sgtb 	(krb5_context,
63505d05c7Sgtb 		   krb5_rc_iostuff *);
647c478bd9Sstevel@tonic-gate krb5_error_code krb5_rc_io_sync
65505d05c7Sgtb 	(krb5_context,
66505d05c7Sgtb 		   krb5_rc_iostuff *);
677c478bd9Sstevel@tonic-gate long krb5_rc_io_size
68505d05c7Sgtb 	(krb5_context,
69505d05c7Sgtb 		   krb5_rc_iostuff *);
707c478bd9Sstevel@tonic-gate #endif
71