Mercurial > dovecot > original-hg > dovecot-1.2
annotate src/lib/compat.h @ 410:1f0e7229ee58 HEAD
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
file OBuffer.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 14 Oct 2002 02:49:11 +0300 |
parents | f0f49949009b |
children | 83d4617e1dca |
rev | line source |
---|---|
0 | 1 #ifndef __COMPAT_H |
2 #define __COMPAT_H | |
3 | |
56 | 4 /* well, this is obviously wrong since it assumes it's 64bit, but older |
5 GCCs don't define it and we really want it. */ | |
6 #ifndef LLONG_MAX | |
7 # define LLONG_MAX 9223372036854775807LL | |
8 #endif | |
9 | |
179
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
10 #if defined (UOFF_T_INT) |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
11 typedef unsigned int uoff_t; |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
12 #elif defined (UOFF_T_LONG) |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
13 typedef unsigned long uoff_t; |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
14 #elif defined (UOFF_T_LONG_LONG) |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
15 typedef unsigned long long uoff_t; |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
16 #else |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
17 # error uoff_t size not set |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
18 #endif |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
19 |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
20 #if defined (LARGEST_T_LONG) |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
21 typedef unsigned long largest_t; |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
22 #elif defined (LARGEST_T_LONG_LONG) |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
23 typedef unsigned long long largest_t; |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
24 #else |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
25 # error largest_t size not set |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
26 #endif |
0ffecd4e7e1a
added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents:
56
diff
changeset
|
27 |
0 | 28 /* memmove() */ |
29 #ifndef HAVE_MEMMOVE | |
30 # define memmove my_memmove | |
31 void *my_memmove(void *dest, const void *src, size_t n); | |
32 #endif | |
33 | |
34 /* strcasecmp(), strncasecmp() */ | |
35 #ifndef HAVE_STRCASECMP | |
36 # ifdef HAVE_STRICMP | |
37 # define strcasecmp stricmp | |
38 # define strncasecmp strnicmp | |
39 # else | |
40 # define strcasecmp my_strcasecmp | |
41 # define strncasecmp my_strncasecmp | |
42 int my_strcasecmp(const char *s1, const char *s2); | |
43 int my_strncasecmp(const char *s1, const char *s2, size_t max_chars); | |
44 # endif | |
45 #endif | |
46 | |
47 #ifndef HAVE_INET_ATON | |
48 # include <sys/socket.h> | |
49 # include <netinet/in.h> | |
50 # include <arpa/inet.h> | |
51 # define inet_aton my_inet_aton | |
52 int my_inet_aton(const char *cp, struct in_addr *inp); | |
53 #endif | |
54 | |
55 #ifndef HAVE_VSYSLOG | |
56 # define vsyslog my_vsyslog | |
57 void my_vsyslog(int priority, const char *format, va_list args); | |
58 #endif | |
59 | |
5
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
60 #ifndef HAVE_GETPAGESIZE |
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
61 # define getpagesize my_getpagesize |
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
62 int my_getpagesize(void); |
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
63 #endif |
1b34ec11fff8
Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents:
0
diff
changeset
|
64 |
410
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
65 #ifndef HAVE_STRUCT_IOVEC |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
66 struct iovec { |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
67 void *iov_base; |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
68 size_t iov_len; |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
69 }; |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
70 #endif |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
71 |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
72 #ifndef HAVE_WRITEV |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
73 # define writev my_writev |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
74 struct iovec; |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
75 ssize_t my_writev(int fd, const struct iovec *iov, size_t iov_len); |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
76 #endif |
1f0e7229ee58
Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents:
204
diff
changeset
|
77 |
0 | 78 /* ctype.h isn't safe with signed chars, |
79 use our own instead if really needed */ | |
204
f0f49949009b
cast i_toupper() and i_tolower() return as char, so comparing highascii
Timo Sirainen <tss@iki.fi>
parents:
179
diff
changeset
|
80 #define i_toupper(x) ((char) toupper((int) (unsigned char) (x))) |
f0f49949009b
cast i_toupper() and i_tolower() return as char, so comparing highascii
Timo Sirainen <tss@iki.fi>
parents:
179
diff
changeset
|
81 #define i_tolower(x) ((char) tolower((int) (unsigned char) (x))) |
0 | 82 #define i_isalnum(x) isalnum((int) (unsigned char) (x)) |
83 #define i_isalpha(x) isalpha((int) (unsigned char) (x)) | |
84 #define i_isascii(x) isascii((int) (unsigned char) (x)) | |
85 #define i_isblank(x) isblank((int) (unsigned char) (x)) | |
86 #define i_iscntrl(x) iscntrl((int) (unsigned char) (x)) | |
87 #define i_isdigit(x) isdigit((int) (unsigned char) (x)) | |
88 #define i_isgraph(x) isgraph((int) (unsigned char) (x)) | |
89 #define i_islower(x) islower((int) (unsigned char) (x)) | |
90 #define i_isprint(x) isprint((int) (unsigned char) (x)) | |
91 #define i_ispunct(x) ispunct((int) (unsigned char) (x)) | |
92 #define i_isspace(x) isspace((int) (unsigned char) (x)) | |
93 #define i_isupper(x) isupper((int) (unsigned char) (x)) | |
94 #define i_isxdigit(x) isxdigit((int) (unsigned char) (x)) | |
95 | |
96 #endif |