[libc] Fill out generated malloc.h and related stdlib.h extensions (#127293)
This updates the generated stdlib.h and malloc.h headers to include the subsets of extenion functions declared by glibc that are also supported by Scudo and that use only simple types. Scudo's extensions not declared by glibc are omitted. glibc's extensions not implemented by Scudo are omitted. The mallinfo and mallinfo2 functions are omitted (at least for now) since they need struct definitions for their return types.
This commit is contained in:
@@ -9,6 +9,12 @@ macros:
|
||||
- macro_name: M_PURGE_ALL
|
||||
macro_header: malloc-macros.h
|
||||
functions:
|
||||
- name: malloc_usable_size
|
||||
standards:
|
||||
- gnu
|
||||
return_type: size_t
|
||||
arguments:
|
||||
- type: void *
|
||||
- name: mallopt
|
||||
standards:
|
||||
- gnu
|
||||
@@ -16,3 +22,10 @@ functions:
|
||||
arguments:
|
||||
- type: int
|
||||
- type: int
|
||||
- name: pvalloc
|
||||
standards:
|
||||
- bsd
|
||||
- gnu
|
||||
return_type: void *
|
||||
arguments:
|
||||
- type: size_t
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
# This file has declarations that appear both in <stdlib.h> and in <malloc.h>.
|
||||
# These include the subset of GNU extensions that Scudo supports.
|
||||
#
|
||||
# Note: glibc's <stdlib.h> and <malloc.h> both also have `reallocarray`,
|
||||
# which Scudo does not support and is omitted here. (Each of those glibc
|
||||
# headers also has related functions the other lacks, but those should be
|
||||
# covered separately in stdlib.yaml and malloc.yaml instead.)
|
||||
|
||||
functions:
|
||||
- name: aligned_alloc
|
||||
@@ -27,6 +33,13 @@ functions:
|
||||
return_type: void *
|
||||
arguments:
|
||||
- type: size_t
|
||||
- name: memalign
|
||||
standards:
|
||||
- gnu
|
||||
return_type: void *
|
||||
arguments:
|
||||
- type: size_t
|
||||
- type: size_t
|
||||
- name: realloc
|
||||
standards:
|
||||
- stdc
|
||||
@@ -34,11 +47,10 @@ functions:
|
||||
arguments:
|
||||
- type: void *
|
||||
- type: size_t
|
||||
|
||||
# Note: glibc's <stdlib.h> and <malloc.h> both have these, which are
|
||||
# currently missing here:
|
||||
# - name: reallocarray
|
||||
# - name: memalign
|
||||
# - name: valloc
|
||||
# Each of those glibc headers also has related functions the other lacks.
|
||||
# Only the common subset is mentioned here for future consideration.
|
||||
- name: valloc
|
||||
standards:
|
||||
- bsd
|
||||
- gnu
|
||||
return_type: void *
|
||||
arguments:
|
||||
- type: size_t
|
||||
|
||||
@@ -127,6 +127,14 @@ functions:
|
||||
arguments:
|
||||
- type: long long
|
||||
- type: long long
|
||||
- name: posix_memalign
|
||||
standards:
|
||||
- posix
|
||||
return_type: int
|
||||
arguments:
|
||||
- type: void **
|
||||
- type: size_t
|
||||
- type: size_t
|
||||
- name: qsort
|
||||
standards:
|
||||
- stdc
|
||||
|
||||
Reference in New Issue
Block a user