comparison tango/tango/stdc/posix/dirent.d @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
comparison
equal deleted inserted replaced
131:5825d48b27d1 132:1700239cab2e
1 /**
2 * D header file for POSIX.
3 *
4 * Copyright: Public Domain
5 * License: Public Domain
6 * Authors: Sean Kelly
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8 */
9 module tango.stdc.posix.dirent;
10
11 private import tango.stdc.posix.config;
12 public import tango.stdc.posix.sys.types; // for ino_t
13
14 extern (C):
15
16 //
17 // Required
18 //
19 /*
20 DIR
21
22 struct dirent
23 {
24 char[] d_name;
25 }
26
27 int closedir(DIR*);
28 DIR* opendir(char*);
29 dirent* readdir(DIR*);
30 void rewinddir(DIR*);
31 */
32
33 version( linux )
34 {
35 // NOTE: The following constants are non-standard Linux definitions
36 // for dirent.d_type.
37 enum
38 {
39 DT_UNKNOWN = 0,
40 DT_FIFO = 1,
41 DT_CHR = 2,
42 DT_DIR = 4,
43 DT_BLK = 6,
44 DT_REG = 8,
45 DT_LNK = 10,
46 DT_SOCK = 12,
47 DT_WHT = 14
48 }
49
50 struct dirent
51 {
52 ino_t d_ino;
53 off_t d_off;
54 ushort d_reclen;
55 ubyte d_type;
56 char[256] d_name;
57 }
58
59 struct DIR
60 {
61 // Managed by OS
62 }
63
64 dirent* readdir(DIR*);
65 }
66 else version( darwin )
67 {
68 enum
69 {
70 DT_UNKNOWN = 0,
71 DT_FIFO = 1,
72 DT_CHR = 2,
73 DT_DIR = 4,
74 DT_BLK = 6,
75 DT_REG = 8,
76 DT_LNK = 10,
77 DT_SOCK = 12,
78 DT_WHT = 14
79 }
80
81 align(4)
82 struct dirent
83 {
84 ino_t d_ino;
85 ushort d_reclen;
86 ubyte d_type;
87 ubyte d_namlen;
88 char[256] d_name;
89 }
90
91 struct DIR
92 {
93 // Managed by OS
94 }
95
96 dirent* readdir(DIR*);
97 }
98 else
99 {
100 dirent* readdir(DIR*);
101 }
102
103 int closedir(DIR*);
104 DIR* opendir(char*);
105 //dirent* readdir(DIR*);
106 void rewinddir(DIR*);
107
108 //
109 // Thread-Safe Functions (TSF)
110 //
111 /*
112 int readdir_r(DIR*, dirent*, dirent**);
113 */
114
115 int readdir_r(DIR*, dirent*, dirent**);
116
117 //
118 // XOpen (XSI)
119 //
120 /*
121 void seekdir(DIR*, c_long);
122 c_long telldir(DIR*);
123 */
124
125 version( linux )
126 {
127 void seekdir(DIR*, c_long);
128 c_long telldir(DIR*);
129 }