|
1 /* |
|
2 * CDDL HEADER START |
|
3 * |
|
4 * The contents of this file are subject to the terms of the |
|
5 * Common Development and Distribution License, Version 1.0 only |
|
6 * (the "License"). You may not use this file except in compliance |
|
7 * with the License. |
|
8 * |
|
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
|
10 * or http://www.opensolaris.org/os/licensing. |
|
11 * See the License for the specific language governing permissions |
|
12 * and limitations under the License. |
|
13 * |
|
14 * When distributing Covered Code, include this CDDL HEADER in each |
|
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
|
16 * If applicable, add the following below this CDDL HEADER, with the |
|
17 * fields enclosed by brackets "[]" replaced with your own identifying |
|
18 * information: Portions Copyright [yyyy] [name of copyright owner] |
|
19 * |
|
20 * CDDL HEADER END |
|
21 */ |
|
22 /* |
|
23 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. |
|
24 * Use is subject to license terms. |
|
25 */ |
|
26 |
|
27 #pragma ident "%Z%%M% %I% %E% SMI" |
|
28 |
|
29 /* Copyright (c) 1988 AT&T */ |
|
30 /* All Rights Reserved */ |
|
31 |
|
32 |
|
33 /* |
|
34 * closedir -- C library extension routine |
|
35 * |
|
36 * We use lmalloc()/lfree() rather than malloc()/free() in |
|
37 * order to allow opendir()/readdir()/closedir() to be called |
|
38 * while holding internal libc locks. |
|
39 */ |
|
40 |
|
41 #pragma weak closedir = _closedir |
|
42 |
|
43 #include "synonyms.h" |
|
44 #include <sys/types.h> |
|
45 #include <dirent.h> |
|
46 #include <stdlib.h> |
|
47 #include <unistd.h> |
|
48 #include "libc.h" |
|
49 |
|
50 int |
|
51 closedir(DIR *dirp) |
|
52 { |
|
53 int fd = dirp->dd_fd; |
|
54 |
|
55 lfree(dirp->dd_buf, DIRBUF); |
|
56 lfree(dirp, sizeof (DIR)); |
|
57 return (close(fd)); |
|
58 } |