Lines Matching refs:stream

89 #define stream2stk(stream)	((stream)==stkstd? stkcur:\  argument
90 ((struct stk*)(((char*)(stream))+STK_HDRSIZE)))
92 #define stkleft(stream) ((stream)->_endb-(stream)->_data) argument
144 static int stkexcept(register Sfio_t *stream, int type, void* val, Sfdisc_t* dp) in stkexcept() argument
152 register struct stk *sp = stream2stk(stream); in stkexcept()
158 if(stream==stkstd) in stkexcept()
159 stkset(stream,(char*)0,0); in stkexcept()
178 stream->_data = stream->_next = 0; in stkexcept()
182 free(stream); in stkexcept()
189 long size = sfvalue(stream); in stkexcept()
193 if(stream!=stkstd) in stkexcept()
194 old = stkinstall(stream,NiL); in stkexcept()
216 register Sfio_t *stream; in stkopen() local
221 if(!(stream=newof((char*)0,Sfio_t, 1, sizeof(*dp)+sizeof(*sp)))) in stkopen()
224 count(addsize,sizeof(*stream)+sizeof(*dp)+sizeof(*sp)); in stkopen()
225 dp = (Sfdisc_t*)(stream+1); in stkopen()
242 free(stream); in stkopen()
252 if(!sfnew(stream,cp,bsize,-1,SF_STRING|SF_WRITE|SF_STATIC|SF_EOF)) in stkopen()
254 sfdisc(stream,dp); in stkopen()
255 return(stream); in stkopen()
263 Sfio_t *stkinstall(Sfio_t *stream, _stk_overflow_ oflow) in stkinstall() argument
276 if(stream) in stkinstall()
278 sp = stream2stk(stream); in stkinstall()
280 if(stream!=stkstd) in stkinstall()
281 sfstack(stkstd,stream); in stkinstall()
297 int stklink(register Sfio_t* stream) in stklink() argument
299 register struct stk *sp = stream2stk(stream); in stklink()
309 int stkclose(Sfio_t* stream) in stkclose() argument
311 register struct stk *sp = stream2stk(stream); in stkclose()
317 return(sfclose(stream)); in stkclose()
323 int stkon(register Sfio_t * stream, register char* loc) in stkon() argument
325 register struct stk *sp = stream2stk(stream); in stkon()
338 char *stkset(register Sfio_t * stream, register char* loc, unsigned offset) in stkset() argument
340 register struct stk *sp = stream2stk(stream); in stkset()
365 sfsetbuf(stream,cp,sp->stkend-cp); in stkset()
366 stream->_data = (unsigned char*)(cp + roundof(loc-cp,STK_ALIGN)); in stkset()
367 stream->_next = (unsigned char*)loc+offset; in stkset()
383 sfsetbuf(stream,cp,sp->stkend-cp); in stkset()
385 stream->_data = stream->_next = (unsigned char*)cp; in stkset()
387 return((char*)stream->_data); in stkset()
393 char *stkalloc(register Sfio_t *stream, register unsigned int n) in stkalloc() argument
400 if(stkleft(stream) <= (int)n && !stkgrow(stream,n)) in stkalloc()
402 old = stream->_data; in stkalloc()
403 stream->_data = stream->_next = old+n; in stkalloc()
410 char *_stkseek(register Sfio_t *stream, register unsigned n) in _stkseek() argument
415 if(stkleft(stream) <= (int)n && !stkgrow(stream,n)) in _stkseek()
417 stream->_next = stream->_data+n; in _stkseek()
418 return((char*)stream->_data); in _stkseek()
425 char *stkfreeze(register Sfio_t *stream, register unsigned extra) in stkfreeze() argument
430 old = stream->_data; in stkfreeze()
431 top = stream->_next; in stkfreeze()
434 if(extra > (stream->_endb-stream->_next)) in stkfreeze()
436 if (!(top = (unsigned char*)stkgrow(stream,extra))) in stkfreeze()
438 old = stream->_data; in stkfreeze()
443 stream->_next = stream->_data += roundof(top-old,STK_ALIGN); in stkfreeze()
450 char *stkcopy(Sfio_t *stream, const char* str) in stkcopy() argument
454 register int off=stktell(stream); in stkcopy()
462 struct stk *sp = stream2stk(stream); in stkcopy()
467 memcpy(tp, stream->_data, off); in stkcopy()
474 if(stkleft(stream) <= n && !stkgrow(stream,n)) in stkcopy()
476 strcpy((char*)(cp=stream->_data),str); in stkcopy()
477 stream->_data = stream->_next = cp+n; in stkcopy()
480 _stkseek(stream,off); in stkcopy()
481 memcpy(stream->_data, tp, off); in stkcopy()
495 static char *stkgrow(register Sfio_t *stream, unsigned size) in stkgrow() argument
498 register struct stk *sp = stream2stk(stream); in stkgrow()
501 register unsigned m = stktell(stream); in stkgrow()
511 if(stkptr(stream,0)==sp->stkbase+sizeof(struct frame)) in stkgrow()
537 memcpy(cp,(char*)stream->_data,m); in stkgrow()
540 sfsetbuf(stream,cp,sp->stkend-cp); in stkgrow()
541 return((char*)(stream->_next = stream->_data+m)); in stkgrow()