Roland McGrath 6ad0dcf67f
[libc] Revamp hdrgen command line and build integration (#121522)
This adds a new main command-line entry point for hdrgen, in the
new main.py.  This new interface is used for generating a header.
The old ways of invoking yaml_to_classes.py for other purposes
are left there for now, but `--e` is renamed to `--entry-point`
for consistency with the new CLI.

The YAML schema is expanded with the `header_template` key where
the corresponding `.h.def` file's path is given relative to where
the YAML file is found.  The build integration no longer gives
the `.h.def` path on the command line.  Instead, the script now
emits a depfile that's used by the cmake rules to track that.
The output file is always explicit in the script command line
rather than sometimes being derived from a directory path.
2025-01-07 15:56:12 -08:00

399 lines
7.7 KiB
YAML

header: stdio.h
header_template: stdio.h.def
macros:
- macro_name: stdout
macro_value: stdout
- macro_name: stdin
macro_value: stdin
- macro_name: stderr
macro_value: stderr
types:
- type_name: size_t
- type_name: off_t
- type_name: cookie_io_functions_t
- type_name: FILE
enums: []
objects:
- object_name: stdin
object_type: FILE *
- object_name: stdout
object_type: FILE *
- object_name: stderr
object_type: FILE *
functions:
- name: asprintf
standards:
- GNUExtensions
return_type: int
arguments:
- type: char **__restrict
- type: const char *__restrict
- type: '...'
- name: clearerr
standards:
- stdc
return_type: void
arguments:
- type: FILE *
- name: clearerr_unlocked
standards:
- GNUExtensions
return_type: void
arguments:
- type: FILE *
- name: fclose
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: fdopen
standards:
- POSIX
return_type: FILE *
arguments:
- type: int
- type: const char *
- name: feof
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: feof_unlocked
standards:
- GNUExtensions
return_type: int
arguments:
- type: FILE *
- name: ferror
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: ferror_unlocked
standards:
- GNUExtensions
return_type: int
arguments:
- type: FILE *
- name: fflush
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: fgetc
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: fgetc_unlocked
standards:
- GNUExtensions
return_type: int
arguments:
- type: FILE *
- name: fgets
standards:
- stdc
return_type: char *
arguments:
- type: char *__restrict
- type: int
- type: FILE *__restrict
- name: fileno
standards:
- POSIX
return_type: int
arguments:
- type: FILE *
- name: flockfile
standards:
- POSIX
return_type: void
arguments:
- type: FILE *
- name: fopen
standards:
- stdc
return_type: FILE *
arguments:
- type: const char *
- type: const char *
- name: fopencookie
standards:
- GNUExtensions
return_type: FILE *
arguments:
- type: void *
- type: const char *
- type: cookie_io_functions_t
- name: fprintf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: '...'
- name: fputc
standards:
- stdc
return_type: int
arguments:
- type: int
- type: FILE *
- name: fputs
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: FILE *__restrict
- name: fread
standards:
- stdc
return_type: size_t
arguments:
- type: void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: fread_unlocked
standards:
- GNUExtensions
return_type: size_t
arguments:
- type: void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: fscanf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: '...'
- name: vfscanf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: va_list
- name: fseek
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- type: long
- type: int
- name: ftell
standards:
- stdc
return_type: long
arguments:
- type: FILE *
- name: funlockfile
standards:
- POSIX
return_type: void
arguments:
- type: FILE *
- name: fwrite
standards:
- stdc
return_type: size_t
arguments:
- type: const void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: fwrite_unlocked
standards:
- GNUExtensions
return_type: size_t
arguments:
- type: const void *__restrict
- type: size_t
- type: size_t
- type: FILE *__restrict
- name: getc
standards:
- stdc
return_type: int
arguments:
- type: FILE *
- name: getc_unlocked
standards:
- POSIX
return_type: int
arguments:
- type: FILE *
- name: getchar
standards:
- stdc
return_type: int
arguments: []
- name: getchar_unlocked
standards:
- POSIX
return_type: int
arguments: []
- name: printf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: '...'
- name: putc
standards:
- stdc
return_type: int
arguments:
- type: int
- type: FILE *
- name: putchar
standards:
- stdc
return_type: int
arguments:
- type: int
- name: puts
standards:
- stdc
return_type: int
arguments:
- type: const char *
- name: remove
standards:
- stdc
return_type: int
arguments:
- type: const char *
- name: rename
standards:
- stdc
return_type: int
arguments:
- type: const char *
- type: const char *
- name: scanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: '...'
- name: vscanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: va_list
- name: setbuf
standards:
- stdc
return_type: void
arguments:
- type: FILE *__restrict
- type: char *__restrict
- name: setvbuf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: char *__restrict
- type: int
- type: size_t
- name: snprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: '...'
- name: sprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: const char *__restrict
- type: '...'
- name: sscanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: const char *__restrict
- type: '...'
- name: ungetc
standards:
- stdc
return_type: int
arguments:
- type: int
- type: FILE *
- name: vasprintf
standards:
- GNUExtensions
return_type: int
arguments:
- type: char **__restrict
- type: const char *__restrict
- type: va_list
- name: vfprintf
standards:
- stdc
return_type: int
arguments:
- type: FILE *__restrict
- type: const char *__restrict
- type: va_list
- name: vprintf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: va_list
- name: vsnprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: size_t
- type: const char *__restrict
- type: va_list
- name: vsprintf
standards:
- stdc
return_type: int
arguments:
- type: char *__restrict
- type: const char *__restrict
- type: va_list
- name: vsscanf
standards:
- stdc
return_type: int
arguments:
- type: const char *__restrict
- type: const char *__restrict
- type: va_list