94 static CLEANUP_REGION *cleanup_region_alloc(off_t start, off_t len)
113 for (rp = regions; rp != 0; rp = next) {
124 const char *myname =
"cleanup_region_init";
139 msg_info(
"%s: body start %ld len %ld",
147 const char *myname =
"cleanup_region_open";
164 if ((rp = *rpp) == 0) {
167 rp = cleanup_region_alloc(st.st_size, 0);
174 if (rp->
len >= len) {
185 msg_info(
"%s: skip start %ld len %ld < %ld",
186 myname, (
long) rp->
start, (
long) rp->
len, (
long) len);
189 msg_info(
"%s: done start %ld len %ld",
190 myname, (
long) rp->
start, (
long) rp->
len);
198 const char *myname =
"cleanup_region_close";
208 msg_info(
"%s: freeze start %ld len %ld",
209 myname, (
long) rp->
start, (
long) rp->
len);
NORETURN msg_panic(const char *fmt,...)
void cleanup_region_init(CLEANUP_STATE *state)
void cleanup_region_close(CLEANUP_STATE *unused_state, CLEANUP_REGION *rp)
struct CLEANUP_REGION * body_regions
NORETURN msg_fatal(const char *fmt,...)
void cleanup_region_done(CLEANUP_STATE *state)
CLEANUP_REGION * cleanup_region_open(CLEANUP_STATE *state, ssize_t len)
#define vstream_fileno(vp)
struct CLEANUP_REGION * free_regions
off_t append_hdr_pt_target
CLEANUP_REGION * cleanup_region_return(CLEANUP_STATE *state, CLEANUP_REGION *rp)
struct CLEANUP_REGION * next
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)