typedef __SIZE_TYPE__ size_t; typedef struct _IO_FILE FILE; extern size_t fread(void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); typedef unsigned char Byte; typedef unsigned int uInt; typedef unsigned long uLong; typedef struct z_stream_s { uInt avail_in; uInt avail_out; } z_stream; typedef struct gz_stream { z_stream stream; FILE *file; } gz_stream; void test_1_callee(gz_stream *s, Byte *buf) { Byte *next_out = buf; uInt n = s->stream.avail_in; if (n > 0) { next_out += n; } s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, s->file); } void test_1_caller(gz_stream *s) { unsigned char c; test_1_callee(s, &c); }