blob: dbb7f0c596cf3408a1ca69c318ceeac4e705cf6b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
functions to lock and unlock pages (3.4.3 p76)
character class determination for wide characters (4.3 p82)
collation functions (5.6 p109)
encode binary data (5.11 p125)
argz and envz vectors (5.12 p127)
characer-set handling (6 p133)
locales and internationalisation (7 p181)
mathematics (8 p243)
arithmetic functions (9 p243)
date and time (10 p277)
message translation (11 p315)
searching and sorting (12 p343)
pattern matching (13 p355)
the basic program–system interface (14 p379)
input/output overview (15 p429)
input/output on streams (17 p439)
It should be possible to configure malloc, calloc, and
realloc to allocate some extra space. This is usable
for single-threaded allocations; they do not need to
realloc strings returned by functions with
__attribute__((malloc)), to append a string or character.
LOW PRIORITY:
debugging support (16 p435)
_GNU_SOURCE, system-dependant
void* extalloca(void* p, size_t extent) :: extend alloca-allocation
requires that nothing has been allocated to the stack since p.
difficult to implement as a function.
as a macro:
({ void* q = alloca(extent); (long int)q < (long int)p ? q : p; })
void* dealloca(size_t amount)
deallocate the last amount bytes allocated to the stack
void* zalloca(size_t size)
difficult to implement as a function.
as a macro:
({ void* p = alloca(size); memset(p, 0, size); })
crt0 with cpu cycle count printing
BUFSIZ configurable by environment variable
Rate limitation of I/O-functions configured by environment variables
The width of intptr_t should be determined by sizeof(void*),
the width of size_t should be determined by sizeof(sizeof(0)), and
the width of ptrdiff_t should be determined by sizeof(NULL - NULL);
|