Rev 4921 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 1 | /* Reentrant version of close system call. */ |
2 | |||
3 | #include |
||
4 | #include |
||
5 | #include <_syslist.h> |
||
6 | |||
7 | /* Some targets provides their own versions of this functions. Those |
||
8 | targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ |
||
9 | |||
10 | #ifdef _REENT_ONLY |
||
11 | #ifndef REENTRANT_SYSCALLS_PROVIDED |
||
12 | #define REENTRANT_SYSCALLS_PROVIDED |
||
13 | #endif |
||
14 | #endif |
||
15 | |||
16 | #ifndef REENTRANT_SYSCALLS_PROVIDED |
||
17 | |||
4921 | Serge | 18 | /* We use the errno variable used by the system dependent layer. */ |
19 | #undef errno |
||
20 | extern int errno; |
||
4349 | Serge | 21 | |
22 | /* |
||
23 | FUNCTION |
||
24 | <<_close_r>>---Reentrant version of close |
||
6099 | serge | 25 | |
4349 | Serge | 26 | INDEX |
27 | _close_r |
||
28 | |||
29 | ANSI_SYNOPSIS |
||
30 | #include |
||
31 | int _close_r(struct _reent *<[ptr]>, int <[fd]>); |
||
32 | |||
33 | TRAD_SYNOPSIS |
||
34 | #include |
||
35 | int _close_r(<[ptr]>, <[fd]>) |
||
36 | struct _reent *<[ptr]>; |
||
37 | int <[fd]>; |
||
38 | |||
39 | DESCRIPTION |
||
40 | This is a reentrant version of < |
||
41 | takes a pointer to the global data block, which holds |
||
42 | < |
||
43 | */ |
||
44 | |||
45 | int |
||
4921 | Serge | 46 | _close_r (ptr, fd) |
47 | struct _reent *ptr; |
||
48 | int fd; |
||
4349 | Serge | 49 | { |
4921 | Serge | 50 | int ret; |
4349 | Serge | 51 | |
4921 | Serge | 52 | errno = 0; |
53 | if ((ret = _close (fd)) == -1 && errno != 0) |
||
54 | ptr->_errno = errno; |
||
55 | return ret; |
||
4349 | Serge | 56 | } |
57 | |||
58 | #endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ |