1
2/* : : generated by proto : : */
3/***********************************************************************
4*                                                                      *
5*               This software is part of the ast package               *
6*          Copyright (c) 1985-2010 AT&T Intellectual Property          *
7*                      and is licensed under the                       *
8*                  Common Public License, Version 1.0                  *
9*                    by AT&T Intellectual Property                     *
10*                                                                      *
11*                A copy of the License is available at                 *
12*            http://www.opensource.org/licenses/cpl1.0.txt             *
13*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
14*                                                                      *
15*              Information and Software Systems Research               *
16*                            AT&T Research                             *
17*                           Florham Park NJ                            *
18*                                                                      *
19*                 Glenn Fowler <gsf@research.att.com>                  *
20*                  David Korn <dgk@research.att.com>                   *
21*                   Phong Vo <kpv@research.att.com>                    *
22*                                                                      *
23***********************************************************************/
24
25/*
26 * AT&T Research
27 *
28 * sfio discipline interface definitions
29 */
30
31#ifndef _SFDISC_H
32#if !defined(__PROTO__)
33#include <prototyped.h>
34#endif
35#if !defined(__LINKAGE__)
36#define __LINKAGE__		/* 2004-08-11 transition */
37#endif
38
39#define _SFDISC_H
40
41#include <ast.h>
42
43#define SFDCEVENT(a,b,n)	((((a)-'A'+1)<<11)^(((b)-'A'+1)<<6)^(n))
44
45#if _BLD_ast && defined(__EXPORT__)
46#undef __MANGLE__
47#define __MANGLE__ __LINKAGE__		__EXPORT__
48#endif
49
50#define SFSK_DISCARD		SFDCEVENT('S','K',1)
51
52/*
53 * %(...) printf support
54 */
55
56typedef int (*Sf_key_lookup_t) __PROTO__((__V_*, Sffmt_t*, const char*, char**, Sflong_t*));
57typedef char* (*Sf_key_convert_t) __PROTO__((__V_*, Sffmt_t*, const char*, char*, Sflong_t));
58
59extern __MANGLE__ int		sfkeyprintf __PROTO__((Sfio_t*, __V_*, const char*, Sf_key_lookup_t, Sf_key_convert_t));
60#define sfkeyprintf	sfkeyprintf_20000308 /* Sffmt_t* callback args */
61extern __MANGLE__ int		sfkeyprintf __PROTO__((Sfio_t*, __V_*, const char*, Sf_key_lookup_t, Sf_key_convert_t));
62
63/*
64 * pure sfio read and/or write disciplines
65 */
66
67extern __MANGLE__ int		sfdcdio __PROTO__((Sfio_t*, size_t));
68extern __MANGLE__ int		sfdcdos __PROTO__((Sfio_t*));
69extern __MANGLE__ int		sfdcfilter __PROTO__((Sfio_t*, const char*));
70extern __MANGLE__ int		sfdcmore __PROTO__((Sfio_t*, const char*, int, int));
71extern __MANGLE__ int		sfdcprefix __PROTO__((Sfio_t*, const char*));
72extern __MANGLE__ int		sfdcseekable __PROTO__((Sfio_t*));
73extern __MANGLE__ int		sfdcslow __PROTO__((Sfio_t*));
74extern __MANGLE__ int		sfdctee __PROTO__((Sfio_t*, Sfio_t*));
75extern __MANGLE__ int		sfdcunion __PROTO__((Sfio_t*, Sfio_t**, int));
76
77extern __MANGLE__ Sfio_t*		sfdcsubstream __PROTO__((Sfio_t*, Sfio_t*, Sfoff_t, Sfoff_t));
78
79#undef __MANGLE__
80#define __MANGLE__ __LINKAGE__
81
82#endif
83