xref: /freebsd/crypto/heimdal/lib/krb5/store-int.h (revision 6a068746777241722b2b32c5d0bc443a2a64d80b)
18373020dSJacques Vidrine /*
2*ae771770SStanislav Sedov  * Copyright (c) 2002 Kungliga Tekniska Högskolan
38373020dSJacques Vidrine  * (Royal Institute of Technology, Stockholm, Sweden).
48373020dSJacques Vidrine  * All rights reserved.
58373020dSJacques Vidrine  *
68373020dSJacques Vidrine  * Redistribution and use in source and binary forms, with or without
78373020dSJacques Vidrine  * modification, are permitted provided that the following conditions
88373020dSJacques Vidrine  * are met:
98373020dSJacques Vidrine  *
108373020dSJacques Vidrine  * 1. Redistributions of source code must retain the above copyright
118373020dSJacques Vidrine  *    notice, this list of conditions and the following disclaimer.
128373020dSJacques Vidrine  *
138373020dSJacques Vidrine  * 2. Redistributions in binary form must reproduce the above copyright
148373020dSJacques Vidrine  *    notice, this list of conditions and the following disclaimer in the
158373020dSJacques Vidrine  *    documentation and/or other materials provided with the distribution.
168373020dSJacques Vidrine  *
178373020dSJacques Vidrine  * 3. Neither the name of the Institute nor the names of its contributors
188373020dSJacques Vidrine  *    may be used to endorse or promote products derived from this software
198373020dSJacques Vidrine  *    without specific prior written permission.
208373020dSJacques Vidrine  *
218373020dSJacques Vidrine  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
228373020dSJacques Vidrine  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
238373020dSJacques Vidrine  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
248373020dSJacques Vidrine  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
258373020dSJacques Vidrine  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
268373020dSJacques Vidrine  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
278373020dSJacques Vidrine  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
288373020dSJacques Vidrine  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
298373020dSJacques Vidrine  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
308373020dSJacques Vidrine  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
318373020dSJacques Vidrine  * SUCH DAMAGE.
328373020dSJacques Vidrine  */
338373020dSJacques Vidrine 
348373020dSJacques Vidrine #ifndef __store_int_h__
358373020dSJacques Vidrine #define __store_int_h__
368373020dSJacques Vidrine 
378373020dSJacques Vidrine struct krb5_storage_data {
388373020dSJacques Vidrine     void *data;
398373020dSJacques Vidrine     ssize_t (*fetch)(struct krb5_storage_data*, void*, size_t);
408373020dSJacques Vidrine     ssize_t (*store)(struct krb5_storage_data*, const void*, size_t);
418373020dSJacques Vidrine     off_t (*seek)(struct krb5_storage_data*, off_t, int);
42*ae771770SStanislav Sedov     int (*trunc)(struct krb5_storage_data*, off_t);
438373020dSJacques Vidrine     void (*free)(struct krb5_storage_data*);
448373020dSJacques Vidrine     krb5_flags flags;
458373020dSJacques Vidrine     int eof_code;
46*ae771770SStanislav Sedov     size_t max_alloc;
478373020dSJacques Vidrine };
488373020dSJacques Vidrine 
498373020dSJacques Vidrine #endif /* __store_int_h__ */
50