Lines Matching refs:disc
34 Sfdisc_t disc; /* sfio discipline */
42 static ssize_t streamio(Sfio_t* f, Void_t* buf, size_t n, Sfdisc_t* disc, int type)
44 static ssize_t streamio(f, buf, n, disc, type)
48 Sfdisc_t* disc;
56 su = (Subfile_t*)disc;
65 parent = sfsk(f,(Sfoff_t)0,SEEK_CUR,disc);
69 if(sfsk(f,here,SEEK_SET,disc) != here)
73 io = sfwr(f,buf,n,disc);
74 else io = sfrd(f,buf,n,disc);
80 sfsk(f,parent,SEEK_SET,disc);
86 static ssize_t streamwrite(Sfio_t* f, const Void_t* buf, size_t n, Sfdisc_t* disc)
88 static ssize_t streamwrite(f, buf, n, disc)
92 Sfdisc_t* disc;
95 return streamio(f,(Void_t*)buf,n,disc,SF_WRITE);
99 static ssize_t streamread(Sfio_t* f, Void_t* buf, size_t n, Sfdisc_t* disc)
101 static ssize_t streamread(f, buf, n, disc)
105 Sfdisc_t* disc;
108 return streamio(f,buf,n,disc,SF_READ);
112 static Sfoff_t streamseek(Sfio_t* f, Sfoff_t pos, int type, Sfdisc_t* disc)
114 static Sfoff_t streamseek(f, pos, type, disc)
118 Sfdisc_t* disc;
124 su = (Subfile_t*)disc;
138 { parent = sfsk(f,(Sfoff_t)0,SEEK_CUR,disc);
139 if((here = sfsk(f,(Sfoff_t)0,SEEK_END,disc)) < 0)
142 sfsk(f,parent,SEEK_SET,disc);
157 static int streamexcept(Sfio_t* f, int type, Void_t* data, Sfdisc_t* disc)
159 static int streamexcept(f, type, data, disc)
163 Sfdisc_t* disc;
167 free(disc);
201 su->disc.readf = streamread;
202 su->disc.writef = streamwrite;
203 su->disc.seekf = streamseek;
204 su->disc.exceptf = streamexcept;