ldso: support DT_RELR relative relocation format
[musl] / src / internal / stdio_impl.h
index 8c81fd5..0b2438d 100644 (file)
@@ -34,11 +34,9 @@ struct _IO_FILE {
        int fd;
        int pipe_pid;
        long lockcount;
-       short dummy3;
-       signed char mode;
-       signed char lbf;
+       int mode;
        volatile int lock;
-       volatile int waiters;
+       int lbf;
        void *cookie;
        off_t off;
        char *getln_buf;
@@ -62,8 +60,6 @@ hidden size_t __stdout_write(FILE *, const unsigned char *, size_t);
 hidden off_t __stdio_seek(FILE *, off_t, int);
 hidden int __stdio_close(FILE *);
 
-hidden size_t __string_read(FILE *, unsigned char *, size_t);
-
 hidden int __toread(FILE *);
 hidden int __towrite(FILE *);
 
@@ -94,6 +90,8 @@ hidden void __register_locked_file(FILE *, struct __pthread *);
 hidden void __unlist_locked_file(FILE *);
 hidden void __do_orphaned_stdio_locks(void);
 
+#define MAYBE_WAITERS 0x40000000
+
 hidden void __getopt_msg(const char *, const char *, const char *, size_t);
 
 #define feof(f) ((f)->flags & F_EOF)
@@ -103,8 +101,9 @@ hidden void __getopt_msg(const char *, const char *, const char *, size_t);
        ( ((f)->rpos != (f)->rend) ? *(f)->rpos++ : __uflow((f)) )
 
 #define putc_unlocked(c, f) \
-       ( ((unsigned char)(c)!=(f)->lbf && (f)->wpos!=(f)->wend) \
-       ? *(f)->wpos++ = (c) : __overflow((f),(c)) )
+       ( (((unsigned char)(c)!=(f)->lbf && (f)->wpos!=(f)->wend)) \
+       ? *(f)->wpos++ = (unsigned char)(c) \
+       : __overflow((f),(unsigned char)(c)) )
 
 /* Caller-allocated FILE * operations */
 hidden FILE *__fopen_rb_ca(const char *, FILE *, unsigned char *, size_t);