1 /* No user fns here. Pesch 15apr92. */
4 * Copyright (c) 1990 The Regents of the University of California.
7 * Redistribution and use in source and binary forms are permitted
8 * provided that the above copyright notice and this paragraph are
9 * duplicated in all such forms and that any documentation,
10 * and/or other materials related to such
11 * distribution and use acknowledge that the software was developed
12 * by the University of California, Berkeley. The name of the
13 * University may not be used to endorse or promote products derived
14 * from this software without specific prior written permission.
15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
21 #include <sys/types.h>
23 #include <sys/unistd.h>
27 #ifdef __LARGE64_FILES
29 __sseek64 (struct _reent
*ptr
,
34 register FILE *fp
= (FILE *) cookie
;
35 register _off64_t ret
;
37 ret
= _lseek64_r (ptr
, fp
->_file
, (_off64_t
) offset
, whence
);
38 if (ret
== (_fpos64_t
)-1L)
39 fp
->_flags
&= ~__SOFF
;
48 _READ_WRITE_RETURN_TYPE
49 __swrite64 (struct _reent
*ptr
,
52 _READ_WRITE_BUFSIZE_TYPE n
)
54 register FILE *fp
= (FILE *) cookie
;
55 _READ_WRITE_RETURN_TYPE w
;
60 if (fp
->_flags
& __SAPP
)
61 (void) _lseek64_r (ptr
, fp
->_file
, (_off64_t
)0, SEEK_END
);
62 fp
->_flags
&= ~__SOFF
; /* in case O_APPEND mode is set */
65 if (fp
->_flags
& __SCLE
)
66 oldmode
= setmode(fp
->_file
, O_BINARY
);
69 w
= _write_r (ptr
, fp
->_file
, buf
, n
);
73 setmode(fp
->_file
, oldmode
);
79 #endif /* __LARGE64_FILES */