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, size_t 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()
386 sfsetbuf(stream,cp,sp->stkend-cp); in stkset()
388 stream->_data = stream->_next = (unsigned char*)cp; in stkset()
390 return((char*)stream->_data); in stkset()
396 char *stkalloc(register Sfio_t *stream, register size_t n) in stkalloc() argument
403 if(stkleft(stream) <= (int)n && !stkgrow(stream,n)) in stkalloc()
405 old = stream->_data; in stkalloc()
406 stream->_data = stream->_next = old+n; in stkalloc()
413 char *_stkseek(register Sfio_t *stream, register ssize_t n) in _stkseek() argument
418 if(stkleft(stream) <= n && !stkgrow(stream,n)) in _stkseek()
420 stream->_next = stream->_data+n; in _stkseek()
421 return((char*)stream->_data); in _stkseek()
428 char *stkfreeze(register Sfio_t *stream, register size_t extra) in stkfreeze() argument
433 old = stream->_data; in stkfreeze()
434 top = stream->_next; in stkfreeze()
437 if(extra > (stream->_endb-stream->_next)) in stkfreeze()
439 if (!(top = (unsigned char*)stkgrow(stream,extra))) in stkfreeze()
441 old = stream->_data; in stkfreeze()
446 stream->_next = stream->_data += roundof(top-old,STK_ALIGN); in stkfreeze()
453 char *stkcopy(Sfio_t *stream, const char* str) in stkcopy() argument
457 register int off=stktell(stream); in stkcopy()
465 struct stk *sp = stream2stk(stream); in stkcopy()
470 memcpy(tp, stream->_data, off); in stkcopy()
477 if(stkleft(stream) <= n && !stkgrow(stream,n)) in stkcopy()
481 strcpy((char*)(cp=stream->_data),str); in stkcopy()
482 stream->_data = stream->_next = cp+n; in stkcopy()
485 _stkseek(stream,off); in stkcopy()
486 memcpy(stream->_data, tp, off); in stkcopy()
501 static char *stkgrow(register Sfio_t *stream, size_t size) in stkgrow() argument
504 register struct stk *sp = stream2stk(stream); in stkgrow()
507 register size_t m = stktell(stream); in stkgrow()
519 if(stkptr(stream,0)==sp->stkbase+sizeof(struct frame)) in stkgrow()
559 memcpy(cp,(char*)stream->_data,m); in stkgrow()
562 sfsetbuf(stream,cp,sp->stkend-cp); in stkgrow()
563 return((char*)(stream->_next = stream->_data+m)); in stkgrow()