Root/
Source at commit 1076 created 13 years 1 month ago. By meklort, Removed disk code + fs code from libsaio. Moved modulesystem to within /modules/ folder | |
---|---|
1 | /*-␊ |
2 | * Copyright (c) 1993␊ |
3 | *␉The Regents of the University of California. All rights reserved.␊ |
4 | *␊ |
5 | * This code is derived from software contributed to Berkeley by␊ |
6 | * Paul Borman at Krystal Technologies.␊ |
7 | *␊ |
8 | * Redistribution and use in source and binary forms, with or without␊ |
9 | * modification, are permitted provided that the following conditions␊ |
10 | * are met:␊ |
11 | * 1. Redistributions of source code must retain the above copyright␊ |
12 | * notice, this list of conditions and the following disclaimer.␊ |
13 | * 2. Redistributions in binary form must reproduce the above copyright␊ |
14 | * notice, this list of conditions and the following disclaimer in the␊ |
15 | * documentation and/or other materials provided with the distribution.␊ |
16 | * 3. All advertising materials mentioning features or use of this software␊ |
17 | * must display the following acknowledgement:␊ |
18 | *␉This product includes software developed by the University of␊ |
19 | *␉California, Berkeley and its contributors.␊ |
20 | * 4. Neither the name of the University nor the names of its contributors␊ |
21 | * may be used to endorse or promote products derived from this software␊ |
22 | * without specific prior written permission.␊ |
23 | *␊ |
24 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND␊ |
25 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE␊ |
26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE␊ |
27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE␊ |
28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL␊ |
29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS␊ |
30 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)␊ |
31 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT␊ |
32 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY␊ |
33 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF␊ |
34 | * SUCH DAMAGE.␊ |
35 | *␊ |
36 | *␉@(#)runetype.h␉8.1 (Berkeley) 6/2/93␊ |
37 | */␊ |
38 | ␊ |
39 | #ifndef␉_RUNETYPE_H_␊ |
40 | #define␉_RUNETYPE_H_␊ |
41 | ␊ |
42 | #include <_types.h>␊ |
43 | ␊ |
44 | #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)␊ |
45 | ␊ |
46 | #ifndef␉_SIZE_T␊ |
47 | #define _SIZE_T␊ |
48 | typedef␉__darwin_size_t␉␉size_t;␊ |
49 | #endif␊ |
50 | ␊ |
51 | #ifndef␉_CT_RUNE_T␊ |
52 | #define _CT_RUNE_T␊ |
53 | typedef␉__darwin_ct_rune_t␉ct_rune_t;␊ |
54 | #endif␊ |
55 | ␊ |
56 | #ifndef␉_RUNE_T␊ |
57 | #define _RUNE_T␊ |
58 | typedef␉__darwin_rune_t␉␉rune_t;␊ |
59 | #endif␊ |
60 | ␊ |
61 | #ifndef␉__cplusplus␊ |
62 | #ifndef␉_WCHAR_T␊ |
63 | #define␉_WCHAR_T␊ |
64 | typedef␉__darwin_wchar_t␉wchar_t;␊ |
65 | #endif␉/* _WCHAR_T */␊ |
66 | #endif␉/* __cplusplus */␊ |
67 | ␊ |
68 | #ifndef␉_WINT_T␊ |
69 | #define _WINT_T␊ |
70 | typedef␉__darwin_wint_t␉␉wint_t;␊ |
71 | #endif␊ |
72 | ␊ |
73 | #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */␊ |
74 | ␊ |
75 | #define␉_CACHED_RUNES␉(1 <<8 )␉/* Must be a power of 2 */␊ |
76 | #define␉_CRMASK␉␉(~(_CACHED_RUNES - 1))␊ |
77 | ␊ |
78 | /*␊ |
79 | * The lower 8 bits of runetype[] contain the digit value of the rune.␊ |
80 | */␊ |
81 | typedef struct {␊ |
82 | ␉__darwin_rune_t␉__min;␉␉/* First rune of the range */␊ |
83 | ␉__darwin_rune_t␉__max;␉␉/* Last rune (inclusive) of the range */␊ |
84 | ␉__darwin_rune_t␉__map;␉␉/* What first maps to in maps */␊ |
85 | ␉__uint32_t␉*__types;␉/* Array of types in range */␊ |
86 | } _RuneEntry;␊ |
87 | ␊ |
88 | typedef struct {␊ |
89 | ␉int␉␉__nranges;␉/* Number of ranges stored */␊ |
90 | ␉_RuneEntry␉*__ranges;␉/* Pointer to the ranges */␊ |
91 | } _RuneRange;␊ |
92 | ␊ |
93 | typedef struct {␊ |
94 | ␉char␉␉__name[14];␉/* CHARCLASS_NAME_MAX = 14 */␊ |
95 | ␉__uint32_t␉__mask;␉␉/* charclass mask */␊ |
96 | } _RuneCharClass;␊ |
97 | ␊ |
98 | typedef struct {␊ |
99 | ␉char␉␉__magic[8];␉/* Magic saying what version we are */␊ |
100 | ␉char␉␉__encoding[32];␉/* ASCII name of this encoding */␊ |
101 | ␊ |
102 | ␉__darwin_rune_t␉(*__sgetrune)(const char *, __darwin_size_t, char const **);␊ |
103 | ␉int␉␉(*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **);␊ |
104 | ␉__darwin_rune_t␉__invalid_rune;␊ |
105 | ␊ |
106 | ␉__uint32_t␉__runetype[_CACHED_RUNES];␊ |
107 | ␉__darwin_rune_t␉__maplower[_CACHED_RUNES];␊ |
108 | ␉__darwin_rune_t␉__mapupper[_CACHED_RUNES];␊ |
109 | ␊ |
110 | ␉/*␊ |
111 | ␉ * The following are to deal with Runes larger than _CACHED_RUNES - 1.␊ |
112 | ␉ * Their data is actually contiguous with this structure so as to make␊ |
113 | ␉ * it easier to read/write from/to disk.␊ |
114 | ␉ */␊ |
115 | ␉_RuneRange␉__runetype_ext;␊ |
116 | ␉_RuneRange␉__maplower_ext;␊ |
117 | ␉_RuneRange␉__mapupper_ext;␊ |
118 | ␊ |
119 | ␉void␉␉*__variable;␉/* Data which depends on the encoding */␊ |
120 | ␉int␉␉__variable_len;␉/* how long that data is */␊ |
121 | ␊ |
122 | ␉/*␊ |
123 | ␉ * extra fields to deal with arbitrary character classes␊ |
124 | ␉ */␊ |
125 | ␉int␉␉__ncharclasses;␊ |
126 | ␉_RuneCharClass␉*__charclasses;␊ |
127 | } _RuneLocale;␊ |
128 | ␊ |
129 | #define␉_RUNE_MAGIC_A␉"RuneMagA"␉/* Indicates version A of RuneLocale */␊ |
130 | ␊ |
131 | __BEGIN_DECLS␊ |
132 | extern _RuneLocale _DefaultRuneLocale;␊ |
133 | extern _RuneLocale *_CurrentRuneLocale;␊ |
134 | __END_DECLS␊ |
135 | ␊ |
136 | #endif␉/* !_RUNETYPE_H_ */␊ |
137 |