5 #define _RPMIOB_INTERNAL
21 fprintf(stderr,
"--> %s(%p) %p[%u:%u]\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated);
22 iob->b =
_free(iob->b);
36 if (_rpmiobPool == NULL) {
48 fprintf(stderr,
"--> %s(%p) %p[%u:%u]\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated);
63 fprintf(stderr,
"<-- %s(%p) %p[%u:%u]\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated);
71 while (iob->blen > 0 &&
xisspace((
int)iob->b[iob->blen-1]))
74 fprintf(stderr,
"<-- %s(%p) %p[%u:%u]\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated);
80 size_t ns = strlen(s);
86 if ((iob->blen + ns) > iob->allocated) {
91 tail = iob->b + iob->blen;
99 fprintf(stderr,
"<-- %s(%p,%p,%u) %p[%u:%u] \"%s\"\n", __FUNCTION__, iob, s, (
unsigned)nl, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated, s);
107 fprintf(stderr,
"<-- %s(%p) %p[%u:%u]\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated);
117 fprintf(stderr,
"<-- %s(%p) %p[%u:%u]\n===============\n%s\n===============\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated, iob->b);
119 return (
char *) iob->b;
126 fprintf(stderr,
"<-- %s(%p) %p[%u:%u]\n", __FUNCTION__, iob, iob->b, (
unsigned)iob->blen, (
unsigned)iob->allocated);
127 return (iob != NULL ? iob->blen : 0);
132 static size_t blenmax = (128 * BUFSIZ);
140 fd =
Fopen(fn,
"r.ufdio");
141 if (fd == NULL ||
Ferror(fd)) {
146 if ((xx =
Fstat(fd, &sb)) < 0 || sb.st_size == 0)
147 sb.st_size = blenmax;
148 #if defined(__linux__)
151 if (sb.st_size == 0 && !strncmp(fn,
"/proc/",
sizeof(
"/proc/")-1)) {
156 xx = read(
Fileno(fd), b, blen);
157 blen = (size_t) (xx >= 0 ? xx : 0);
165 blen =
Fread(b,
sizeof(*b), blen, fd);
171 if (blen < (
size_t)sb.st_size)
176 if (fd != NULL) (void)
Fclose(fd);
184 iob->allocated = blen;