File: //home/ubuntu/neovim/build/src/nvim/auto/marktree.c.i
# 1 "/home/ubuntu/neovim/src/nvim/marktree.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 1 "<command-line>" 2
# 1 "/home/ubuntu/neovim/src/nvim/marktree.c"
# 45 "/home/ubuntu/neovim/src/nvim/marktree.c"
# 1 "/usr/include/assert.h" 1 3 4
# 35 "/usr/include/assert.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 461 "/usr/include/features.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 1 3 4
# 452 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 453 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/long-double.h" 1 3 4
# 454 "/usr/include/aarch64-linux-gnu/sys/cdefs.h" 2 3 4
# 462 "/usr/include/features.h" 2 3 4
# 485 "/usr/include/features.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/gnu/stubs.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 6 "/usr/include/aarch64-linux-gnu/gnu/stubs.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/gnu/stubs-lp64.h" 1 3 4
# 9 "/usr/include/aarch64-linux-gnu/gnu/stubs.h" 2 3 4
# 486 "/usr/include/features.h" 2 3 4
# 36 "/usr/include/assert.h" 2 3 4
# 66 "/usr/include/assert.h" 3 4
# 69 "/usr/include/assert.h" 3 4
extern void __assert_fail (const char *__assertion, const char *__file,
unsigned int __line, const char *__function)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
extern void __assert_perror_fail (int __errnum, const char *__file,
unsigned int __line, const char *__function)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
extern void __assert (const char *__assertion, const char *__file, int __line)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
# 46 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/usr/include/inttypes.h" 1 3 4
# 27 "/usr/include/inttypes.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stdint.h" 1 3 4
# 9 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stdint.h" 3 4
# 1 "/usr/include/stdint.h" 1 3 4
# 26 "/usr/include/stdint.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4
# 27 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/types.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/timesize.h" 1 3 4
# 19 "/usr/include/aarch64-linux-gnu/bits/timesize.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 20 "/usr/include/aarch64-linux-gnu/bits/timesize.h" 2 3 4
# 29 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef __int8_t __int_least8_t;
typedef __uint8_t __uint_least8_t;
typedef __int16_t __int_least16_t;
typedef __uint16_t __uint_least16_t;
typedef __int32_t __int_least32_t;
typedef __uint32_t __uint_least32_t;
typedef __int64_t __int_least64_t;
typedef __uint64_t __uint_least64_t;
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
# 141 "/usr/include/aarch64-linux-gnu/bits/types.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/typesizes.h" 1 3 4
# 142 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/time64.h" 1 3 4
# 143 "/usr/include/aarch64-linux-gnu/bits/types.h" 2 3 4
typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef int __daddr_t;
typedef int __key_t;
typedef int __clockid_t;
typedef void * __timer_t;
typedef int __blksize_t;
typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;
typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;
typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;
typedef long int __fsword_t;
typedef long int __ssize_t;
typedef long int __syscall_slong_t;
typedef unsigned long int __syscall_ulong_t;
typedef __off64_t __loff_t;
typedef char *__caddr_t;
typedef long int __intptr_t;
typedef unsigned int __socklen_t;
typedef int __sig_atomic_t;
# 28 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wchar.h" 1 3 4
# 29 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 30 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/stdint-intn.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/stdint-intn.h" 3 4
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
# 35 "/usr/include/stdint.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/stdint-uintn.h" 3 4
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
# 38 "/usr/include/stdint.h" 2 3 4
typedef __int_least8_t int_least8_t;
typedef __int_least16_t int_least16_t;
typedef __int_least32_t int_least32_t;
typedef __int_least64_t int_least64_t;
typedef __uint_least8_t uint_least8_t;
typedef __uint_least16_t uint_least16_t;
typedef __uint_least32_t uint_least32_t;
typedef __uint_least64_t uint_least64_t;
typedef signed char int_fast8_t;
typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
# 71 "/usr/include/stdint.h" 3 4
typedef unsigned char uint_fast8_t;
typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
# 87 "/usr/include/stdint.h" 3 4
typedef long int intptr_t;
typedef unsigned long int uintptr_t;
# 101 "/usr/include/stdint.h" 3 4
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
# 10 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stdint.h" 2 3 4
# 28 "/usr/include/inttypes.h" 2 3 4
typedef unsigned int __gwchar_t;
# 266 "/usr/include/inttypes.h" 3 4
typedef struct
{
long int quot;
long int rem;
} imaxdiv_t;
# 290 "/usr/include/inttypes.h" 3 4
extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern intmax_t strtoimax (const char *__restrict __nptr,
char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
extern uintmax_t strtoumax (const char *__restrict __nptr,
char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
__gwchar_t **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__));
extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
__gwchar_t ** __restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__));
# 432 "/usr/include/inttypes.h" 3 4
# 47 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/usr/include/stdio.h" 1 3 4
# 27 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4
# 28 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 209 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 34 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stdarg.h" 1 3 4
# 40 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 37 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h" 1 3 4
# 13 "/usr/include/aarch64-linux-gnu/bits/types/__mbstate_t.h" 3 4
typedef struct
{
int __count;
union
{
unsigned int __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 6 "/usr/include/aarch64-linux-gnu/bits/types/__fpos_t.h" 2 3 4
typedef struct _G_fpos_t
{
__off_t __pos;
__mbstate_t __state;
} __fpos_t;
# 40 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h" 1 3 4
# 10 "/usr/include/aarch64-linux-gnu/bits/types/__fpos64_t.h" 3 4
typedef struct _G_fpos64_t
{
__off64_t __pos;
__mbstate_t __state;
} __fpos64_t;
# 41 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__FILE.h" 1 3 4
struct _IO_FILE;
typedef struct _IO_FILE __FILE;
# 42 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/FILE.h" 1 3 4
struct _IO_FILE;
typedef struct _IO_FILE FILE;
# 43 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h" 1 3 4
# 35 "/usr/include/aarch64-linux-gnu/bits/types/struct_FILE.h" 3 4
struct _IO_FILE;
struct _IO_marker;
struct _IO_codecvt;
struct _IO_wide_data;
typedef void _IO_lock_t;
struct _IO_FILE
{
int _flags;
char *_IO_read_ptr;
char *_IO_read_end;
char *_IO_read_base;
char *_IO_write_base;
char *_IO_write_ptr;
char *_IO_write_end;
char *_IO_buf_base;
char *_IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _flags2;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
__off64_t _offset;
struct _IO_codecvt *_codecvt;
struct _IO_wide_data *_wide_data;
struct _IO_FILE *_freeres_list;
void *_freeres_buf;
size_t __pad5;
int _mode;
char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
};
# 44 "/usr/include/stdio.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/cookie_io_functions_t.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/types/cookie_io_functions_t.h" 3 4
typedef __ssize_t cookie_read_function_t (void *__cookie, char *__buf,
size_t __nbytes);
typedef __ssize_t cookie_write_function_t (void *__cookie, const char *__buf,
size_t __nbytes);
typedef int cookie_seek_function_t (void *__cookie, __off64_t *__pos, int __w);
typedef int cookie_close_function_t (void *__cookie);
typedef struct _IO_cookie_io_functions_t
{
cookie_read_function_t *read;
cookie_write_function_t *write;
cookie_seek_function_t *seek;
cookie_close_function_t *close;
} cookie_io_functions_t;
# 47 "/usr/include/stdio.h" 2 3 4
typedef __gnuc_va_list va_list;
# 63 "/usr/include/stdio.h" 3 4
typedef __off_t off_t;
typedef __off64_t off64_t;
typedef __ssize_t ssize_t;
typedef __fpos_t fpos_t;
typedef __fpos64_t fpos64_t;
# 133 "/usr/include/stdio.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/stdio_lim.h" 1 3 4
# 134 "/usr/include/stdio.h" 2 3 4
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
extern int renameat (int __oldfd, const char *__old, int __newfd,
const char *__new) __attribute__ ((__nothrow__ , __leaf__));
# 164 "/usr/include/stdio.h" 3 4
extern int renameat2 (int __oldfd, const char *__old, int __newfd,
const char *__new, unsigned int __flags) __attribute__ ((__nothrow__ , __leaf__));
extern FILE *tmpfile (void) ;
# 183 "/usr/include/stdio.h" 3 4
extern FILE *tmpfile64 (void) ;
extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
# 204 "/usr/include/stdio.h" 3 4
extern char *tempnam (const char *__dir, const char *__pfx)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
extern int fclose (FILE *__stream);
extern int fflush (FILE *__stream);
# 227 "/usr/include/stdio.h" 3 4
extern int fflush_unlocked (FILE *__stream);
# 237 "/usr/include/stdio.h" 3 4
extern int fcloseall (void);
# 246 "/usr/include/stdio.h" 3 4
extern FILE *fopen (const char *__restrict __filename,
const char *__restrict __modes) ;
extern FILE *freopen (const char *__restrict __filename,
const char *__restrict __modes,
FILE *__restrict __stream) ;
# 270 "/usr/include/stdio.h" 3 4
extern FILE *fopen64 (const char *__restrict __filename,
const char *__restrict __modes) ;
extern FILE *freopen64 (const char *__restrict __filename,
const char *__restrict __modes,
FILE *__restrict __stream) ;
extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ;
extern FILE *fopencookie (void *__restrict __magic_cookie,
const char *__restrict __modes,
cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__ , __leaf__)) ;
extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
__attribute__ ((__nothrow__ , __leaf__)) ;
extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
size_t __size) __attribute__ ((__nothrow__ , __leaf__));
extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
extern int fprintf (FILE *__restrict __stream,
const char *__restrict __format, ...);
extern int printf (const char *__restrict __format, ...);
extern int sprintf (char *__restrict __s,
const char *__restrict __format, ...) __attribute__ ((__nothrow__));
extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
__gnuc_va_list __arg);
extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
extern int vsprintf (char *__restrict __s, const char *__restrict __format,
__gnuc_va_list __arg) __attribute__ ((__nothrow__));
extern int snprintf (char *__restrict __s, size_t __maxlen,
const char *__restrict __format, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
__gnuc_va_list __arg)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) ;
extern int __asprintf (char **__restrict __ptr,
const char *__restrict __fmt, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
extern int asprintf (char **__restrict __ptr,
const char *__restrict __fmt, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) ;
extern int vdprintf (int __fd, const char *__restrict __fmt,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 2, 0)));
extern int dprintf (int __fd, const char *__restrict __fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int fscanf (FILE *__restrict __stream,
const char *__restrict __format, ...) ;
extern int scanf (const char *__restrict __format, ...) ;
extern int sscanf (const char *__restrict __s,
const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
;
extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
;
extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
;
# 432 "/usr/include/stdio.h" 3 4
extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0))) ;
extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 1, 0))) ;
extern int vsscanf (const char *__restrict __s,
const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
__attribute__ ((__format__ (__scanf__, 2, 0))) ;
extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
__attribute__ ((__format__ (__scanf__, 1, 0))) ;
extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
__attribute__ ((__format__ (__scanf__, 2, 0)));
# 485 "/usr/include/stdio.h" 3 4
extern int fgetc (FILE *__stream);
extern int getc (FILE *__stream);
extern int getchar (void);
extern int getc_unlocked (FILE *__stream);
extern int getchar_unlocked (void);
# 510 "/usr/include/stdio.h" 3 4
extern int fgetc_unlocked (FILE *__stream);
# 521 "/usr/include/stdio.h" 3 4
extern int fputc (int __c, FILE *__stream);
extern int putc (int __c, FILE *__stream);
extern int putchar (int __c);
# 537 "/usr/include/stdio.h" 3 4
extern int fputc_unlocked (int __c, FILE *__stream);
extern int putc_unlocked (int __c, FILE *__stream);
extern int putchar_unlocked (int __c);
extern int getw (FILE *__stream);
extern int putw (int __w, FILE *__stream);
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
;
# 587 "/usr/include/stdio.h" 3 4
extern char *fgets_unlocked (char *__restrict __s, int __n,
FILE *__restrict __stream) ;
# 603 "/usr/include/stdio.h" 3 4
extern __ssize_t __getdelim (char **__restrict __lineptr,
size_t *__restrict __n, int __delimiter,
FILE *__restrict __stream) ;
extern __ssize_t getdelim (char **__restrict __lineptr,
size_t *__restrict __n, int __delimiter,
FILE *__restrict __stream) ;
extern __ssize_t getline (char **__restrict __lineptr,
size_t *__restrict __n,
FILE *__restrict __stream) ;
extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
extern int puts (const char *__s);
extern int ungetc (int __c, FILE *__stream);
extern size_t fread (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s);
# 662 "/usr/include/stdio.h" 3 4
extern int fputs_unlocked (const char *__restrict __s,
FILE *__restrict __stream);
# 673 "/usr/include/stdio.h" 3 4
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream);
extern int fseek (FILE *__stream, long int __off, int __whence);
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream);
# 707 "/usr/include/stdio.h" 3 4
extern int fseeko (FILE *__stream, __off_t __off, int __whence);
extern __off_t ftello (FILE *__stream) ;
# 731 "/usr/include/stdio.h" 3 4
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
extern int fsetpos (FILE *__stream, const fpos_t *__pos);
# 750 "/usr/include/stdio.h" 3 4
extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
extern __off64_t ftello64 (FILE *__stream) ;
extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void perror (const char *__s);
# 1 "/usr/include/aarch64-linux-gnu/bits/sys_errlist.h" 1 3 4
# 26 "/usr/include/aarch64-linux-gnu/bits/sys_errlist.h" 3 4
extern int sys_nerr;
extern const char *const sys_errlist[];
extern int _sys_nerr;
extern const char *const _sys_errlist[];
# 782 "/usr/include/stdio.h" 2 3 4
extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
# 800 "/usr/include/stdio.h" 3 4
extern FILE *popen (const char *__command, const char *__modes) ;
extern int pclose (FILE *__stream);
extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));
extern char *cuserid (char *__s);
struct obstack;
extern int obstack_printf (struct obstack *__restrict __obstack,
const char *__restrict __format, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
extern int obstack_vprintf (struct obstack *__restrict __obstack,
const char *__restrict __format,
__gnuc_va_list __args)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
# 858 "/usr/include/stdio.h" 3 4
extern int __uflow (FILE *);
extern int __overflow (FILE *, int);
# 873 "/usr/include/stdio.h" 3 4
# 48 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/usr/include/stdlib.h" 1 3 4
# 25 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4
# 26 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 321 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 3 4
typedef unsigned int wchar_t;
# 32 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/waitflags.h" 1 3 4
# 52 "/usr/include/aarch64-linux-gnu/bits/waitflags.h" 3 4
typedef enum
{
P_ALL,
P_PID,
P_PGID
} idtype_t;
# 40 "/usr/include/stdlib.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/waitstatus.h" 1 3 4
# 41 "/usr/include/stdlib.h" 2 3 4
# 55 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/long-double.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 2 3 4
# 95 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/long-double.h" 1 3 4
# 25 "/usr/include/aarch64-linux-gnu/bits/floatn-common.h" 2 3 4
# 96 "/usr/include/aarch64-linux-gnu/bits/floatn.h" 2 3 4
# 56 "/usr/include/stdlib.h" 2 3 4
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# 97 "/usr/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
extern double atof (const char *__nptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern int atoi (const char *__nptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern long int atol (const char *__nptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
__extension__ extern long long int atoll (const char *__nptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern double strtod (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern float strtof (const char *__restrict __nptr,
char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern long double strtold (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 140 "/usr/include/stdlib.h" 3 4
extern _Float32 strtof32 (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern _Float64 strtof64 (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern _Float128 strtof128 (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern _Float32x strtof32x (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern _Float64x strtof64x (const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 176 "/usr/include/stdlib.h" 3 4
extern long int strtol (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern unsigned long int strtoul (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoq (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoll (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int strfromd (char *__dest, size_t __size, const char *__format,
double __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int strfromf (char *__dest, size_t __size, const char *__format,
float __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int strfroml (char *__dest, size_t __size, const char *__format,
long double __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
# 232 "/usr/include/stdlib.h" 3 4
extern int strfromf32 (char *__dest, size_t __size, const char * __format,
_Float32 __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int strfromf64 (char *__dest, size_t __size, const char * __format,
_Float64 __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int strfromf128 (char *__dest, size_t __size, const char * __format,
_Float128 __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int strfromf32x (char *__dest, size_t __size, const char * __format,
_Float32x __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int strfromf64x (char *__dest, size_t __size, const char * __format,
_Float64x __f)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
# 272 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/locale_t.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/bits/types/locale_t.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/types/__locale_t.h" 3 4
struct __locale_struct
{
struct __locale_data *__locales[13];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
const char *__names[13];
};
typedef struct __locale_struct *__locale_t;
# 23 "/usr/include/aarch64-linux-gnu/bits/types/locale_t.h" 2 3 4
typedef __locale_t locale_t;
# 273 "/usr/include/stdlib.h" 2 3 4
extern long int strtol_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base,
locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));
extern unsigned long int strtoul_l (const char *__restrict __nptr,
char **__restrict __endptr,
int __base, locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern long long int strtoll_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr,
char **__restrict __endptr,
int __base, locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4)));
extern double strtod_l (const char *__restrict __nptr,
char **__restrict __endptr, locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern float strtof_l (const char *__restrict __nptr,
char **__restrict __endptr, locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern long double strtold_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
# 316 "/usr/include/stdlib.h" 3 4
extern _Float32 strtof32_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern _Float64 strtof64_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern _Float128 strtof128_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern _Float32x strtof32x_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern _Float64x strtof64x_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
# 385 "/usr/include/stdlib.h" 3 4
extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
extern long int a64l (const char *__s)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
# 1 "/usr/include/aarch64-linux-gnu/sys/types.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
typedef __ino64_t ino64_t;
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
# 97 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4
typedef __pid_t pid_t;
typedef __id_t id_t;
# 114 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "/usr/include/aarch64-linux-gnu/bits/types/clock_t.h" 1 3 4
typedef __clock_t clock_t;
# 127 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/clockid_t.h" 1 3 4
typedef __clockid_t clockid_t;
# 129 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/time_t.h" 1 3 4
typedef __time_t time_t;
# 130 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/timer_t.h" 1 3 4
typedef __timer_t timer_t;
# 131 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
typedef __useconds_t useconds_t;
typedef __suseconds_t suseconds_t;
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 145 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
typedef __uint8_t u_int8_t;
typedef __uint16_t u_int16_t;
typedef __uint32_t u_int32_t;
typedef __uint64_t u_int64_t;
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 176 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4
# 1 "/usr/include/endian.h" 1 3 4
# 24 "/usr/include/endian.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/endian.h" 1 3 4
# 35 "/usr/include/aarch64-linux-gnu/bits/endian.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/endianness.h" 1 3 4
# 36 "/usr/include/aarch64-linux-gnu/bits/endian.h" 2 3 4
# 25 "/usr/include/endian.h" 2 3 4
# 35 "/usr/include/endian.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 1 3 4
# 33 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 3 4
static __inline __uint16_t
__bswap_16 (__uint16_t __bsx)
{
return __builtin_bswap16 (__bsx);
}
static __inline __uint32_t
__bswap_32 (__uint32_t __bsx)
{
return __builtin_bswap32 (__bsx);
}
# 69 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 3 4
__extension__ static __inline __uint64_t
__bswap_64 (__uint64_t __bsx)
{
return __builtin_bswap64 (__bsx);
}
# 36 "/usr/include/endian.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/uintn-identity.h" 1 3 4
# 32 "/usr/include/aarch64-linux-gnu/bits/uintn-identity.h" 3 4
static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
return __x;
}
static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
return __x;
}
static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
return __x;
}
# 37 "/usr/include/endian.h" 2 3 4
# 177 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/sys/select.h" 1 3 4
# 30 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/select.h" 1 3 4
# 31 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__sigset_t.h" 1 3 4
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 5 "/usr/include/aarch64-linux-gnu/bits/types/sigset_t.h" 2 3 4
typedef __sigset_t sigset_t;
# 34 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_timeval.h" 1 3 4
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 38 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h" 1 3 4
# 10 "/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h" 3 4
struct timespec
{
__time_t tv_sec;
__syscall_slong_t tv_nsec;
# 26 "/usr/include/aarch64-linux-gnu/bits/types/struct_timespec.h" 3 4
};
# 40 "/usr/include/aarch64-linux-gnu/sys/select.h" 2 3 4
# 49 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
typedef long int __fd_mask;
# 59 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
typedef struct
{
__fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 91 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
# 101 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout);
# 113 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask);
# 126 "/usr/include/aarch64-linux-gnu/sys/select.h" 3 4
# 180 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 219 "/usr/include/aarch64-linux-gnu/sys/types.h" 3 4
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
# 1 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 1 3 4
# 44 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes-arch.h" 1 3 4
# 45 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4
typedef struct __pthread_internal_list
{
struct __pthread_internal_list *__prev;
struct __pthread_internal_list *__next;
} __pthread_list_t;
typedef struct __pthread_internal_slist
{
struct __pthread_internal_slist *__next;
} __pthread_slist_t;
# 74 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 3 4
struct __pthread_mutex_s
{
int __lock ;
unsigned int __count;
int __owner;
unsigned int __nusers;
# 58 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 3 4
int __kind;
int __spins;
__pthread_list_t __list;
# 74 "/usr/include/aarch64-linux-gnu/bits/struct_mutex.h" 3 4
};
# 75 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4
# 87 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/struct_rwlock.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/struct_rwlock.h" 3 4
struct __pthread_rwlock_arch_t
{
unsigned int __readers;
unsigned int __writers;
unsigned int __wrphase_futex;
unsigned int __writers_futex;
unsigned int __pad3;
unsigned int __pad4;
int __cur_writer;
int __shared;
unsigned long int __pad1;
unsigned long int __pad2;
unsigned int __flags;
};
# 88 "/usr/include/aarch64-linux-gnu/bits/thread-shared-types.h" 2 3 4
struct __pthread_cond_s
{
__extension__ union
{
__extension__ unsigned long long int __wseq;
struct
{
unsigned int __low;
unsigned int __high;
} __wseq32;
};
__extension__ union
{
__extension__ unsigned long long int __g1_start;
struct
{
unsigned int __low;
unsigned int __high;
} __g1_start32;
};
unsigned int __g_refs[2] ;
unsigned int __g_size[2];
unsigned int __g1_orig_size;
unsigned int __wrefs;
unsigned int __g_signals[2];
};
# 24 "/usr/include/aarch64-linux-gnu/bits/pthreadtypes.h" 2 3 4
typedef unsigned long int pthread_t;
typedef union
{
char __size[8];
int __align;
} pthread_mutexattr_t;
typedef union
{
char __size[8];
int __align;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef int pthread_once_t;
union pthread_attr_t
{
char __size[64];
long int __align;
};
typedef union pthread_attr_t pthread_attr_t;
typedef union
{
struct __pthread_mutex_s __data;
char __size[48];
long int __align;
} pthread_mutex_t;
typedef union
{
struct __pthread_cond_s __data;
char __size[48];
__extension__ long long int __align;
} pthread_cond_t;
typedef union
{
struct __pthread_rwlock_arch_t __data;
char __size[56];
long int __align;
} pthread_rwlock_t;
typedef union
{
char __size[8];
long int __align;
} pthread_rwlockattr_t;
typedef volatile int pthread_spinlock_t;
typedef union
{
char __size[32];
long int __align;
} pthread_barrier_t;
typedef union
{
char __size[8];
int __align;
} pthread_barrierattr_t;
# 228 "/usr/include/aarch64-linux-gnu/sys/types.h" 2 3 4
# 395 "/usr/include/stdlib.h" 2 3 4
extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int srandom_r (unsigned int __seed, struct random_data *__buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
extern long int nrand48 (unsigned short int __xsubi[3])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
extern long int jrand48 (unsigned short int __xsubi[3])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
__extension__ unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
__attribute__ ((__alloc_size__ (1))) ;
extern void *calloc (size_t __nmemb, size_t __size)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
extern void *realloc (void *__ptr, size_t __size)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
__attribute__ ((__alloc_size__ (2, 3)));
extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/alloca.h" 1 3 4
# 24 "/usr/include/alloca.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 25 "/usr/include/alloca.h" 2 3 4
extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
# 569 "/usr/include/stdlib.h" 2 3 4
extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
__attribute__ ((__alloc_size__ (1))) ;
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern void *aligned_alloc (size_t __alignment, size_t __size)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (2))) ;
extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern char *secure_getenv (const char *__name)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int setenv (const char *__name, const char *__value, int __replace)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
# 675 "/usr/include/stdlib.h" 3 4
extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 688 "/usr/include/stdlib.h" 3 4
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 698 "/usr/include/stdlib.h" 3 4
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 710 "/usr/include/stdlib.h" 3 4
extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
# 720 "/usr/include/stdlib.h" 3 4
extern int mkstemps64 (char *__template, int __suffixlen)
__attribute__ ((__nonnull__ (1))) ;
# 731 "/usr/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 742 "/usr/include/stdlib.h" 3 4
extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 752 "/usr/include/stdlib.h" 3 4
extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 762 "/usr/include/stdlib.h" 3 4
extern int mkostemps (char *__template, int __suffixlen, int __flags)
__attribute__ ((__nonnull__ (1))) ;
# 774 "/usr/include/stdlib.h" 3 4
extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
__attribute__ ((__nonnull__ (1))) ;
# 784 "/usr/include/stdlib.h" 3 4
extern int system (const char *__command) ;
extern char *canonicalize_file_name (const char *__name)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 800 "/usr/include/stdlib.h" 3 4
extern char *realpath (const char *__restrict __name,
char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
typedef int (*__compar_fn_t) (const void *, const void *);
typedef __compar_fn_t comparison_fn_t;
typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
extern void *bsearch (const void *__key, const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar)
__attribute__ ((__nonnull__ (1, 2, 5))) ;
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
__compar_d_fn_t __compar, void *__arg)
__attribute__ ((__nonnull__ (1, 4)));
extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
__extension__ extern long long int llabs (long long int __x)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
extern div_t div (int __numer, int __denom)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
# 872 "/usr/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *gcvt (double __value, int __ndigit, char *__buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
extern int mbtowc (wchar_t *__restrict __pwc,
const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
extern size_t wcstombs (char *__restrict __s,
const wchar_t *__restrict __pwcs, size_t __n)
__attribute__ ((__nothrow__ , __leaf__));
extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 957 "/usr/include/stdlib.h" 3 4
extern int getsubopt (char **__restrict __optionp,
char *const *__restrict __tokens,
char **__restrict __valuep)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
extern int posix_openpt (int __oflag) ;
extern int grantpt (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern int unlockpt (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern char *ptsname (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int getpt (void);
extern int getloadavg (double __loadavg[], int __nelem)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 1013 "/usr/include/stdlib.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/stdlib-float.h" 1 3 4
# 1014 "/usr/include/stdlib.h" 2 3 4
# 1023 "/usr/include/stdlib.h" 3 4
# 49 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/usr/include/string.h" 1 3 4
# 26 "/usr/include/string.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4
# 27 "/usr/include/string.h" 2 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 34 "/usr/include/string.h" 2 3 4
# 43 "/usr/include/string.h" 3 4
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memmove (void *__dest, const void *__src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
int __c, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int memcmp (const void *__s1, const void *__s2, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 91 "/usr/include/string.h" 3 4
extern void *memchr (const void *__s, int __c, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 104 "/usr/include/string.h" 3 4
extern void *rawmemchr (const void *__s, int __c)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 115 "/usr/include/string.h" 3 4
extern void *memrchr (const void *__s, int __c, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strcat (char *__restrict __dest, const char *__restrict __src)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strncat (char *__restrict __dest, const char *__restrict __src,
size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcmp (const char *__s1, const char *__s2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncmp (const char *__s1, const char *__s2, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcoll (const char *__s1, const char *__s2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strxfrm (char *__restrict __dest,
const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
extern char *strdup (const char *__s)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
extern char *strndup (const char *__string, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 226 "/usr/include/string.h" 3 4
extern char *strchr (const char *__s, int __c)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 253 "/usr/include/string.h" 3 4
extern char *strrchr (const char *__s, int __c)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 266 "/usr/include/string.h" 3 4
extern char *strchrnul (const char *__s, int __c)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern size_t strcspn (const char *__s, const char *__reject)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strspn (const char *__s, const char *__accept)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 303 "/usr/include/string.h" 3 4
extern char *strpbrk (const char *__s, const char *__accept)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 330 "/usr/include/string.h" 3 4
extern char *strstr (const char *__haystack, const char *__needle)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strtok (char *__restrict __s, const char *__restrict __delim)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern char *__strtok_r (char *__restrict __s,
const char *__restrict __delim,
char **__restrict __save_ptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
char **__restrict __save_ptr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
# 360 "/usr/include/string.h" 3 4
extern char *strcasestr (const char *__haystack, const char *__needle)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *memmem (const void *__haystack, size_t __haystacklen,
const void *__needle, size_t __needlelen)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
extern void *__mempcpy (void *__restrict __dest,
const void *__restrict __src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *mempcpy (void *__restrict __dest,
const void *__restrict __src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strlen (const char *__s)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern size_t strnlen (const char *__string, size_t __maxlen)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
# 421 "/usr/include/string.h" 3 4
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/strings.h" 1 3 4
# 23 "/usr/include/strings.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 24 "/usr/include/strings.h" 2 3 4
extern int bcmp (const void *__s1, const void *__s2, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern void bcopy (const void *__src, void *__dest, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 68 "/usr/include/strings.h" 3 4
extern char *index (const char *__s, int __c)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 96 "/usr/include/strings.h" 3 4
extern char *rindex (const char *__s, int __c)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern int strcasecmp (const char *__s1, const char *__s2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern int strncasecmp_l (const char *__s1, const char *__s2,
size_t __n, locale_t __loc)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
# 433 "/usr/include/string.h" 2 3 4
extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern char *strsep (char **__restrict __stringp,
const char *__restrict __delim)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *__stpncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *stpncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strverscmp (const char *__s1, const char *__s2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strfry (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 487 "/usr/include/string.h" 3 4
extern char *basename (const char *__filename) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 499 "/usr/include/string.h" 3 4
# 50 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 1
# 56 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
# 1 "/home/ubuntu/neovim/.deps/usr/include/uv/errno.h" 1
# 25 "/home/ubuntu/neovim/.deps/usr/include/uv/errno.h"
# 1 "/usr/include/errno.h" 1 3 4
# 28 "/usr/include/errno.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/errno.h" 1 3 4
# 26 "/usr/include/aarch64-linux-gnu/bits/errno.h" 3 4
# 1 "/usr/include/linux/errno.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/errno.h" 1 3 4
# 1 "/usr/include/asm-generic/errno.h" 1 3 4
# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
# 6 "/usr/include/asm-generic/errno.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/errno.h" 2 3 4
# 1 "/usr/include/linux/errno.h" 2 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/errno.h" 2 3 4
# 29 "/usr/include/errno.h" 2 3 4
extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern char *program_invocation_name;
extern char *program_invocation_short_name;
# 1 "/usr/include/aarch64-linux-gnu/bits/types/error_t.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/bits/types/error_t.h" 3 4
typedef int error_t;
# 49 "/usr/include/errno.h" 2 3 4
# 26 "/home/ubuntu/neovim/.deps/usr/include/uv/errno.h" 2
# 57 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 2
# 1 "/home/ubuntu/neovim/.deps/usr/include/uv/version.h" 1
# 58 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 2
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 143 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 415 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 3 4
typedef struct {
long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
# 426 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 3 4
} max_align_t;
# 59 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 2
# 63 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
struct uv__queue {
struct uv__queue* next;
struct uv__queue* prev;
};
# 1 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 1
# 26 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h"
# 1 "/usr/include/aarch64-linux-gnu/sys/stat.h" 1 3 4
# 99 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/stat.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/stat.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/stat.h" 2 3 4
# 58 "/usr/include/aarch64-linux-gnu/bits/stat.h" 3 4
# 58 "/usr/include/aarch64-linux-gnu/bits/stat.h" 3 4
struct stat
{
__dev_t st_dev;
__ino_t st_ino;
__mode_t st_mode;
__nlink_t st_nlink;
__uid_t st_uid;
__gid_t st_gid;
__dev_t st_rdev;
__dev_t __pad1;
__off_t st_size;
__blksize_t st_blksize;
int __pad2;
__blkcnt_t st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
# 93 "/usr/include/aarch64-linux-gnu/bits/stat.h" 3 4
int __glibc_reserved[2];
};
struct stat64
{
__dev_t st_dev;
__ino64_t st_ino;
__mode_t st_mode;
__nlink_t st_nlink;
__uid_t st_uid;
__gid_t st_gid;
__dev_t st_rdev;
__dev_t __pad1;
__off64_t st_size;
__blksize_t st_blksize;
int __pad2;
__blkcnt64_t st_blocks;
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
# 131 "/usr/include/aarch64-linux-gnu/bits/stat.h" 3 4
int __glibc_reserved[2];
};
# 102 "/usr/include/aarch64-linux-gnu/sys/stat.h" 2 3 4
# 205 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
extern int stat (const char *__restrict __file,
struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
# 224 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
extern int stat64 (const char *__restrict __file,
struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int fstatat (int __fd, const char *__restrict __file,
struct stat *__restrict __buf, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
# 249 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
extern int fstatat64 (int __fd, const char *__restrict __file,
struct stat64 *__restrict __buf, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int lstat (const char *__restrict __file,
struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
# 272 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
extern int lstat64 (const char *__restrict __file,
struct stat64 *__restrict __buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int chmod (const char *__file, __mode_t __mode)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int lchmod (const char *__file, __mode_t __mode)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__));
extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__));
extern __mode_t getumask (void) __attribute__ ((__nothrow__ , __leaf__));
extern int mkdir (const char *__path, __mode_t __mode)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int mknodat (int __fd, const char *__path, __mode_t __mode,
__dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int mkfifo (const char *__path, __mode_t __mode)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int utimensat (int __fd, const char *__path,
const struct timespec __times[2],
int __flags)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__));
# 395 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int __xstat (int __ver, const char *__filename,
struct stat *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __lxstat (int __ver, const char *__filename,
struct stat *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __fxstatat (int __ver, int __fildes, const char *__filename,
struct stat *__stat_buf, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4)));
# 428 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int __xstat64 (int __ver, const char *__filename,
struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __lxstat64 (int __ver, const char *__filename,
struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int __fxstatat64 (int __ver, int __fildes, const char *__filename,
struct stat64 *__stat_buf, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4)));
extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
__dev_t *__dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
extern int __xmknodat (int __ver, int __fd, const char *__path,
__mode_t __mode, __dev_t *__dev)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 5)));
# 1 "/usr/include/aarch64-linux-gnu/bits/statx.h" 1 3 4
# 31 "/usr/include/aarch64-linux-gnu/bits/statx.h" 3 4
# 1 "/usr/include/linux/stat.h" 1 3 4
# 1 "/usr/include/linux/types.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/types.h" 1 3 4
# 1 "/usr/include/asm-generic/types.h" 1 3 4
# 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4
# 12 "/usr/include/asm-generic/int-ll64.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/bitsperlong.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/asm/bitsperlong.h" 3 4
# 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/asm/bitsperlong.h" 2 3 4
# 13 "/usr/include/asm-generic/int-ll64.h" 2 3 4
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
# 8 "/usr/include/asm-generic/types.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/types.h" 2 3 4
# 6 "/usr/include/linux/types.h" 2 3 4
# 1 "/usr/include/linux/posix_types.h" 1 3 4
# 1 "/usr/include/linux/stddef.h" 1 3 4
# 6 "/usr/include/linux/posix_types.h" 2 3 4
# 25 "/usr/include/linux/posix_types.h" 3 4
typedef struct {
unsigned long fds_bits[1024 / (8 * sizeof(long))];
} __kernel_fd_set;
typedef void (*__kernel_sighandler_t)(int);
typedef int __kernel_key_t;
typedef int __kernel_mqd_t;
# 1 "/usr/include/aarch64-linux-gnu/asm/posix_types.h" 1 3 4
typedef unsigned short __kernel_old_uid_t;
typedef unsigned short __kernel_old_gid_t;
# 1 "/usr/include/asm-generic/posix_types.h" 1 3 4
# 15 "/usr/include/asm-generic/posix_types.h" 3 4
typedef long __kernel_long_t;
typedef unsigned long __kernel_ulong_t;
typedef __kernel_ulong_t __kernel_ino_t;
typedef unsigned int __kernel_mode_t;
typedef int __kernel_pid_t;
typedef int __kernel_ipc_pid_t;
typedef unsigned int __kernel_uid_t;
typedef unsigned int __kernel_gid_t;
typedef __kernel_long_t __kernel_suseconds_t;
typedef int __kernel_daddr_t;
typedef unsigned int __kernel_uid32_t;
typedef unsigned int __kernel_gid32_t;
# 59 "/usr/include/asm-generic/posix_types.h" 3 4
typedef unsigned int __kernel_old_dev_t;
# 72 "/usr/include/asm-generic/posix_types.h" 3 4
typedef __kernel_ulong_t __kernel_size_t;
typedef __kernel_long_t __kernel_ssize_t;
typedef __kernel_long_t __kernel_ptrdiff_t;
typedef struct {
int val[2];
} __kernel_fsid_t;
typedef __kernel_long_t __kernel_off_t;
typedef long long __kernel_loff_t;
typedef __kernel_long_t __kernel_time_t;
typedef long long __kernel_time64_t;
typedef __kernel_long_t __kernel_clock_t;
typedef int __kernel_timer_t;
typedef int __kernel_clockid_t;
typedef char * __kernel_caddr_t;
typedef unsigned short __kernel_uid16_t;
typedef unsigned short __kernel_gid16_t;
# 10 "/usr/include/aarch64-linux-gnu/asm/posix_types.h" 2 3 4
# 37 "/usr/include/linux/posix_types.h" 2 3 4
# 10 "/usr/include/linux/types.h" 2 3 4
# 24 "/usr/include/linux/types.h" 3 4
typedef __u16 __le16;
typedef __u16 __be16;
typedef __u32 __le32;
typedef __u32 __be32;
typedef __u64 __le64;
typedef __u64 __be64;
typedef __u16 __sum16;
typedef __u32 __wsum;
# 47 "/usr/include/linux/types.h" 3 4
typedef unsigned __poll_t;
# 6 "/usr/include/linux/stat.h" 2 3 4
# 56 "/usr/include/linux/stat.h" 3 4
struct statx_timestamp {
__s64 tv_sec;
__u32 tv_nsec;
__s32 __reserved;
};
# 99 "/usr/include/linux/stat.h" 3 4
struct statx {
__u32 stx_mask;
__u32 stx_blksize;
__u64 stx_attributes;
__u32 stx_nlink;
__u32 stx_uid;
__u32 stx_gid;
__u16 stx_mode;
__u16 __spare0[1];
__u64 stx_ino;
__u64 stx_size;
__u64 stx_blocks;
__u64 stx_attributes_mask;
struct statx_timestamp stx_atime;
struct statx_timestamp stx_btime;
struct statx_timestamp stx_ctime;
struct statx_timestamp stx_mtime;
__u32 stx_rdev_major;
__u32 stx_rdev_minor;
__u32 stx_dev_major;
__u32 stx_dev_minor;
__u64 __spare2[14];
};
# 32 "/usr/include/aarch64-linux-gnu/bits/statx.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/statx-generic.h" 1 3 4
# 25 "/usr/include/aarch64-linux-gnu/bits/statx-generic.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_statx_timestamp.h" 1 3 4
# 26 "/usr/include/aarch64-linux-gnu/bits/statx-generic.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_statx.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/statx-generic.h" 2 3 4
# 53 "/usr/include/aarch64-linux-gnu/bits/statx-generic.h" 3 4
int statx (int __dirfd, const char *__restrict __path, int __flags,
unsigned int __mask, struct statx *__restrict __buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 5)));
# 39 "/usr/include/aarch64-linux-gnu/bits/statx.h" 2 3 4
# 447 "/usr/include/aarch64-linux-gnu/sys/stat.h" 2 3 4
# 534 "/usr/include/aarch64-linux-gnu/sys/stat.h" 3 4
# 27 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/fcntl.h" 1 3 4
# 28 "/usr/include/fcntl.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/fcntl.h" 1 3 4
# 40 "/usr/include/aarch64-linux-gnu/bits/fcntl.h" 3 4
struct flock
{
short int l_type;
short int l_whence;
__off_t l_start;
__off_t l_len;
__pid_t l_pid;
};
struct flock64
{
short int l_type;
short int l_whence;
__off64_t l_start;
__off64_t l_len;
__pid_t l_pid;
};
# 1 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 1 3 4
# 38 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_iovec.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/types/struct_iovec.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/types/struct_iovec.h" 2 3 4
struct iovec
{
void *iov_base;
size_t iov_len;
};
# 39 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 2 3 4
# 265 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 3 4
enum __pid_type
{
F_OWNER_TID = 0,
F_OWNER_PID,
F_OWNER_PGRP,
F_OWNER_GID = F_OWNER_PGRP
};
struct f_owner_ex
{
enum __pid_type type;
__pid_t pid;
};
# 353 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 3 4
# 1 "/usr/include/linux/falloc.h" 1 3 4
# 354 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 2 3 4
struct file_handle
{
unsigned int handle_bytes;
int handle_type;
unsigned char f_handle[0];
};
# 392 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 3 4
extern __ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
__attribute__ ((__nothrow__ , __leaf__));
extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count,
unsigned int __flags);
extern __ssize_t vmsplice (int __fdout, const struct iovec *__iov,
size_t __count, unsigned int __flags);
extern __ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
__off64_t *__offout, size_t __len,
unsigned int __flags);
extern __ssize_t tee (int __fdin, int __fdout, size_t __len,
unsigned int __flags);
extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
# 447 "/usr/include/aarch64-linux-gnu/bits/fcntl-linux.h" 3 4
extern int fallocate64 (int __fd, int __mode, __off64_t __offset,
__off64_t __len);
extern int name_to_handle_at (int __dfd, const char *__name,
struct file_handle *__handle, int *__mnt_id,
int __flags) __attribute__ ((__nothrow__ , __leaf__));
extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle,
int __flags);
# 61 "/usr/include/aarch64-linux-gnu/bits/fcntl.h" 2 3 4
# 36 "/usr/include/fcntl.h" 2 3 4
# 78 "/usr/include/fcntl.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/stat.h" 1 3 4
# 79 "/usr/include/fcntl.h" 2 3 4
# 148 "/usr/include/fcntl.h" 3 4
extern int fcntl (int __fd, int __cmd, ...);
# 157 "/usr/include/fcntl.h" 3 4
extern int fcntl64 (int __fd, int __cmd, ...);
# 168 "/usr/include/fcntl.h" 3 4
extern int open (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
# 178 "/usr/include/fcntl.h" 3 4
extern int open64 (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
# 192 "/usr/include/fcntl.h" 3 4
extern int openat (int __fd, const char *__file, int __oflag, ...)
__attribute__ ((__nonnull__ (2)));
# 203 "/usr/include/fcntl.h" 3 4
extern int openat64 (int __fd, const char *__file, int __oflag, ...)
__attribute__ ((__nonnull__ (2)));
# 214 "/usr/include/fcntl.h" 3 4
extern int creat (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
# 224 "/usr/include/fcntl.h" 3 4
extern int creat64 (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
# 243 "/usr/include/fcntl.h" 3 4
extern int lockf (int __fd, int __cmd, off_t __len);
# 252 "/usr/include/fcntl.h" 3 4
extern int lockf64 (int __fd, int __cmd, off64_t __len);
extern int posix_fadvise (int __fd, off_t __offset, off_t __len,
int __advise) __attribute__ ((__nothrow__ , __leaf__));
# 272 "/usr/include/fcntl.h" 3 4
extern int posix_fadvise64 (int __fd, off64_t __offset, off64_t __len,
int __advise) __attribute__ ((__nothrow__ , __leaf__));
# 282 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate (int __fd, off_t __offset, off_t __len);
# 293 "/usr/include/fcntl.h" 3 4
extern int posix_fallocate64 (int __fd, off64_t __offset, off64_t __len);
# 304 "/usr/include/fcntl.h" 3 4
# 28 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/dirent.h" 1 3 4
# 27 "/usr/include/dirent.h" 3 4
# 61 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/dirent.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/bits/dirent.h" 3 4
struct dirent
{
__ino_t d_ino;
__off_t d_off;
unsigned short int d_reclen;
unsigned char d_type;
char d_name[256];
};
struct dirent64
{
__ino64_t d_ino;
__off64_t d_off;
unsigned short int d_reclen;
unsigned char d_type;
char d_name[256];
};
# 62 "/usr/include/dirent.h" 2 3 4
# 97 "/usr/include/dirent.h" 3 4
enum
{
DT_UNKNOWN = 0,
DT_FIFO = 1,
DT_CHR = 2,
DT_DIR = 4,
DT_BLK = 6,
DT_REG = 8,
DT_LNK = 10,
DT_SOCK = 12,
DT_WHT = 14
};
# 127 "/usr/include/dirent.h" 3 4
typedef struct __dirstream DIR;
extern DIR *opendir (const char *__name) __attribute__ ((__nonnull__ (1)));
extern DIR *fdopendir (int __fd);
extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
# 162 "/usr/include/dirent.h" 3 4
extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
# 173 "/usr/include/dirent.h" 3 4
extern struct dirent64 *readdir64 (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
# 183 "/usr/include/dirent.h" 3 4
extern int readdir_r (DIR *__restrict __dirp,
struct dirent *__restrict __entry,
struct dirent **__restrict __result)
__attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__deprecated__));
# 201 "/usr/include/dirent.h" 3 4
extern int readdir64_r (DIR *__restrict __dirp,
struct dirent64 *__restrict __entry,
struct dirent64 **__restrict __result)
__attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__deprecated__));
extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 233 "/usr/include/dirent.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 2 3 4
# 161 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/local_lim.h" 1 3 4
# 39 "/usr/include/aarch64-linux-gnu/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 40 "/usr/include/aarch64-linux-gnu/bits/local_lim.h" 2 3 4
# 162 "/usr/include/aarch64-linux-gnu/bits/posix1_lim.h" 2 3 4
# 234 "/usr/include/dirent.h" 2 3 4
# 245 "/usr/include/dirent.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 246 "/usr/include/dirent.h" 2 3 4
# 255 "/usr/include/dirent.h" 3 4
extern int scandir (const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (const struct dirent *),
int (*__cmp) (const struct dirent **,
const struct dirent **))
__attribute__ ((__nonnull__ (1, 2)));
# 278 "/usr/include/dirent.h" 3 4
extern int scandir64 (const char *__restrict __dir,
struct dirent64 ***__restrict __namelist,
int (*__selector) (const struct dirent64 *),
int (*__cmp) (const struct dirent64 **,
const struct dirent64 **))
__attribute__ ((__nonnull__ (1, 2)));
# 293 "/usr/include/dirent.h" 3 4
extern int scandirat (int __dfd, const char *__restrict __dir,
struct dirent ***__restrict __namelist,
int (*__selector) (const struct dirent *),
int (*__cmp) (const struct dirent **,
const struct dirent **))
__attribute__ ((__nonnull__ (2, 3)));
# 315 "/usr/include/dirent.h" 3 4
extern int scandirat64 (int __dfd, const char *__restrict __dir,
struct dirent64 ***__restrict __namelist,
int (*__selector) (const struct dirent64 *),
int (*__cmp) (const struct dirent64 **,
const struct dirent64 **))
__attribute__ ((__nonnull__ (2, 3)));
extern int alphasort (const struct dirent **__e1,
const struct dirent **__e2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 340 "/usr/include/dirent.h" 3 4
extern int alphasort64 (const struct dirent64 **__e1,
const struct dirent64 **__e2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 353 "/usr/include/dirent.h" 3 4
extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
size_t __nbytes,
__off_t *__restrict __basep)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
# 370 "/usr/include/dirent.h" 3 4
extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
size_t __nbytes,
__off64_t *__restrict __basep)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
extern int versionsort (const struct dirent **__e1,
const struct dirent **__e2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 396 "/usr/include/dirent.h" 3 4
extern int versionsort64 (const struct dirent64 **__e1,
const struct dirent64 **__e2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 1 "/usr/include/aarch64-linux-gnu/bits/dirent_ext.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/dirent_ext.h" 3 4
extern __ssize_t getdents64 (int __fd, void *__buffer, size_t __length)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
# 405 "/usr/include/dirent.h" 2 3 4
# 29 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/aarch64-linux-gnu/sys/socket.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 29 "/usr/include/aarch64-linux-gnu/sys/socket.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/socket.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/socket.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/socket.h" 2 3 4
typedef __socklen_t socklen_t;
# 1 "/usr/include/aarch64-linux-gnu/bits/socket_type.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/socket_type.h" 3 4
enum __socket_type
{
SOCK_STREAM = 1,
SOCK_DGRAM = 2,
SOCK_RAW = 3,
SOCK_RDM = 4,
SOCK_SEQPACKET = 5,
SOCK_DCCP = 6,
SOCK_PACKET = 10,
SOCK_CLOEXEC = 02000000,
SOCK_NONBLOCK = 00004000
};
# 39 "/usr/include/aarch64-linux-gnu/bits/socket.h" 2 3 4
# 175 "/usr/include/aarch64-linux-gnu/bits/socket.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/sockaddr.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/sockaddr.h" 3 4
typedef unsigned short int sa_family_t;
# 176 "/usr/include/aarch64-linux-gnu/bits/socket.h" 2 3 4
struct sockaddr
{
sa_family_t sa_family;
char sa_data[14];
};
# 191 "/usr/include/aarch64-linux-gnu/bits/socket.h" 3 4
struct sockaddr_storage
{
sa_family_t ss_family;
char __ss_padding[(128 - (sizeof (unsigned short int)) - sizeof (unsigned long int))];
unsigned long int __ss_align;
};
enum
{
MSG_OOB = 0x01,
MSG_PEEK = 0x02,
MSG_DONTROUTE = 0x04,
MSG_TRYHARD = MSG_DONTROUTE,
MSG_CTRUNC = 0x08,
MSG_PROXY = 0x10,
MSG_TRUNC = 0x20,
MSG_DONTWAIT = 0x40,
MSG_EOR = 0x80,
MSG_WAITALL = 0x100,
MSG_FIN = 0x200,
MSG_SYN = 0x400,
MSG_CONFIRM = 0x800,
MSG_RST = 0x1000,
MSG_ERRQUEUE = 0x2000,
MSG_NOSIGNAL = 0x4000,
MSG_MORE = 0x8000,
MSG_WAITFORONE = 0x10000,
MSG_BATCH = 0x40000,
MSG_ZEROCOPY = 0x4000000,
MSG_FASTOPEN = 0x20000000,
MSG_CMSG_CLOEXEC = 0x40000000
};
struct msghdr
{
void *msg_name;
socklen_t msg_namelen;
struct iovec *msg_iov;
size_t msg_iovlen;
void *msg_control;
size_t msg_controllen;
int msg_flags;
};
struct cmsghdr
{
size_t cmsg_len;
int cmsg_level;
int cmsg_type;
__extension__ unsigned char __cmsg_data [];
};
# 305 "/usr/include/aarch64-linux-gnu/bits/socket.h" 3 4
extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
struct cmsghdr *__cmsg) __attribute__ ((__nothrow__ , __leaf__));
# 332 "/usr/include/aarch64-linux-gnu/bits/socket.h" 3 4
enum
{
SCM_RIGHTS = 0x01
, SCM_CREDENTIALS = 0x02
};
struct ucred
{
pid_t pid;
uid_t uid;
gid_t gid;
};
# 1 "/usr/include/aarch64-linux-gnu/asm/socket.h" 1 3 4
# 1 "/usr/include/asm-generic/socket.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/sockios.h" 1 3 4
# 1 "/usr/include/asm-generic/sockios.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/sockios.h" 2 3 4
# 7 "/usr/include/asm-generic/socket.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/socket.h" 2 3 4
# 355 "/usr/include/aarch64-linux-gnu/bits/socket.h" 2 3 4
struct linger
{
int l_onoff;
int l_linger;
};
# 34 "/usr/include/aarch64-linux-gnu/sys/socket.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_osockaddr.h" 1 3 4
struct osockaddr
{
unsigned short int sa_family;
unsigned char sa_data[14];
};
# 37 "/usr/include/aarch64-linux-gnu/sys/socket.h" 2 3 4
enum
{
SHUT_RD = 0,
SHUT_WR,
SHUT_RDWR
};
# 79 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_at__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl__; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp__; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso__; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; struct sockaddr_x25 *__restrict __sockaddr_x25__;
} __SOCKADDR_ARG __attribute__ ((__transparent_union__));
typedef union { const struct sockaddr *__restrict __sockaddr__; const struct sockaddr_at *__restrict __sockaddr_at__; const struct sockaddr_ax25 *__restrict __sockaddr_ax25__; const struct sockaddr_dl *__restrict __sockaddr_dl__; const struct sockaddr_eon *__restrict __sockaddr_eon__; const struct sockaddr_in *__restrict __sockaddr_in__; const struct sockaddr_in6 *__restrict __sockaddr_in6__; const struct sockaddr_inarp *__restrict __sockaddr_inarp__; const struct sockaddr_ipx *__restrict __sockaddr_ipx__; const struct sockaddr_iso *__restrict __sockaddr_iso__; const struct sockaddr_ns *__restrict __sockaddr_ns__; const struct sockaddr_un *__restrict __sockaddr_un__; const struct sockaddr_x25 *__restrict __sockaddr_x25__;
} __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
struct mmsghdr
{
struct msghdr msg_hdr;
unsigned int msg_len;
};
extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__ , __leaf__));
extern int socketpair (int __domain, int __type, int __protocol,
int __fds[2]) __attribute__ ((__nothrow__ , __leaf__));
extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
__attribute__ ((__nothrow__ , __leaf__));
extern int getsockname (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __len) __attribute__ ((__nothrow__ , __leaf__));
# 126 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
extern int getpeername (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __len) __attribute__ ((__nothrow__ , __leaf__));
extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags);
extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);
extern ssize_t sendto (int __fd, const void *__buf, size_t __n,
int __flags, __CONST_SOCKADDR_ARG __addr,
socklen_t __addr_len);
# 163 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
int __flags, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len);
extern ssize_t sendmsg (int __fd, const struct msghdr *__message,
int __flags);
extern int sendmmsg (int __fd, struct mmsghdr *__vmessages,
unsigned int __vlen, int __flags);
extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
unsigned int __vlen, int __flags,
struct timespec *__tmo);
extern int getsockopt (int __fd, int __level, int __optname,
void *__restrict __optval,
socklen_t *__restrict __optlen) __attribute__ ((__nothrow__ , __leaf__));
extern int setsockopt (int __fd, int __level, int __optname,
const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__ , __leaf__));
extern int listen (int __fd, int __n) __attribute__ ((__nothrow__ , __leaf__));
# 232 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
extern int accept (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len);
extern int accept4 (int __fd, __SOCKADDR_ARG __addr,
socklen_t *__restrict __addr_len, int __flags);
# 250 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__ , __leaf__));
extern int sockatmark (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__ , __leaf__));
# 272 "/usr/include/aarch64-linux-gnu/sys/socket.h" 3 4
# 31 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/netinet/in.h" 1 3 4
# 27 "/usr/include/netinet/in.h" 3 4
typedef uint32_t in_addr_t;
struct in_addr
{
in_addr_t s_addr;
};
# 1 "/usr/include/aarch64-linux-gnu/bits/in.h" 1 3 4
# 142 "/usr/include/aarch64-linux-gnu/bits/in.h" 3 4
struct ip_opts
{
struct in_addr ip_dst;
char ip_opts[40];
};
struct ip_mreqn
{
struct in_addr imr_multiaddr;
struct in_addr imr_address;
int imr_ifindex;
};
struct in_pktinfo
{
int ipi_ifindex;
struct in_addr ipi_spec_dst;
struct in_addr ipi_addr;
};
# 38 "/usr/include/netinet/in.h" 2 3 4
enum
{
IPPROTO_IP = 0,
IPPROTO_ICMP = 1,
IPPROTO_IGMP = 2,
IPPROTO_IPIP = 4,
IPPROTO_TCP = 6,
IPPROTO_EGP = 8,
IPPROTO_PUP = 12,
IPPROTO_UDP = 17,
IPPROTO_IDP = 22,
IPPROTO_TP = 29,
IPPROTO_DCCP = 33,
IPPROTO_IPV6 = 41,
IPPROTO_RSVP = 46,
IPPROTO_GRE = 47,
IPPROTO_ESP = 50,
IPPROTO_AH = 51,
IPPROTO_MTP = 92,
IPPROTO_BEETPH = 94,
IPPROTO_ENCAP = 98,
IPPROTO_PIM = 103,
IPPROTO_COMP = 108,
IPPROTO_SCTP = 132,
IPPROTO_UDPLITE = 136,
IPPROTO_MPLS = 137,
IPPROTO_RAW = 255,
IPPROTO_MAX
};
enum
{
IPPROTO_HOPOPTS = 0,
IPPROTO_ROUTING = 43,
IPPROTO_FRAGMENT = 44,
IPPROTO_ICMPV6 = 58,
IPPROTO_NONE = 59,
IPPROTO_DSTOPTS = 60,
IPPROTO_MH = 135
};
typedef uint16_t in_port_t;
enum
{
IPPORT_ECHO = 7,
IPPORT_DISCARD = 9,
IPPORT_SYSTAT = 11,
IPPORT_DAYTIME = 13,
IPPORT_NETSTAT = 15,
IPPORT_FTP = 21,
IPPORT_TELNET = 23,
IPPORT_SMTP = 25,
IPPORT_TIMESERVER = 37,
IPPORT_NAMESERVER = 42,
IPPORT_WHOIS = 43,
IPPORT_MTP = 57,
IPPORT_TFTP = 69,
IPPORT_RJE = 77,
IPPORT_FINGER = 79,
IPPORT_TTYLINK = 87,
IPPORT_SUPDUP = 95,
IPPORT_EXECSERVER = 512,
IPPORT_LOGINSERVER = 513,
IPPORT_CMDSERVER = 514,
IPPORT_EFSSERVER = 520,
IPPORT_BIFFUDP = 512,
IPPORT_WHOSERVER = 513,
IPPORT_ROUTESERVER = 520,
IPPORT_RESERVED = 1024,
IPPORT_USERRESERVED = 5000
};
# 212 "/usr/include/netinet/in.h" 3 4
struct in6_addr
{
union
{
uint8_t __u6_addr8[16];
uint16_t __u6_addr16[8];
uint32_t __u6_addr32[4];
} __in6_u;
};
extern const struct in6_addr in6addr_any;
extern const struct in6_addr in6addr_loopback;
# 238 "/usr/include/netinet/in.h" 3 4
struct sockaddr_in
{
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[sizeof (struct sockaddr)
- (sizeof (unsigned short int))
- sizeof (in_port_t)
- sizeof (struct in_addr)];
};
struct sockaddr_in6
{
sa_family_t sin6_family;
in_port_t sin6_port;
uint32_t sin6_flowinfo;
struct in6_addr sin6_addr;
uint32_t sin6_scope_id;
};
struct ip_mreq
{
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
struct ip_mreq_source
{
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
struct in_addr imr_sourceaddr;
};
struct ipv6_mreq
{
struct in6_addr ipv6mr_multiaddr;
unsigned int ipv6mr_interface;
};
struct group_req
{
uint32_t gr_interface;
struct sockaddr_storage gr_group;
};
struct group_source_req
{
uint32_t gsr_interface;
struct sockaddr_storage gsr_group;
struct sockaddr_storage gsr_source;
};
struct ip_msfilter
{
struct in_addr imsf_multiaddr;
struct in_addr imsf_interface;
uint32_t imsf_fmode;
uint32_t imsf_numsrc;
struct in_addr imsf_slist[1];
};
struct group_filter
{
uint32_t gf_interface;
struct sockaddr_storage gf_group;
uint32_t gf_fmode;
uint32_t gf_numsrc;
struct sockaddr_storage gf_slist[1];
};
# 375 "/usr/include/netinet/in.h" 3 4
extern uint32_t ntohl (uint32_t __netlong) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern uint16_t ntohs (uint16_t __netshort)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern uint32_t htonl (uint32_t __hostlong)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern uint16_t htons (uint16_t __hostshort)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 1 "/usr/include/aarch64-linux-gnu/bits/byteswap.h" 1 3 4
# 387 "/usr/include/netinet/in.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/uintn-identity.h" 1 3 4
# 388 "/usr/include/netinet/in.h" 2 3 4
# 503 "/usr/include/netinet/in.h" 3 4
extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) __attribute__ ((__nothrow__ , __leaf__));
extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
__attribute__ ((__nothrow__ , __leaf__));
# 533 "/usr/include/netinet/in.h" 3 4
struct cmsghdr;
struct in6_pktinfo
{
struct in6_addr ipi6_addr;
unsigned int ipi6_ifindex;
};
struct ip6_mtuinfo
{
struct sockaddr_in6 ip6m_addr;
uint32_t ip6m_mtu;
};
extern int inet6_option_space (int __nbytes)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int inet6_option_append (struct cmsghdr *__cmsg,
const uint8_t *__typep, int __multx,
int __plusy) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
int __multx, int __plusy)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int inet6_option_next (const struct cmsghdr *__cmsg,
uint8_t **__tptrp)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int inet6_option_find (const struct cmsghdr *__cmsg,
uint8_t **__tptrp, int __type)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int inet6_opt_init (void *__extbuf, socklen_t __extlen) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_opt_append (void *__extbuf, socklen_t __extlen, int __offset,
uint8_t __type, socklen_t __len, uint8_t __align,
void **__databufp) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_opt_finish (void *__extbuf, socklen_t __extlen, int __offset)
__attribute__ ((__nothrow__ , __leaf__));
extern int inet6_opt_set_val (void *__databuf, int __offset, void *__val,
socklen_t __vallen) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_opt_next (void *__extbuf, socklen_t __extlen, int __offset,
uint8_t *__typep, socklen_t *__lenp,
void **__databufp) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_opt_find (void *__extbuf, socklen_t __extlen, int __offset,
uint8_t __type, socklen_t *__lenp,
void **__databufp) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_opt_get_val (void *__databuf, int __offset, void *__val,
socklen_t __vallen) __attribute__ ((__nothrow__ , __leaf__));
extern socklen_t inet6_rth_space (int __type, int __segments) __attribute__ ((__nothrow__ , __leaf__));
extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,
int __segments) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_rth_reverse (const void *__in, void *__out) __attribute__ ((__nothrow__ , __leaf__));
extern int inet6_rth_segments (const void *__bp) __attribute__ ((__nothrow__ , __leaf__));
extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)
__attribute__ ((__nothrow__ , __leaf__));
extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr,
struct in_addr __group, uint32_t *__fmode,
uint32_t *__numsrc, struct in_addr *__slist)
__attribute__ ((__nothrow__ , __leaf__));
extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
struct in_addr __group, uint32_t __fmode,
uint32_t __numsrc,
const struct in_addr *__slist)
__attribute__ ((__nothrow__ , __leaf__));
extern int getsourcefilter (int __s, uint32_t __interface_addr,
const struct sockaddr *__group,
socklen_t __grouplen, uint32_t *__fmode,
uint32_t *__numsrc,
struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ , __leaf__));
extern int setsourcefilter (int __s, uint32_t __interface_addr,
const struct sockaddr *__group,
socklen_t __grouplen, uint32_t __fmode,
uint32_t __numsrc,
const struct sockaddr_storage *__slist) __attribute__ ((__nothrow__ , __leaf__));
# 32 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/netinet/tcp.h" 1 3 4
# 93 "/usr/include/netinet/tcp.h" 3 4
typedef uint32_t tcp_seq;
struct tcphdr
{
__extension__ union
{
struct
{
uint16_t th_sport;
uint16_t th_dport;
tcp_seq th_seq;
tcp_seq th_ack;
uint8_t th_x2:4;
uint8_t th_off:4;
uint8_t th_flags;
uint16_t th_win;
uint16_t th_sum;
uint16_t th_urp;
};
struct
{
uint16_t source;
uint16_t dest;
uint32_t seq;
uint32_t ack_seq;
uint16_t res1:4;
uint16_t doff:4;
uint16_t fin:1;
uint16_t syn:1;
uint16_t rst:1;
uint16_t psh:1;
uint16_t ack:1;
uint16_t urg:1;
uint16_t res2:2;
# 156 "/usr/include/netinet/tcp.h" 3 4
uint16_t window;
uint16_t check;
uint16_t urg_ptr;
};
};
};
enum
{
TCP_ESTABLISHED = 1,
TCP_SYN_SENT,
TCP_SYN_RECV,
TCP_FIN_WAIT1,
TCP_FIN_WAIT2,
TCP_TIME_WAIT,
TCP_CLOSE,
TCP_CLOSE_WAIT,
TCP_LAST_ACK,
TCP_LISTEN,
TCP_CLOSING
};
# 217 "/usr/include/netinet/tcp.h" 3 4
enum tcp_ca_state
{
TCP_CA_Open = 0,
TCP_CA_Disorder = 1,
TCP_CA_CWR = 2,
TCP_CA_Recovery = 3,
TCP_CA_Loss = 4
};
struct tcp_info
{
uint8_t tcpi_state;
uint8_t tcpi_ca_state;
uint8_t tcpi_retransmits;
uint8_t tcpi_probes;
uint8_t tcpi_backoff;
uint8_t tcpi_options;
uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
uint32_t tcpi_rto;
uint32_t tcpi_ato;
uint32_t tcpi_snd_mss;
uint32_t tcpi_rcv_mss;
uint32_t tcpi_unacked;
uint32_t tcpi_sacked;
uint32_t tcpi_lost;
uint32_t tcpi_retrans;
uint32_t tcpi_fackets;
uint32_t tcpi_last_data_sent;
uint32_t tcpi_last_ack_sent;
uint32_t tcpi_last_data_recv;
uint32_t tcpi_last_ack_recv;
uint32_t tcpi_pmtu;
uint32_t tcpi_rcv_ssthresh;
uint32_t tcpi_rtt;
uint32_t tcpi_rttvar;
uint32_t tcpi_snd_ssthresh;
uint32_t tcpi_snd_cwnd;
uint32_t tcpi_advmss;
uint32_t tcpi_reordering;
uint32_t tcpi_rcv_rtt;
uint32_t tcpi_rcv_space;
uint32_t tcpi_total_retrans;
};
# 276 "/usr/include/netinet/tcp.h" 3 4
struct tcp_md5sig
{
struct sockaddr_storage tcpm_addr;
uint8_t tcpm_flags;
uint8_t tcpm_prefixlen;
uint16_t tcpm_keylen;
uint32_t __tcpm_pad;
uint8_t tcpm_key[80];
};
struct tcp_repair_opt
{
uint32_t opt_code;
uint32_t opt_val;
};
enum
{
TCP_NO_QUEUE,
TCP_RECV_QUEUE,
TCP_SEND_QUEUE,
TCP_QUEUES_NR,
};
# 319 "/usr/include/netinet/tcp.h" 3 4
struct tcp_cookie_transactions
{
uint16_t tcpct_flags;
uint8_t __tcpct_pad1;
uint8_t tcpct_cookie_desired;
uint16_t tcpct_s_data_desired;
uint16_t tcpct_used;
uint8_t tcpct_value[536U];
};
struct tcp_repair_window
{
uint32_t snd_wl1;
uint32_t snd_wnd;
uint32_t max_window;
uint32_t rcv_wnd;
uint32_t rcv_wup;
};
struct tcp_zerocopy_receive
{
uint64_t address;
uint32_t length;
uint32_t recv_skip_hint;
};
# 33 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/arpa/inet.h" 1 3 4
# 30 "/usr/include/arpa/inet.h" 3 4
extern in_addr_t inet_addr (const char *__cp) __attribute__ ((__nothrow__ , __leaf__));
extern in_addr_t inet_lnaof (struct in_addr __in) __attribute__ ((__nothrow__ , __leaf__));
extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host)
__attribute__ ((__nothrow__ , __leaf__));
extern in_addr_t inet_netof (struct in_addr __in) __attribute__ ((__nothrow__ , __leaf__));
extern in_addr_t inet_network (const char *__cp) __attribute__ ((__nothrow__ , __leaf__));
extern char *inet_ntoa (struct in_addr __in) __attribute__ ((__nothrow__ , __leaf__));
extern int inet_pton (int __af, const char *__restrict __cp,
void *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
extern const char *inet_ntop (int __af, const void *__restrict __cp,
char *__restrict __buf, socklen_t __len)
__attribute__ ((__nothrow__ , __leaf__));
extern int inet_aton (const char *__cp, struct in_addr *__inp) __attribute__ ((__nothrow__ , __leaf__));
extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
extern char *inet_net_ntop (int __af, const void *__cp, int __bits,
char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
extern int inet_net_pton (int __af, const char *__cp,
void *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
extern unsigned int inet_nsap_addr (const char *__cp,
unsigned char *__buf, int __len) __attribute__ ((__nothrow__ , __leaf__));
extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp,
char *__buf) __attribute__ ((__nothrow__ , __leaf__));
# 34 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/netdb.h" 1 3 4
# 32 "/usr/include/netdb.h" 3 4
# 1 "/usr/include/rpc/netdb.h" 1 3 4
# 42 "/usr/include/rpc/netdb.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 43 "/usr/include/rpc/netdb.h" 2 3 4
struct rpcent
{
char *r_name;
char **r_aliases;
int r_number;
};
extern void setrpcent (int __stayopen) __attribute__ ((__nothrow__ , __leaf__));
extern void endrpcent (void) __attribute__ ((__nothrow__ , __leaf__));
extern struct rpcent *getrpcbyname (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
extern struct rpcent *getrpcbynumber (int __number) __attribute__ ((__nothrow__ , __leaf__));
extern struct rpcent *getrpcent (void) __attribute__ ((__nothrow__ , __leaf__));
extern int getrpcbyname_r (const char *__name, struct rpcent *__result_buf,
char *__buffer, size_t __buflen,
struct rpcent **__result) __attribute__ ((__nothrow__ , __leaf__));
extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf,
char *__buffer, size_t __buflen,
struct rpcent **__result) __attribute__ ((__nothrow__ , __leaf__));
extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer,
size_t __buflen, struct rpcent **__result) __attribute__ ((__nothrow__ , __leaf__));
# 33 "/usr/include/netdb.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 5 "/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/types/__sigval_t.h" 3 4
union sigval
{
int sival_int;
void *sival_ptr;
};
typedef union sigval __sigval_t;
# 7 "/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h" 2 3 4
# 22 "/usr/include/aarch64-linux-gnu/bits/types/sigevent_t.h" 3 4
typedef struct sigevent
{
__sigval_t sigev_value;
int sigev_signo;
int sigev_notify;
union
{
int _pad[((64 / sizeof (int)) - 4)];
__pid_t _tid;
struct
{
void (*_function) (__sigval_t);
pthread_attr_t *_attribute;
} _sigev_thread;
} _sigev_un;
} sigevent_t;
# 37 "/usr/include/netdb.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/netdb.h" 1 3 4
# 26 "/usr/include/aarch64-linux-gnu/bits/netdb.h" 3 4
struct netent
{
char *n_name;
char **n_aliases;
int n_addrtype;
uint32_t n_net;
};
# 41 "/usr/include/netdb.h" 2 3 4
# 51 "/usr/include/netdb.h" 3 4
extern int *__h_errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 90 "/usr/include/netdb.h" 3 4
extern void herror (const char *__str) __attribute__ ((__nothrow__ , __leaf__));
extern const char *hstrerror (int __err_num) __attribute__ ((__nothrow__ , __leaf__));
struct hostent
{
char *h_name;
char **h_aliases;
int h_addrtype;
int h_length;
char **h_addr_list;
};
extern void sethostent (int __stay_open);
extern void endhostent (void);
extern struct hostent *gethostent (void);
extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len,
int __type);
extern struct hostent *gethostbyname (const char *__name);
# 153 "/usr/include/netdb.h" 3 4
extern struct hostent *gethostbyname2 (const char *__name, int __af);
# 165 "/usr/include/netdb.h" 3 4
extern int gethostent_r (struct hostent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct hostent **__restrict __result,
int *__restrict __h_errnop);
extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len,
int __type,
struct hostent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct hostent **__restrict __result,
int *__restrict __h_errnop);
extern int gethostbyname_r (const char *__restrict __name,
struct hostent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct hostent **__restrict __result,
int *__restrict __h_errnop);
extern int gethostbyname2_r (const char *__restrict __name, int __af,
struct hostent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct hostent **__restrict __result,
int *__restrict __h_errnop);
# 196 "/usr/include/netdb.h" 3 4
extern void setnetent (int __stay_open);
extern void endnetent (void);
extern struct netent *getnetent (void);
extern struct netent *getnetbyaddr (uint32_t __net, int __type);
extern struct netent *getnetbyname (const char *__name);
# 235 "/usr/include/netdb.h" 3 4
extern int getnetent_r (struct netent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct netent **__restrict __result,
int *__restrict __h_errnop);
extern int getnetbyaddr_r (uint32_t __net, int __type,
struct netent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct netent **__restrict __result,
int *__restrict __h_errnop);
extern int getnetbyname_r (const char *__restrict __name,
struct netent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct netent **__restrict __result,
int *__restrict __h_errnop);
struct servent
{
char *s_name;
char **s_aliases;
int s_port;
char *s_proto;
};
extern void setservent (int __stay_open);
extern void endservent (void);
extern struct servent *getservent (void);
extern struct servent *getservbyname (const char *__name, const char *__proto);
extern struct servent *getservbyport (int __port, const char *__proto);
# 306 "/usr/include/netdb.h" 3 4
extern int getservent_r (struct servent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct servent **__restrict __result);
extern int getservbyname_r (const char *__restrict __name,
const char *__restrict __proto,
struct servent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct servent **__restrict __result);
extern int getservbyport_r (int __port, const char *__restrict __proto,
struct servent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct servent **__restrict __result);
struct protoent
{
char *p_name;
char **p_aliases;
int p_proto;
};
extern void setprotoent (int __stay_open);
extern void endprotoent (void);
extern struct protoent *getprotoent (void);
extern struct protoent *getprotobyname (const char *__name);
extern struct protoent *getprotobynumber (int __proto);
# 372 "/usr/include/netdb.h" 3 4
extern int getprotoent_r (struct protoent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct protoent **__restrict __result);
extern int getprotobyname_r (const char *__restrict __name,
struct protoent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct protoent **__restrict __result);
extern int getprotobynumber_r (int __proto,
struct protoent *__restrict __result_buf,
char *__restrict __buf, size_t __buflen,
struct protoent **__restrict __result);
# 393 "/usr/include/netdb.h" 3 4
extern int setnetgrent (const char *__netgroup);
extern void endnetgrent (void);
# 410 "/usr/include/netdb.h" 3 4
extern int getnetgrent (char **__restrict __hostp,
char **__restrict __userp,
char **__restrict __domainp);
# 421 "/usr/include/netdb.h" 3 4
extern int innetgr (const char *__netgroup, const char *__host,
const char *__user, const char *__domain);
extern int getnetgrent_r (char **__restrict __hostp,
char **__restrict __userp,
char **__restrict __domainp,
char *__restrict __buffer, size_t __buflen);
# 449 "/usr/include/netdb.h" 3 4
extern int rcmd (char **__restrict __ahost, unsigned short int __rport,
const char *__restrict __locuser,
const char *__restrict __remuser,
const char *__restrict __cmd, int *__restrict __fd2p);
# 461 "/usr/include/netdb.h" 3 4
extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport,
const char *__restrict __locuser,
const char *__restrict __remuser,
const char *__restrict __cmd, int *__restrict __fd2p,
sa_family_t __af);
# 477 "/usr/include/netdb.h" 3 4
extern int rexec (char **__restrict __ahost, int __rport,
const char *__restrict __name,
const char *__restrict __pass,
const char *__restrict __cmd, int *__restrict __fd2p);
# 489 "/usr/include/netdb.h" 3 4
extern int rexec_af (char **__restrict __ahost, int __rport,
const char *__restrict __name,
const char *__restrict __pass,
const char *__restrict __cmd, int *__restrict __fd2p,
sa_family_t __af);
# 503 "/usr/include/netdb.h" 3 4
extern int ruserok (const char *__rhost, int __suser,
const char *__remuser, const char *__locuser);
# 513 "/usr/include/netdb.h" 3 4
extern int ruserok_af (const char *__rhost, int __suser,
const char *__remuser, const char *__locuser,
sa_family_t __af);
# 526 "/usr/include/netdb.h" 3 4
extern int iruserok (uint32_t __raddr, int __suser,
const char *__remuser, const char *__locuser);
# 537 "/usr/include/netdb.h" 3 4
extern int iruserok_af (const void *__raddr, int __suser,
const char *__remuser, const char *__locuser,
sa_family_t __af);
# 549 "/usr/include/netdb.h" 3 4
extern int rresvport (int *__alport);
# 558 "/usr/include/netdb.h" 3 4
extern int rresvport_af (int *__alport, sa_family_t __af);
struct addrinfo
{
int ai_flags;
int ai_family;
int ai_socktype;
int ai_protocol;
socklen_t ai_addrlen;
struct sockaddr *ai_addr;
char *ai_canonname;
struct addrinfo *ai_next;
};
struct gaicb
{
const char *ar_name;
const char *ar_service;
const struct addrinfo *ar_request;
struct addrinfo *ar_result;
int __return;
int __glibc_reserved[5];
};
# 660 "/usr/include/netdb.h" 3 4
extern int getaddrinfo (const char *__restrict __name,
const char *__restrict __service,
const struct addrinfo *__restrict __req,
struct addrinfo **__restrict __pai);
extern void freeaddrinfo (struct addrinfo *__ai) __attribute__ ((__nothrow__ , __leaf__));
extern const char *gai_strerror (int __ecode) __attribute__ ((__nothrow__ , __leaf__));
extern int getnameinfo (const struct sockaddr *__restrict __sa,
socklen_t __salen, char *__restrict __host,
socklen_t __hostlen, char *__restrict __serv,
socklen_t __servlen, int __flags);
# 690 "/usr/include/netdb.h" 3 4
extern int getaddrinfo_a (int __mode, struct gaicb *__list[__restrict],
int __ent, struct sigevent *__restrict __sig);
# 701 "/usr/include/netdb.h" 3 4
extern int gai_suspend (const struct gaicb *const __list[], int __ent,
const struct timespec *__timeout);
extern int gai_error (struct gaicb *__req) __attribute__ ((__nothrow__ , __leaf__));
extern int gai_cancel (struct gaicb *__gaicbp) __attribute__ ((__nothrow__ , __leaf__));
# 35 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/termios.h" 1 3 4
# 35 "/usr/include/termios.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/termios.h" 3 4
typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-struct.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/termios-struct.h" 3 4
struct termios
{
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_line;
cc_t c_cc[32];
speed_t c_ispeed;
speed_t c_ospeed;
};
# 28 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-c_cc.h" 1 3 4
# 29 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-c_iflag.h" 1 3 4
# 30 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-c_oflag.h" 1 3 4
# 31 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 53 "/usr/include/aarch64-linux-gnu/bits/termios.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-baud.h" 1 3 4
# 54 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-c_cflag.h" 1 3 4
# 56 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-c_lflag.h" 1 3 4
# 57 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 74 "/usr/include/aarch64-linux-gnu/bits/termios.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-tcflow.h" 1 3 4
# 75 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/termios-misc.h" 1 3 4
# 76 "/usr/include/aarch64-linux-gnu/bits/termios.h" 2 3 4
# 40 "/usr/include/termios.h" 2 3 4
# 48 "/usr/include/termios.h" 3 4
extern speed_t cfgetospeed (const struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__));
extern speed_t cfgetispeed (const struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__));
extern int cfsetospeed (struct termios *__termios_p, speed_t __speed) __attribute__ ((__nothrow__ , __leaf__));
extern int cfsetispeed (struct termios *__termios_p, speed_t __speed) __attribute__ ((__nothrow__ , __leaf__));
extern int cfsetspeed (struct termios *__termios_p, speed_t __speed) __attribute__ ((__nothrow__ , __leaf__));
extern int tcgetattr (int __fd, struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__));
extern int tcsetattr (int __fd, int __optional_actions,
const struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__));
extern void cfmakeraw (struct termios *__termios_p) __attribute__ ((__nothrow__ , __leaf__));
extern int tcsendbreak (int __fd, int __duration) __attribute__ ((__nothrow__ , __leaf__));
extern int tcdrain (int __fd);
extern int tcflush (int __fd, int __queue_selector) __attribute__ ((__nothrow__ , __leaf__));
extern int tcflow (int __fd, int __action) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t tcgetsid (int __fd) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/aarch64-linux-gnu/sys/ttydefaults.h" 1 3 4
# 105 "/usr/include/termios.h" 2 3 4
# 37 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/pwd.h" 1 3 4
# 27 "/usr/include/pwd.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 33 "/usr/include/pwd.h" 2 3 4
# 49 "/usr/include/pwd.h" 3 4
struct passwd
{
char *pw_name;
char *pw_passwd;
__uid_t pw_uid;
__gid_t pw_gid;
char *pw_gecos;
char *pw_dir;
char *pw_shell;
};
# 72 "/usr/include/pwd.h" 3 4
extern void setpwent (void);
extern void endpwent (void);
extern struct passwd *getpwent (void);
# 94 "/usr/include/pwd.h" 3 4
extern struct passwd *fgetpwent (FILE *__stream) __attribute__ ((__nonnull__ (1)));
extern int putpwent (const struct passwd *__restrict __p,
FILE *__restrict __f);
extern struct passwd *getpwuid (__uid_t __uid);
extern struct passwd *getpwnam (const char *__name) __attribute__ ((__nonnull__ (1)));
# 139 "/usr/include/pwd.h" 3 4
extern int getpwent_r (struct passwd *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct passwd **__restrict __result)
__attribute__ ((__nonnull__ (1, 2, 4)));
extern int getpwuid_r (__uid_t __uid,
struct passwd *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct passwd **__restrict __result)
__attribute__ ((__nonnull__ (2, 3, 5)));
extern int getpwnam_r (const char *__restrict __name,
struct passwd *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct passwd **__restrict __result)
__attribute__ ((__nonnull__ (1, 2, 3, 5)));
# 166 "/usr/include/pwd.h" 3 4
extern int fgetpwent_r (FILE *__restrict __stream,
struct passwd *__restrict __resultbuf,
char *__restrict __buffer, size_t __buflen,
struct passwd **__restrict __result)
__attribute__ ((__nonnull__ (1, 2, 3, 5)));
# 184 "/usr/include/pwd.h" 3 4
extern int getpw (__uid_t __uid, char *__buffer);
# 38 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/semaphore.h" 1 3 4
# 28 "/usr/include/semaphore.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/semaphore.h" 1 3 4
# 35 "/usr/include/aarch64-linux-gnu/bits/semaphore.h" 3 4
typedef union
{
char __size[32];
long long int __align;
} sem_t;
# 29 "/usr/include/semaphore.h" 2 3 4
extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sem_destroy (sem_t *__sem) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern sem_t *sem_open (const char *__name, int __oflag, ...)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sem_close (sem_t *__sem) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sem_unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sem_wait (sem_t *__sem) __attribute__ ((__nonnull__ (1)));
extern int sem_timedwait (sem_t *__restrict __sem,
const struct timespec *__restrict __abstime)
__attribute__ ((__nonnull__ (1, 2)));
extern int sem_clockwait (sem_t *__restrict __sem,
clockid_t clock,
const struct timespec *__restrict __abstime)
__attribute__ ((__nonnull__ (1, 3)));
extern int sem_trywait (sem_t *__sem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int sem_post (sem_t *__sem) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
# 41 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/aarch64-linux-gnu/sys/param.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/sys/param.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/sys/param.h" 2 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 1 3 4
# 34 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/syslimits.h" 1 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 1 3 4
# 194 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 26 "/usr/include/limits.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/libc-header-start.h" 1 3 4
# 27 "/usr/include/limits.h" 2 3 4
# 187 "/usr/include/limits.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/posix2_lim.h" 1 3 4
# 188 "/usr/include/limits.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/xopen_lim.h" 1 3 4
# 64 "/usr/include/aarch64-linux-gnu/bits/xopen_lim.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/uio_lim.h" 1 3 4
# 65 "/usr/include/aarch64-linux-gnu/bits/xopen_lim.h" 2 3 4
# 192 "/usr/include/limits.h" 2 3 4
# 195 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 2 3 4
# 8 "/usr/lib/gcc/aarch64-linux-gnu/9/include/syslimits.h" 2 3 4
# 35 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 2 3 4
# 27 "/usr/include/aarch64-linux-gnu/sys/param.h" 2 3 4
# 1 "/usr/include/signal.h" 1 3 4
# 27 "/usr/include/signal.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/signum.h" 1 3 4
# 26 "/usr/include/aarch64-linux-gnu/bits/signum.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/signum-generic.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/signum.h" 2 3 4
# 31 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/sig_atomic_t.h" 1 3 4
typedef __sig_atomic_t sig_atomic_t;
# 33 "/usr/include/signal.h" 2 3 4
# 57 "/usr/include/signal.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 5 "/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h" 2 3 4
# 16 "/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/siginfo-arch.h" 1 3 4
# 17 "/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h" 2 3 4
# 36 "/usr/include/aarch64-linux-gnu/bits/types/siginfo_t.h" 3 4
typedef struct
{
int si_signo;
int si_errno;
int si_code;
int __pad0;
union
{
int _pad[((128 / sizeof (int)) - 4)];
struct
{
__pid_t si_pid;
__uid_t si_uid;
} _kill;
struct
{
int si_tid;
int si_overrun;
__sigval_t si_sigval;
} _timer;
struct
{
__pid_t si_pid;
__uid_t si_uid;
__sigval_t si_sigval;
} _rt;
struct
{
__pid_t si_pid;
__uid_t si_uid;
int si_status;
__clock_t si_utime;
__clock_t si_stime;
} _sigchld;
struct
{
void *si_addr;
short int si_addr_lsb;
union
{
struct
{
void *_lower;
void *_upper;
} _addr_bnd;
__uint32_t _pkey;
} _bounds;
} _sigfault;
struct
{
long int si_band;
int si_fd;
} _sigpoll;
struct
{
void *_call_addr;
int _syscall;
unsigned int _arch;
} _sigsys;
} _sifields;
} siginfo_t ;
# 58 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h" 1 3 4
# 35 "/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h" 3 4
enum
{
SI_ASYNCNL = -60,
SI_DETHREAD = -7,
SI_TKILL,
SI_SIGIO,
SI_ASYNCIO,
SI_MESGQ,
SI_TIMER,
SI_QUEUE,
SI_USER,
SI_KERNEL = 0x80
# 66 "/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h" 3 4
};
enum
{
ILL_ILLOPC = 1,
ILL_ILLOPN,
ILL_ILLADR,
ILL_ILLTRP,
ILL_PRVOPC,
ILL_PRVREG,
ILL_COPROC,
ILL_BADSTK,
ILL_BADIADDR
};
enum
{
FPE_INTDIV = 1,
FPE_INTOVF,
FPE_FLTDIV,
FPE_FLTOVF,
FPE_FLTUND,
FPE_FLTRES,
FPE_FLTINV,
FPE_FLTSUB,
FPE_FLTUNK = 14,
FPE_CONDTRAP
};
enum
{
SEGV_MAPERR = 1,
SEGV_ACCERR,
SEGV_BNDERR,
SEGV_PKUERR,
SEGV_ACCADI,
SEGV_ADIDERR,
SEGV_ADIPERR
};
enum
{
BUS_ADRALN = 1,
BUS_ADRERR,
BUS_OBJERR,
BUS_MCEERR_AR,
BUS_MCEERR_AO
};
enum
{
TRAP_BRKPT = 1,
TRAP_TRACE,
TRAP_BRANCH,
TRAP_HWBKPT,
TRAP_UNK
};
enum
{
CLD_EXITED = 1,
CLD_KILLED,
CLD_DUMPED,
CLD_TRAPPED,
CLD_STOPPED,
CLD_CONTINUED
};
enum
{
POLL_IN = 1,
POLL_OUT,
POLL_MSG,
POLL_ERR,
POLL_PRI,
POLL_HUP
};
# 1 "/usr/include/aarch64-linux-gnu/bits/siginfo-consts-arch.h" 1 3 4
# 210 "/usr/include/aarch64-linux-gnu/bits/siginfo-consts.h" 2 3 4
# 59 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/sigval_t.h" 1 3 4
# 16 "/usr/include/aarch64-linux-gnu/bits/types/sigval_t.h" 3 4
typedef __sigval_t sigval_t;
# 63 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/sigevent-consts.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/sigevent-consts.h" 3 4
enum
{
SIGEV_SIGNAL = 0,
SIGEV_NONE,
SIGEV_THREAD,
SIGEV_THREAD_ID = 4
};
# 68 "/usr/include/signal.h" 2 3 4
typedef void (*__sighandler_t) (int);
extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
__attribute__ ((__nothrow__ , __leaf__));
extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler)
__attribute__ ((__nothrow__ , __leaf__));
extern __sighandler_t signal (int __sig, __sighandler_t __handler)
__attribute__ ((__nothrow__ , __leaf__));
# 112 "/usr/include/signal.h" 3 4
extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
__attribute__ ((__nothrow__ , __leaf__));
extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern void psignal (int __sig, const char *__s);
extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
# 151 "/usr/include/signal.h" 3 4
extern int sigpause (int __sig) __asm__ ("__xpg_sigpause");
# 170 "/usr/include/signal.h" 3 4
extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
# 185 "/usr/include/signal.h" 3 4
typedef __sighandler_t sighandler_t;
typedef __sighandler_t sig_t;
extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigismember (const sigset_t *__set, int __signo)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigisemptyset (const sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigandset (sigset_t *__set, const sigset_t *__left,
const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern int sigorset (sigset_t *__set, const sigset_t *__left,
const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3)));
# 1 "/usr/include/aarch64-linux-gnu/bits/sigaction.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/sigaction.h" 3 4
struct sigaction
{
union
{
__sighandler_t sa_handler;
void (*sa_sigaction) (int, siginfo_t *, void *);
}
__sigaction_handler;
__sigset_t sa_mask;
int sa_flags;
void (*sa_restorer) (void);
};
# 227 "/usr/include/signal.h" 2 3 4
extern int sigprocmask (int __how, const sigset_t *__restrict __set,
sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__));
extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
extern int sigaction (int __sig, const struct sigaction *__restrict __act,
struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__));
extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
__attribute__ ((__nonnull__ (1, 2)));
extern int sigwaitinfo (const sigset_t *__restrict __set,
siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
extern int sigtimedwait (const sigset_t *__restrict __set,
siginfo_t *__restrict __info,
const struct timespec *__restrict __timeout)
__attribute__ ((__nonnull__ (1)));
extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
__attribute__ ((__nothrow__ , __leaf__));
# 286 "/usr/include/signal.h" 3 4
extern const char *const _sys_siglist[(64 + 1)];
extern const char *const sys_siglist[(64 + 1)];
# 1 "/usr/include/aarch64-linux-gnu/bits/sigcontext.h" 1 3 4
# 30 "/usr/include/aarch64-linux-gnu/bits/sigcontext.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/sigcontext.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/asm/sigcontext.h" 3 4
struct sigcontext {
__u64 fault_address;
__u64 regs[31];
__u64 sp;
__u64 pc;
__u64 pstate;
__u8 __reserved[4096] __attribute__((__aligned__(16)));
};
# 66 "/usr/include/aarch64-linux-gnu/asm/sigcontext.h" 3 4
struct _aarch64_ctx {
__u32 magic;
__u32 size;
};
struct fpsimd_context {
struct _aarch64_ctx head;
__u32 fpsr;
__u32 fpcr;
__uint128_t vregs[32];
};
# 92 "/usr/include/aarch64-linux-gnu/asm/sigcontext.h" 3 4
struct esr_context {
struct _aarch64_ctx head;
__u64 esr;
};
# 125 "/usr/include/aarch64-linux-gnu/asm/sigcontext.h" 3 4
struct extra_context {
struct _aarch64_ctx head;
__u64 datap;
__u32 size;
__u32 __reserved[3];
};
struct sve_context {
struct _aarch64_ctx head;
__u16 vl;
__u16 __reserved[3];
};
# 1 "/usr/include/aarch64-linux-gnu/asm/sve_context.h" 1 3 4
# 143 "/usr/include/aarch64-linux-gnu/asm/sigcontext.h" 2 3 4
# 31 "/usr/include/aarch64-linux-gnu/bits/sigcontext.h" 2 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 35 "/usr/include/aarch64-linux-gnu/bits/sigcontext.h" 2 3 4
# 292 "/usr/include/signal.h" 2 3 4
extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 302 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/stack_t.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/types/stack_t.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/types/stack_t.h" 2 3 4
typedef struct
{
void *ss_sp;
int ss_flags;
size_t ss_size;
} stack_t;
# 304 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/sys/ucontext.h" 1 3 4
# 36 "/usr/include/aarch64-linux-gnu/sys/ucontext.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 1 3 4
# 33 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/sys/time.h" 1 3 4
# 34 "/usr/include/aarch64-linux-gnu/sys/time.h" 3 4
# 52 "/usr/include/aarch64-linux-gnu/sys/time.h" 3 4
struct timezone
{
int tz_minuteswest;
int tz_dsttime;
};
# 66 "/usr/include/aarch64-linux-gnu/sys/time.h" 3 4
extern int gettimeofday (struct timeval *__restrict __tv,
void *__restrict __tz) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int settimeofday (const struct timeval *__tv,
const struct timezone *__tz)
__attribute__ ((__nothrow__ , __leaf__));
extern int adjtime (const struct timeval *__delta,
struct timeval *__olddelta) __attribute__ ((__nothrow__ , __leaf__));
enum __itimer_which
{
ITIMER_REAL = 0,
ITIMER_VIRTUAL = 1,
ITIMER_PROF = 2
};
struct itimerval
{
struct timeval it_interval;
struct timeval it_value;
};
typedef enum __itimer_which __itimer_which_t;
extern int getitimer (__itimer_which_t __which,
struct itimerval *__value) __attribute__ ((__nothrow__ , __leaf__));
extern int setitimer (__itimer_which_t __which,
const struct itimerval *__restrict __new,
struct itimerval *__restrict __old) __attribute__ ((__nothrow__ , __leaf__));
extern int utimes (const char *__file, const struct timeval __tvp[2])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int lutimes (const char *__file, const struct timeval __tvp[2])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int futimes (int __fd, const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__));
extern int futimesat (int __fd, const char *__file,
const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__));
# 187 "/usr/include/aarch64-linux-gnu/sys/time.h" 3 4
# 34 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/sys/user.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/sys/user.h" 3 4
struct user_regs_struct
{
unsigned long long regs[31];
unsigned long long sp;
unsigned long long pc;
unsigned long long pstate;
};
struct user_fpsimd_struct
{
__uint128_t vregs[32];
unsigned int fpsr;
unsigned int fpcr;
};
# 36 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/procfs.h" 1 3 4
# 25 "/usr/include/aarch64-linux-gnu/bits/procfs.h" 3 4
typedef __uint64_t elf_greg_t;
typedef elf_greg_t elf_gregset_t[(sizeof (struct user_regs_struct) / sizeof (elf_greg_t))];
typedef struct user_fpsimd_struct elf_fpregset_t;
# 41 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/procfs-id.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/procfs-id.h" 3 4
typedef unsigned int __pr_uid_t;
typedef unsigned int __pr_gid_t;
# 45 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 2 3 4
struct elf_siginfo
{
int si_signo;
int si_code;
int si_errno;
};
# 63 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 3 4
struct elf_prstatus
{
struct elf_siginfo pr_info;
short int pr_cursig;
unsigned long int pr_sigpend;
unsigned long int pr_sighold;
__pid_t pr_pid;
__pid_t pr_ppid;
__pid_t pr_pgrp;
__pid_t pr_sid;
struct timeval pr_utime;
struct timeval pr_stime;
struct timeval pr_cutime;
struct timeval pr_cstime;
elf_gregset_t pr_reg;
int pr_fpvalid;
};
struct elf_prpsinfo
{
char pr_state;
char pr_sname;
char pr_zomb;
char pr_nice;
unsigned long int pr_flag;
__pr_uid_t pr_uid;
__pr_gid_t pr_gid;
int pr_pid, pr_ppid, pr_pgrp, pr_sid;
char pr_fname[16];
char pr_psargs[(80)];
};
typedef void *psaddr_t;
# 1 "/usr/include/aarch64-linux-gnu/bits/procfs-prregset.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/procfs-prregset.h" 3 4
typedef elf_gregset_t __prgregset_t;
typedef elf_fpregset_t __prfpregset_t;
# 107 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 2 3 4
typedef __prgregset_t prgregset_t;
typedef __prfpregset_t prfpregset_t;
typedef __pid_t lwpid_t;
typedef struct elf_prstatus prstatus_t;
typedef struct elf_prpsinfo prpsinfo_t;
# 1 "/usr/include/aarch64-linux-gnu/bits/procfs-extra.h" 1 3 4
# 125 "/usr/include/aarch64-linux-gnu/sys/procfs.h" 2 3 4
# 37 "/usr/include/aarch64-linux-gnu/sys/ucontext.h" 2 3 4
typedef elf_greg_t greg_t;
typedef elf_gregset_t gregset_t;
typedef elf_fpregset_t fpregset_t;
typedef struct
{
unsigned long long int fault_address;
unsigned long long int regs[31];
unsigned long long int sp;
unsigned long long int pc;
unsigned long long int pstate;
unsigned char __reserved[4096] __attribute__ ((__aligned__ (16)));
} mcontext_t;
typedef struct ucontext_t
{
unsigned long uc_flags;
struct ucontext_t *uc_link;
stack_t uc_stack;
sigset_t uc_sigmask;
mcontext_t uc_mcontext;
} ucontext_t;
# 307 "/usr/include/signal.h" 2 3 4
extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/aarch64-linux-gnu/bits/sigstack.h" 1 3 4
# 317 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/ss_flags.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/ss_flags.h" 3 4
enum
{
SS_ONSTACK = 1,
SS_DISABLE
};
# 318 "/usr/include/signal.h" 2 3 4
extern int sigaltstack (const stack_t *__restrict __ss,
stack_t *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/types/struct_sigstack.h" 3 4
struct sigstack
{
void *ss_sp;
int ss_onstack;
};
# 328 "/usr/include/signal.h" 2 3 4
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
extern int sighold (int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern int sigrelse (int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern int sigignore (int __sig) __attribute__ ((__nothrow__ , __leaf__));
extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/aarch64-linux-gnu/bits/sigthread.h" 1 3 4
# 31 "/usr/include/aarch64-linux-gnu/bits/sigthread.h" 3 4
extern int pthread_sigmask (int __how,
const __sigset_t *__restrict __newmask,
__sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__));
extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__));
extern int pthread_sigqueue (pthread_t __threadid, int __signo,
const union sigval __value) __attribute__ ((__nothrow__ , __leaf__));
# 360 "/usr/include/signal.h" 2 3 4
extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__));
extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__));
# 1 "/usr/include/aarch64-linux-gnu/bits/signal_ext.h" 1 3 4
# 29 "/usr/include/aarch64-linux-gnu/bits/signal_ext.h" 3 4
extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal);
# 375 "/usr/include/signal.h" 2 3 4
# 29 "/usr/include/aarch64-linux-gnu/sys/param.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/param.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/param.h" 3 4
# 1 "/usr/include/linux/param.h" 1 3 4
# 1 "/usr/include/aarch64-linux-gnu/asm/param.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/asm/param.h" 3 4
# 1 "/usr/include/asm-generic/param.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/asm/param.h" 2 3 4
# 6 "/usr/include/linux/param.h" 2 3 4
# 29 "/usr/include/aarch64-linux-gnu/bits/param.h" 2 3 4
# 32 "/usr/include/aarch64-linux-gnu/sys/param.h" 2 3 4
# 42 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/usr/include/pthread.h" 1 3 4
# 22 "/usr/include/pthread.h" 3 4
# 1 "/usr/include/sched.h" 1 3 4
# 29 "/usr/include/sched.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 30 "/usr/include/sched.h" 2 3 4
# 43 "/usr/include/sched.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/sched.h" 1 3 4
# 76 "/usr/include/aarch64-linux-gnu/bits/sched.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/types/struct_sched_param.h" 3 4
struct sched_param
{
int sched_priority;
};
# 77 "/usr/include/aarch64-linux-gnu/bits/sched.h" 2 3 4
extern int clone (int (*__fn) (void *__arg), void *__child_stack,
int __flags, void *__arg, ...) __attribute__ ((__nothrow__ , __leaf__));
extern int unshare (int __flags) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_getcpu (void) __attribute__ ((__nothrow__ , __leaf__));
extern int getcpu (unsigned int *, unsigned int *) __attribute__ ((__nothrow__ , __leaf__));
extern int setns (int __fd, int __nstype) __attribute__ ((__nothrow__ , __leaf__));
# 44 "/usr/include/sched.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/cpu-set.h" 1 3 4
# 32 "/usr/include/aarch64-linux-gnu/bits/cpu-set.h" 3 4
typedef unsigned long int __cpu_mask;
typedef struct
{
__cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
} cpu_set_t;
# 115 "/usr/include/aarch64-linux-gnu/bits/cpu-set.h" 3 4
extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
__attribute__ ((__nothrow__ , __leaf__));
extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__ , __leaf__));
# 45 "/usr/include/sched.h" 2 3 4
extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
__attribute__ ((__nothrow__ , __leaf__));
extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_setscheduler (__pid_t __pid, int __policy,
const struct sched_param *__param) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_yield (void) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__ , __leaf__));
# 121 "/usr/include/sched.h" 3 4
extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
const cpu_set_t *__cpuset) __attribute__ ((__nothrow__ , __leaf__));
extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
cpu_set_t *__cpuset) __attribute__ ((__nothrow__ , __leaf__));
# 23 "/usr/include/pthread.h" 2 3 4
# 1 "/usr/include/time.h" 1 3 4
# 29 "/usr/include/time.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 30 "/usr/include/time.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/time.h" 1 3 4
# 73 "/usr/include/aarch64-linux-gnu/bits/time.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/timex.h" 1 3 4
# 26 "/usr/include/aarch64-linux-gnu/bits/timex.h" 3 4
struct timex
{
unsigned int modes;
__syscall_slong_t offset;
__syscall_slong_t freq;
__syscall_slong_t maxerror;
__syscall_slong_t esterror;
int status;
__syscall_slong_t constant;
__syscall_slong_t precision;
__syscall_slong_t tolerance;
struct timeval time;
__syscall_slong_t tick;
__syscall_slong_t ppsfreq;
__syscall_slong_t jitter;
int shift;
__syscall_slong_t stabil;
__syscall_slong_t jitcnt;
__syscall_slong_t calcnt;
__syscall_slong_t errcnt;
__syscall_slong_t stbcnt;
int tai;
int :32; int :32; int :32; int :32;
int :32; int :32; int :32; int :32;
int :32; int :32; int :32;
};
# 74 "/usr/include/aarch64-linux-gnu/bits/time.h" 2 3 4
extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ , __leaf__));
# 34 "/usr/include/time.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_tm.h" 1 3 4
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long int tm_gmtoff;
const char *tm_zone;
};
# 40 "/usr/include/time.h" 2 3 4
# 48 "/usr/include/time.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/types/struct_itimerspec.h" 1 3 4
struct itimerspec
{
struct timespec it_interval;
struct timespec it_value;
};
# 49 "/usr/include/time.h" 2 3 4
struct sigevent;
# 68 "/usr/include/time.h" 3 4
extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__));
extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
extern double difftime (time_t __time1, time_t __time0)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
extern size_t strftime (char *__restrict __s, size_t __maxsize,
const char *__restrict __format,
const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
extern char *strptime (const char *__restrict __s,
const char *__restrict __fmt, struct tm *__tp)
__attribute__ ((__nothrow__ , __leaf__));
extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
const char *__restrict __format,
const struct tm *__restrict __tp,
locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));
extern char *strptime_l (const char *__restrict __s,
const char *__restrict __fmt, struct tm *__tp,
locale_t __loc) __attribute__ ((__nothrow__ , __leaf__));
extern struct tm *gmtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
extern struct tm *localtime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
extern struct tm *gmtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
extern struct tm *localtime_r (const time_t *__restrict __timer,
struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__));
extern char *asctime (const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
extern char *ctime (const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__));
extern char *asctime_r (const struct tm *__restrict __tp,
char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
extern char *ctime_r (const time_t *__restrict __timer,
char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;
extern char *tzname[2];
extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__));
extern int daylight;
extern long int timezone;
# 190 "/usr/include/time.h" 3 4
extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__));
extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 205 "/usr/include/time.h" 3 4
extern int nanosleep (const struct timespec *__requested_time,
struct timespec *__remaining);
extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__));
extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__));
extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
__attribute__ ((__nothrow__ , __leaf__));
extern int clock_nanosleep (clockid_t __clock_id, int __flags,
const struct timespec *__req,
struct timespec *__rem);
extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__));
extern int timer_create (clockid_t __clock_id,
struct sigevent *__restrict __evp,
timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__));
extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
extern int timer_settime (timer_t __timerid, int __flags,
const struct itimerspec *__restrict __value,
struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__));
extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
__attribute__ ((__nothrow__ , __leaf__));
extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__));
extern int timespec_get (struct timespec *__ts, int __base)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 274 "/usr/include/time.h" 3 4
extern int getdate_err;
# 283 "/usr/include/time.h" 3 4
extern struct tm *getdate (const char *__string);
# 297 "/usr/include/time.h" 3 4
extern int getdate_r (const char *__restrict __string,
struct tm *__restrict __resbufp);
# 24 "/usr/include/pthread.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/setjmp.h" 1 3 4
# 30 "/usr/include/aarch64-linux-gnu/bits/setjmp.h" 3 4
__extension__ typedef unsigned long long __jmp_buf [22];
# 28 "/usr/include/pthread.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 29 "/usr/include/pthread.h" 2 3 4
enum
{
PTHREAD_CREATE_JOINABLE,
PTHREAD_CREATE_DETACHED
};
enum
{
PTHREAD_MUTEX_TIMED_NP,
PTHREAD_MUTEX_RECURSIVE_NP,
PTHREAD_MUTEX_ERRORCHECK_NP,
PTHREAD_MUTEX_ADAPTIVE_NP
,
PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
, PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
};
enum
{
PTHREAD_MUTEX_STALLED,
PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
PTHREAD_MUTEX_ROBUST,
PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
};
enum
{
PTHREAD_PRIO_NONE,
PTHREAD_PRIO_INHERIT,
PTHREAD_PRIO_PROTECT
};
# 100 "/usr/include/pthread.h" 3 4
enum
{
PTHREAD_RWLOCK_PREFER_READER_NP,
PTHREAD_RWLOCK_PREFER_WRITER_NP,
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
};
# 120 "/usr/include/pthread.h" 3 4
enum
{
PTHREAD_INHERIT_SCHED,
PTHREAD_EXPLICIT_SCHED
};
enum
{
PTHREAD_SCOPE_SYSTEM,
PTHREAD_SCOPE_PROCESS
};
enum
{
PTHREAD_PROCESS_PRIVATE,
PTHREAD_PROCESS_SHARED
};
# 155 "/usr/include/pthread.h" 3 4
struct _pthread_cleanup_buffer
{
void (*__routine) (void *);
void *__arg;
int __canceltype;
struct _pthread_cleanup_buffer *__prev;
};
enum
{
PTHREAD_CANCEL_ENABLE,
PTHREAD_CANCEL_DISABLE
};
enum
{
PTHREAD_CANCEL_DEFERRED,
PTHREAD_CANCEL_ASYNCHRONOUS
};
# 193 "/usr/include/pthread.h" 3 4
extern int pthread_create (pthread_t *__restrict __newthread,
const pthread_attr_t *__restrict __attr,
void *(*__start_routine) (void *),
void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
extern int pthread_join (pthread_t __th, void **__thread_return);
extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__ , __leaf__));
extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
const struct timespec *__abstime);
# 238 "/usr/include/pthread.h" 3 4
extern int pthread_clockjoin_np (pthread_t __th, void **__thread_return,
clockid_t __clockid,
const struct timespec *__abstime);
extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__ , __leaf__));
extern pthread_t pthread_self (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_destroy (pthread_attr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
int *__detachstate)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
int __detachstate)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
size_t *__guardsize)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
size_t __guardsize)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
struct sched_param *__restrict __param)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
const struct sched_param *__restrict
__param) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
__attr, int *__restrict __policy)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
__attr, int *__restrict __inherit)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
int __inherit)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
int *__restrict __scope)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
__attr, void **__restrict __stackaddr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
void *__stackaddr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
__attr, size_t *__restrict __stacksize)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
size_t __stacksize)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
void **__restrict __stackaddr,
size_t *__restrict __stacksize)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
size_t __stacksize) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
size_t __cpusetsize,
const cpu_set_t *__cpuset)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
size_t __cpusetsize,
cpu_set_t *__cpuset)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern int pthread_getattr_default_np (pthread_attr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
const struct sched_param *__param)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int pthread_getschedparam (pthread_t __target_thread,
int *__restrict __policy,
struct sched_param *__restrict __param)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
__attribute__ ((__nothrow__ , __leaf__));
extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
size_t __buflen)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__ , __leaf__));
extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__ , __leaf__));
extern int pthread_yield (void) __attribute__ ((__nothrow__ , __leaf__));
extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
const cpu_set_t *__cpuset)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
cpu_set_t *__cpuset)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3)));
# 470 "/usr/include/pthread.h" 3 4
extern int pthread_once (pthread_once_t *__once_control,
void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
# 482 "/usr/include/pthread.h" 3 4
extern int pthread_setcancelstate (int __state, int *__oldstate);
extern int pthread_setcanceltype (int __type, int *__oldtype);
extern int pthread_cancel (pthread_t __th);
extern void pthread_testcancel (void);
typedef struct
{
struct
{
__jmp_buf __cancel_jmp_buf;
int __mask_was_saved;
} __cancel_jmp_buf[1];
void *__pad[4];
} __pthread_unwind_buf_t __attribute__ ((__aligned__));
# 516 "/usr/include/pthread.h" 3 4
struct __pthread_cleanup_frame
{
void (*__cancel_routine) (void *);
void *__cancel_arg;
int __do_it;
int __cancel_type;
};
# 656 "/usr/include/pthread.h" 3 4
extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
;
# 668 "/usr/include/pthread.h" 3 4
extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
;
# 691 "/usr/include/pthread.h" 3 4
extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
;
# 704 "/usr/include/pthread.h" 3 4
extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
;
extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
__attribute__ ((__noreturn__))
__attribute__ ((__weak__))
;
struct __jmp_buf_tag;
extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__));
extern int pthread_mutex_init (pthread_mutex_t *__mutex,
const pthread_mutexattr_t *__mutexattr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
const struct timespec *__restrict
__abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex,
clockid_t __clockid,
const struct timespec *__restrict
__abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
__restrict __mutex,
int *__restrict __prioceiling)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
int __prioceiling,
int *__restrict __old_ceiling)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3)));
extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 789 "/usr/include/pthread.h" 3 4
extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
__restrict __attr,
int *__restrict __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
int __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
__attr, int *__restrict __kind)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
__restrict __attr,
int *__restrict __protocol)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
int __protocol)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
__restrict __attr,
int *__restrict __prioceiling)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
int __prioceiling)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
int *__robustness)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
int *__robustness)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
int __robustness)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
int __robustness)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 871 "/usr/include/pthread.h" 3 4
extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
const pthread_rwlockattr_t *__restrict
__attr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
const struct timespec *__restrict
__abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock,
clockid_t __clockid,
const struct timespec *__restrict
__abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
const struct timespec *__restrict
__abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock,
clockid_t __clockid,
const struct timespec *__restrict
__abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
__restrict __attr,
int *__restrict __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
int __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
__restrict __attr,
int *__restrict __pref)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
int __pref) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
const pthread_condattr_t *__restrict __cond_attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_cond_destroy (pthread_cond_t *__cond)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_cond_signal (pthread_cond_t *__cond)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_cond_broadcast (pthread_cond_t *__cond)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex)
__attribute__ ((__nonnull__ (1, 2)));
# 997 "/usr/include/pthread.h" 3 4
extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex,
const struct timespec *__restrict __abstime)
__attribute__ ((__nonnull__ (1, 2, 3)));
# 1010 "/usr/include/pthread.h" 3 4
extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex,
__clockid_t __clock_id,
const struct timespec *__restrict __abstime)
__attribute__ ((__nonnull__ (1, 2, 4)));
extern int pthread_condattr_init (pthread_condattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_condattr_getpshared (const pthread_condattr_t *
__restrict __attr,
int *__restrict __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
int __pshared) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_condattr_getclock (const pthread_condattr_t *
__restrict __attr,
__clockid_t *__restrict __clock_id)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
__clockid_t __clock_id)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 1056 "/usr/include/pthread.h" 3 4
extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_spin_lock (pthread_spinlock_t *__lock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
const pthread_barrierattr_t *__restrict
__attr, unsigned int __count)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
__restrict __attr,
int *__restrict __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
int __pshared)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 1123 "/usr/include/pthread.h" 3 4
extern int pthread_key_create (pthread_key_t *__key,
void (*__destr_function) (void *))
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__ , __leaf__));
extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__ , __leaf__));
extern int pthread_setspecific (pthread_key_t __key,
const void *__pointer) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int pthread_getcpuclockid (pthread_t __thread_id,
__clockid_t *__clock_id)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
# 1157 "/usr/include/pthread.h" 3 4
extern int pthread_atfork (void (*__prepare) (void),
void (*__parent) (void),
void (*__child) (void)) __attribute__ ((__nothrow__ , __leaf__));
# 1171 "/usr/include/pthread.h" 3 4
# 44 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/home/ubuntu/neovim/.deps/usr/include/uv/threadpool.h" 1
# 30 "/home/ubuntu/neovim/.deps/usr/include/uv/threadpool.h"
# 30 "/home/ubuntu/neovim/.deps/usr/include/uv/threadpool.h"
struct uv__work {
void (*work)(struct uv__work *w);
void (*done)(struct uv__work *w, int status);
struct uv_loop_s* loop;
struct uv__queue wq;
};
# 47 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 1 "/home/ubuntu/neovim/.deps/usr/include/uv/linux.h" 1
# 50 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h" 2
# 85 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h"
struct uv__io_s;
struct uv_loop_s;
typedef void (*uv__io_cb)(struct uv_loop_s* loop,
struct uv__io_s* w,
unsigned int events);
typedef struct uv__io_s uv__io_t;
struct uv__io_s {
uv__io_cb cb;
struct uv__queue pending_queue;
struct uv__queue watcher_queue;
unsigned int pevents;
unsigned int events;
int fd;
};
# 120 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h"
typedef struct uv_buf_t {
char* base;
size_t len;
} uv_buf_t;
typedef int uv_file;
typedef int uv_os_sock_t;
typedef int uv_os_fd_t;
typedef pid_t uv_pid_t;
typedef pthread_once_t uv_once_t;
typedef pthread_t uv_thread_t;
typedef pthread_mutex_t uv_mutex_t;
typedef pthread_rwlock_t uv_rwlock_t;
typedef sem_t uv_sem_t;
typedef pthread_cond_t uv_cond_t;
typedef pthread_key_t uv_key_t;
# 161 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h"
typedef pthread_barrier_t uv_barrier_t;
typedef gid_t uv_gid_t;
typedef uid_t uv_uid_t;
typedef struct dirent uv__dirent_t;
# 215 "/home/ubuntu/neovim/.deps/usr/include/uv/unix.h"
typedef struct {
void* handle;
char* errmsg;
} uv_lib_t;
# 72 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 2
# 191 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
typedef enum {
UV_E2BIG = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
7
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EACCES = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
13
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EADDRINUSE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
98
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EADDRNOTAVAIL = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
99
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EAFNOSUPPORT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
97
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EAGAIN = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
11
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EAI_ADDRFAMILY = (-3000), UV_EAI_AGAIN = (-3001), UV_EAI_BADFLAGS = (-3002), UV_EAI_BADHINTS = (-3013), UV_EAI_CANCELED = (-3003), UV_EAI_FAIL = (-3004), UV_EAI_FAMILY = (-3005), UV_EAI_MEMORY = (-3006), UV_EAI_NODATA = (-3007), UV_EAI_NONAME = (-3008), UV_EAI_OVERFLOW = (-3009), UV_EAI_PROTOCOL = (-3014), UV_EAI_SERVICE = (-3010), UV_EAI_SOCKTYPE = (-3011), UV_EALREADY = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
114
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EBADF = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
9
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EBUSY = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
16
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ECANCELED = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
125
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ECHARSET = (-4080), UV_ECONNABORTED = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
103
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ECONNREFUSED = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
111
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ECONNRESET = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
104
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EDESTADDRREQ = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
89
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EEXIST = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
17
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EFAULT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
14
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EFBIG = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
27
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EHOSTUNREACH = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
113
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EINTR = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
4
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EINVAL = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
22
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EIO = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
5
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EISCONN = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
106
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EISDIR = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
21
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ELOOP = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
40
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EMFILE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
24
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EMSGSIZE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
90
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENAMETOOLONG = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
36
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENETDOWN = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
100
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENETUNREACH = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
101
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENFILE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
23
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOBUFS = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
105
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENODEV = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
19
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOENT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
2
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOMEM = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
12
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENONET = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
64
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOPROTOOPT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
92
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOSPC = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
28
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOSYS = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
38
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOTCONN = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
107
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOTDIR = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
20
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOTEMPTY = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
39
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOTSOCK = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
88
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOTSUP = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
95
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EOVERFLOW = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
75
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EPERM = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
1
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EPIPE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
32
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EPROTO = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
71
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EPROTONOSUPPORT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
93
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EPROTOTYPE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
91
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ERANGE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
34
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EROFS = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
30
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ESHUTDOWN = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
108
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ESPIPE = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
29
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ESRCH = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
3
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ETIMEDOUT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
110
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ETXTBSY = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
26
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EXDEV = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
18
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_UNKNOWN = (-4094), UV_EOF = (-4095), UV_ENXIO = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
6
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EMLINK = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
31
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EHOSTDOWN = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
112
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EREMOTEIO = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
121
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENOTTY = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
25
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EFTYPE = (-4028), UV_EILSEQ = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
84
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ESOCKTNOSUPPORT = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
94
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_ENODATA = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
61
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)), UV_EUNATCH = (-(
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
49
# 193 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
)),
UV_ERRNO_MAX = (-4095) - 1
} uv_errno_t;
typedef enum {
UV_UNKNOWN_HANDLE = 0,
UV_ASYNC, UV_CHECK, UV_FS_EVENT, UV_FS_POLL, UV_HANDLE, UV_IDLE, UV_NAMED_PIPE, UV_POLL, UV_PREPARE, UV_PROCESS, UV_STREAM, UV_TCP, UV_TIMER, UV_TTY, UV_UDP, UV_SIGNAL,
UV_FILE,
UV_HANDLE_TYPE_MAX
} uv_handle_type;
typedef enum {
UV_UNKNOWN_REQ = 0,
UV_REQ, UV_CONNECT, UV_WRITE, UV_SHUTDOWN, UV_UDP_SEND, UV_FS, UV_WORK, UV_GETADDRINFO, UV_GETNAMEINFO, UV_RANDOM,
UV_REQ_TYPE_MAX
} uv_req_type;
typedef struct uv_loop_s uv_loop_t;
typedef struct uv_handle_s uv_handle_t;
typedef struct uv_dir_s uv_dir_t;
typedef struct uv_stream_s uv_stream_t;
typedef struct uv_tcp_s uv_tcp_t;
typedef struct uv_udp_s uv_udp_t;
typedef struct uv_pipe_s uv_pipe_t;
typedef struct uv_tty_s uv_tty_t;
typedef struct uv_poll_s uv_poll_t;
typedef struct uv_timer_s uv_timer_t;
typedef struct uv_prepare_s uv_prepare_t;
typedef struct uv_check_s uv_check_t;
typedef struct uv_idle_s uv_idle_t;
typedef struct uv_async_s uv_async_t;
typedef struct uv_process_s uv_process_t;
typedef struct uv_fs_event_s uv_fs_event_t;
typedef struct uv_fs_poll_s uv_fs_poll_t;
typedef struct uv_signal_s uv_signal_t;
typedef struct uv_req_s uv_req_t;
typedef struct uv_getaddrinfo_s uv_getaddrinfo_t;
typedef struct uv_getnameinfo_s uv_getnameinfo_t;
typedef struct uv_shutdown_s uv_shutdown_t;
typedef struct uv_write_s uv_write_t;
typedef struct uv_connect_s uv_connect_t;
typedef struct uv_udp_send_s uv_udp_send_t;
typedef struct uv_fs_s uv_fs_t;
typedef struct uv_work_s uv_work_t;
typedef struct uv_random_s uv_random_t;
typedef struct uv_env_item_s uv_env_item_t;
typedef struct uv_cpu_info_s uv_cpu_info_t;
typedef struct uv_interface_address_s uv_interface_address_t;
typedef struct uv_dirent_s uv_dirent_t;
typedef struct uv_passwd_s uv_passwd_t;
typedef struct uv_group_s uv_group_t;
typedef struct uv_utsname_s uv_utsname_t;
typedef struct uv_statfs_s uv_statfs_t;
typedef struct uv_metrics_s uv_metrics_t;
typedef enum {
UV_LOOP_BLOCK_SIGNAL = 0,
UV_METRICS_IDLE_TIME
} uv_loop_option;
typedef enum {
UV_RUN_DEFAULT = 0,
UV_RUN_ONCE,
UV_RUN_NOWAIT
} uv_run_mode;
__attribute__((visibility("default"))) unsigned int uv_version(void);
__attribute__((visibility("default"))) const char* uv_version_string(void);
typedef void* (*uv_malloc_func)(size_t size);
typedef void* (*uv_realloc_func)(void* ptr, size_t size);
typedef void* (*uv_calloc_func)(size_t count, size_t size);
typedef void (*uv_free_func)(void* ptr);
__attribute__((visibility("default"))) void uv_library_shutdown(void);
__attribute__((visibility("default"))) int uv_replace_allocator(uv_malloc_func malloc_func,
uv_realloc_func realloc_func,
uv_calloc_func calloc_func,
uv_free_func free_func);
__attribute__((visibility("default"))) uv_loop_t* uv_default_loop(void);
__attribute__((visibility("default"))) int uv_loop_init(uv_loop_t* loop);
__attribute__((visibility("default"))) int uv_loop_close(uv_loop_t* loop);
__attribute__((visibility("default"))) uv_loop_t* uv_loop_new(void);
__attribute__((visibility("default"))) void uv_loop_delete(uv_loop_t*);
__attribute__((visibility("default"))) size_t uv_loop_size(void);
__attribute__((visibility("default"))) int uv_loop_alive(const uv_loop_t* loop);
__attribute__((visibility("default"))) int uv_loop_configure(uv_loop_t* loop, uv_loop_option option, ...);
__attribute__((visibility("default"))) int uv_loop_fork(uv_loop_t* loop);
__attribute__((visibility("default"))) int uv_run(uv_loop_t*, uv_run_mode mode);
__attribute__((visibility("default"))) void uv_stop(uv_loop_t*);
__attribute__((visibility("default"))) void uv_ref(uv_handle_t*);
__attribute__((visibility("default"))) void uv_unref(uv_handle_t*);
__attribute__((visibility("default"))) int uv_has_ref(const uv_handle_t*);
__attribute__((visibility("default"))) void uv_update_time(uv_loop_t*);
__attribute__((visibility("default"))) uint64_t uv_now(const uv_loop_t*);
__attribute__((visibility("default"))) int uv_backend_fd(const uv_loop_t*);
__attribute__((visibility("default"))) int uv_backend_timeout(const uv_loop_t*);
typedef void (*uv_alloc_cb)(uv_handle_t* handle,
size_t suggested_size,
uv_buf_t* buf);
typedef void (*uv_read_cb)(uv_stream_t* stream,
ssize_t nread,
const uv_buf_t* buf);
typedef void (*uv_write_cb)(uv_write_t* req, int status);
typedef void (*uv_connect_cb)(uv_connect_t* req, int status);
typedef void (*uv_shutdown_cb)(uv_shutdown_t* req, int status);
typedef void (*uv_connection_cb)(uv_stream_t* server, int status);
typedef void (*uv_close_cb)(uv_handle_t* handle);
typedef void (*uv_poll_cb)(uv_poll_t* handle, int status, int events);
typedef void (*uv_timer_cb)(uv_timer_t* handle);
typedef void (*uv_async_cb)(uv_async_t* handle);
typedef void (*uv_prepare_cb)(uv_prepare_t* handle);
typedef void (*uv_check_cb)(uv_check_t* handle);
typedef void (*uv_idle_cb)(uv_idle_t* handle);
typedef void (*uv_exit_cb)(uv_process_t*, int64_t exit_status, int term_signal);
typedef void (*uv_walk_cb)(uv_handle_t* handle, void* arg);
typedef void (*uv_fs_cb)(uv_fs_t* req);
typedef void (*uv_work_cb)(uv_work_t* req);
typedef void (*uv_after_work_cb)(uv_work_t* req, int status);
typedef void (*uv_getaddrinfo_cb)(uv_getaddrinfo_t* req,
int status,
struct addrinfo* res);
typedef void (*uv_getnameinfo_cb)(uv_getnameinfo_t* req,
int status,
const char* hostname,
const char* service);
typedef void (*uv_random_cb)(uv_random_t* req,
int status,
void* buf,
size_t buflen);
typedef enum {
UV_CLOCK_MONOTONIC,
UV_CLOCK_REALTIME
} uv_clock_id;
typedef struct {
long tv_sec;
long tv_nsec;
} uv_timespec_t;
typedef struct {
int64_t tv_sec;
int32_t tv_nsec;
} uv_timespec64_t;
typedef struct {
long tv_sec;
long tv_usec;
} uv_timeval_t;
typedef struct {
int64_t tv_sec;
int32_t tv_usec;
} uv_timeval64_t;
typedef struct {
uint64_t st_dev;
uint64_t st_mode;
uint64_t st_nlink;
uint64_t st_uid;
uint64_t st_gid;
uint64_t st_rdev;
uint64_t st_ino;
uint64_t st_size;
uint64_t st_blksize;
uint64_t st_blocks;
uint64_t st_flags;
uint64_t st_gen;
uv_timespec_t st_atim;
uv_timespec_t st_mtim;
uv_timespec_t st_ctim;
uv_timespec_t st_birthtim;
} uv_stat_t;
typedef void (*uv_fs_event_cb)(uv_fs_event_t* handle,
const char* filename,
int events,
int status);
typedef void (*uv_fs_poll_cb)(uv_fs_poll_t* handle,
int status,
const uv_stat_t* prev,
const uv_stat_t* curr);
typedef void (*uv_signal_cb)(uv_signal_t* handle, int signum);
typedef enum {
UV_LEAVE_GROUP = 0,
UV_JOIN_GROUP
} uv_membership;
__attribute__((visibility("default"))) int uv_translate_sys_error(int sys_errno);
__attribute__((visibility("default"))) const char* uv_strerror(int err);
__attribute__((visibility("default"))) char* uv_strerror_r(int err, char* buf, size_t buflen);
__attribute__((visibility("default"))) const char* uv_err_name(int err);
__attribute__((visibility("default"))) char* uv_err_name_r(int err, char* buf, size_t buflen);
# 440 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
struct uv_req_s {
void* data; uv_req_type type; void* reserved[6];
};
__attribute__((visibility("default"))) int uv_shutdown(uv_shutdown_t* req,
uv_stream_t* handle,
uv_shutdown_cb cb);
struct uv_shutdown_s {
void* data; uv_req_type type; void* reserved[6];
uv_stream_t* handle;
uv_shutdown_cb cb;
};
# 477 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
struct uv_handle_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
};
__attribute__((visibility("default"))) size_t uv_handle_size(uv_handle_type type);
__attribute__((visibility("default"))) uv_handle_type uv_handle_get_type(const uv_handle_t* handle);
__attribute__((visibility("default"))) const char* uv_handle_type_name(uv_handle_type type);
__attribute__((visibility("default"))) void* uv_handle_get_data(const uv_handle_t* handle);
__attribute__((visibility("default"))) uv_loop_t* uv_handle_get_loop(const uv_handle_t* handle);
__attribute__((visibility("default"))) void uv_handle_set_data(uv_handle_t* handle, void* data);
__attribute__((visibility("default"))) size_t uv_req_size(uv_req_type type);
__attribute__((visibility("default"))) void* uv_req_get_data(const uv_req_t* req);
__attribute__((visibility("default"))) void uv_req_set_data(uv_req_t* req, void* data);
__attribute__((visibility("default"))) uv_req_type uv_req_get_type(const uv_req_t* req);
__attribute__((visibility("default"))) const char* uv_req_type_name(uv_req_type type);
__attribute__((visibility("default"))) int uv_is_active(const uv_handle_t* handle);
__attribute__((visibility("default"))) void uv_walk(uv_loop_t* loop, uv_walk_cb walk_cb, void* arg);
__attribute__((visibility("default"))) void uv_print_all_handles(uv_loop_t* loop, FILE* stream);
__attribute__((visibility("default"))) void uv_print_active_handles(uv_loop_t* loop, FILE* stream);
__attribute__((visibility("default"))) void uv_close(uv_handle_t* handle, uv_close_cb close_cb);
__attribute__((visibility("default"))) int uv_send_buffer_size(uv_handle_t* handle, int* value);
__attribute__((visibility("default"))) int uv_recv_buffer_size(uv_handle_t* handle, int* value);
__attribute__((visibility("default"))) int uv_fileno(const uv_handle_t* handle, uv_os_fd_t* fd);
__attribute__((visibility("default"))) uv_buf_t uv_buf_init(char* base, unsigned int len);
__attribute__((visibility("default"))) int uv_pipe(uv_file fds[2], int read_flags, int write_flags);
__attribute__((visibility("default"))) int uv_socketpair(int type,
int protocol,
uv_os_sock_t socket_vector[2],
int flags0,
int flags1);
# 533 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
struct uv_stream_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
size_t write_queue_size; uv_alloc_cb alloc_cb; uv_read_cb read_cb; uv_connect_t *connect_req; uv_shutdown_t *shutdown_req; uv__io_t io_watcher; struct uv__queue write_queue; struct uv__queue write_completed_queue; uv_connection_cb connection_cb; int delayed_error; int accepted_fd; void* queued_fds;
};
__attribute__((visibility("default"))) size_t uv_stream_get_write_queue_size(const uv_stream_t* stream);
__attribute__((visibility("default"))) int uv_listen(uv_stream_t* stream, int backlog, uv_connection_cb cb);
__attribute__((visibility("default"))) int uv_accept(uv_stream_t* server, uv_stream_t* client);
__attribute__((visibility("default"))) int uv_read_start(uv_stream_t*,
uv_alloc_cb alloc_cb,
uv_read_cb read_cb);
__attribute__((visibility("default"))) int uv_read_stop(uv_stream_t*);
__attribute__((visibility("default"))) int uv_write(uv_write_t* req,
uv_stream_t* handle,
const uv_buf_t bufs[],
unsigned int nbufs,
uv_write_cb cb);
__attribute__((visibility("default"))) int uv_write2(uv_write_t* req,
uv_stream_t* handle,
const uv_buf_t bufs[],
unsigned int nbufs,
uv_stream_t* send_handle,
uv_write_cb cb);
__attribute__((visibility("default"))) int uv_try_write(uv_stream_t* handle,
const uv_buf_t bufs[],
unsigned int nbufs);
__attribute__((visibility("default"))) int uv_try_write2(uv_stream_t* handle,
const uv_buf_t bufs[],
unsigned int nbufs,
uv_stream_t* send_handle);
struct uv_write_s {
void* data; uv_req_type type; void* reserved[6];
uv_write_cb cb;
uv_stream_t* send_handle;
uv_stream_t* handle;
struct uv__queue queue; unsigned int write_index; uv_buf_t* bufs; unsigned int nbufs; int error; uv_buf_t bufsml[4];
};
__attribute__((visibility("default"))) int uv_is_readable(const uv_stream_t* handle);
__attribute__((visibility("default"))) int uv_is_writable(const uv_stream_t* handle);
__attribute__((visibility("default"))) int uv_stream_set_blocking(uv_stream_t* handle, int blocking);
__attribute__((visibility("default"))) int uv_is_closing(const uv_handle_t* handle);
struct uv_tcp_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
size_t write_queue_size; uv_alloc_cb alloc_cb; uv_read_cb read_cb; uv_connect_t *connect_req; uv_shutdown_t *shutdown_req; uv__io_t io_watcher; struct uv__queue write_queue; struct uv__queue write_completed_queue; uv_connection_cb connection_cb; int delayed_error; int accepted_fd; void* queued_fds;
};
__attribute__((visibility("default"))) int uv_tcp_init(uv_loop_t*, uv_tcp_t* handle);
__attribute__((visibility("default"))) int uv_tcp_init_ex(uv_loop_t*, uv_tcp_t* handle, unsigned int flags);
__attribute__((visibility("default"))) int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock);
__attribute__((visibility("default"))) int uv_tcp_nodelay(uv_tcp_t* handle, int enable);
__attribute__((visibility("default"))) int uv_tcp_keepalive(uv_tcp_t* handle,
int enable,
unsigned int delay);
__attribute__((visibility("default"))) int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable);
enum uv_tcp_flags {
UV_TCP_IPV6ONLY = 1
};
__attribute__((visibility("default"))) int uv_tcp_bind(uv_tcp_t* handle,
const struct sockaddr* addr,
unsigned int flags);
__attribute__((visibility("default"))) int uv_tcp_getsockname(const uv_tcp_t* handle,
struct sockaddr* name,
int* namelen);
__attribute__((visibility("default"))) int uv_tcp_getpeername(const uv_tcp_t* handle,
struct sockaddr* name,
int* namelen);
__attribute__((visibility("default"))) int uv_tcp_close_reset(uv_tcp_t* handle, uv_close_cb close_cb);
__attribute__((visibility("default"))) int uv_tcp_connect(uv_connect_t* req,
uv_tcp_t* handle,
const struct sockaddr* addr,
uv_connect_cb cb);
struct uv_connect_s {
void* data; uv_req_type type; void* reserved[6];
uv_connect_cb cb;
uv_stream_t* handle;
struct uv__queue queue;
};
enum uv_udp_flags {
UV_UDP_IPV6ONLY = 1,
UV_UDP_PARTIAL = 2,
# 654 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
UV_UDP_REUSEADDR = 4,
UV_UDP_MMSG_CHUNK = 8,
UV_UDP_MMSG_FREE = 16,
UV_UDP_LINUX_RECVERR = 32,
UV_UDP_RECVMMSG = 256
};
typedef void (*uv_udp_send_cb)(uv_udp_send_t* req, int status);
typedef void (*uv_udp_recv_cb)(uv_udp_t* handle,
ssize_t nread,
const uv_buf_t* buf,
const struct sockaddr* addr,
unsigned flags);
struct uv_udp_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
size_t send_queue_size;
size_t send_queue_count;
uv_alloc_cb alloc_cb; uv_udp_recv_cb recv_cb; uv__io_t io_watcher; struct uv__queue write_queue; struct uv__queue write_completed_queue;
};
struct uv_udp_send_s {
void* data; uv_req_type type; void* reserved[6];
uv_udp_t* handle;
uv_udp_send_cb cb;
struct uv__queue queue; struct sockaddr_storage addr; unsigned int nbufs; uv_buf_t* bufs; ssize_t status; uv_udp_send_cb send_cb; uv_buf_t bufsml[4];
};
__attribute__((visibility("default"))) int uv_udp_init(uv_loop_t*, uv_udp_t* handle);
__attribute__((visibility("default"))) int uv_udp_init_ex(uv_loop_t*, uv_udp_t* handle, unsigned int flags);
__attribute__((visibility("default"))) int uv_udp_open(uv_udp_t* handle, uv_os_sock_t sock);
__attribute__((visibility("default"))) int uv_udp_bind(uv_udp_t* handle,
const struct sockaddr* addr,
unsigned int flags);
__attribute__((visibility("default"))) int uv_udp_connect(uv_udp_t* handle, const struct sockaddr* addr);
__attribute__((visibility("default"))) int uv_udp_getpeername(const uv_udp_t* handle,
struct sockaddr* name,
int* namelen);
__attribute__((visibility("default"))) int uv_udp_getsockname(const uv_udp_t* handle,
struct sockaddr* name,
int* namelen);
__attribute__((visibility("default"))) int uv_udp_set_membership(uv_udp_t* handle,
const char* multicast_addr,
const char* interface_addr,
uv_membership membership);
__attribute__((visibility("default"))) int uv_udp_set_source_membership(uv_udp_t* handle,
const char* multicast_addr,
const char* interface_addr,
const char* source_addr,
uv_membership membership);
__attribute__((visibility("default"))) int uv_udp_set_multicast_loop(uv_udp_t* handle, int on);
__attribute__((visibility("default"))) int uv_udp_set_multicast_ttl(uv_udp_t* handle, int ttl);
__attribute__((visibility("default"))) int uv_udp_set_multicast_interface(uv_udp_t* handle,
const char* interface_addr);
__attribute__((visibility("default"))) int uv_udp_set_broadcast(uv_udp_t* handle, int on);
__attribute__((visibility("default"))) int uv_udp_set_ttl(uv_udp_t* handle, int ttl);
__attribute__((visibility("default"))) int uv_udp_send(uv_udp_send_t* req,
uv_udp_t* handle,
const uv_buf_t bufs[],
unsigned int nbufs,
const struct sockaddr* addr,
uv_udp_send_cb send_cb);
__attribute__((visibility("default"))) int uv_udp_try_send(uv_udp_t* handle,
const uv_buf_t bufs[],
unsigned int nbufs,
const struct sockaddr* addr);
__attribute__((visibility("default"))) int uv_udp_recv_start(uv_udp_t* handle,
uv_alloc_cb alloc_cb,
uv_udp_recv_cb recv_cb);
__attribute__((visibility("default"))) int uv_udp_using_recvmmsg(const uv_udp_t* handle);
__attribute__((visibility("default"))) int uv_udp_recv_stop(uv_udp_t* handle);
__attribute__((visibility("default"))) size_t uv_udp_get_send_queue_size(const uv_udp_t* handle);
__attribute__((visibility("default"))) size_t uv_udp_get_send_queue_count(const uv_udp_t* handle);
struct uv_tty_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
size_t write_queue_size; uv_alloc_cb alloc_cb; uv_read_cb read_cb; uv_connect_t *connect_req; uv_shutdown_t *shutdown_req; uv__io_t io_watcher; struct uv__queue write_queue; struct uv__queue write_completed_queue; uv_connection_cb connection_cb; int delayed_error; int accepted_fd; void* queued_fds;
struct termios orig_termios; int mode;
};
typedef enum {
UV_TTY_MODE_NORMAL,
UV_TTY_MODE_RAW,
UV_TTY_MODE_IO
} uv_tty_mode_t;
typedef enum {
UV_TTY_SUPPORTED,
UV_TTY_UNSUPPORTED
} uv_tty_vtermstate_t;
__attribute__((visibility("default"))) int uv_tty_init(uv_loop_t*, uv_tty_t*, uv_file fd, int readable);
__attribute__((visibility("default"))) int uv_tty_set_mode(uv_tty_t*, uv_tty_mode_t mode);
__attribute__((visibility("default"))) int uv_tty_reset_mode(void);
__attribute__((visibility("default"))) int uv_tty_get_winsize(uv_tty_t*, int* width, int* height);
__attribute__((visibility("default"))) void uv_tty_set_vterm_state(uv_tty_vtermstate_t state);
__attribute__((visibility("default"))) int uv_tty_get_vterm_state(uv_tty_vtermstate_t* state);
# 809 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
__attribute__((visibility("default"))) uv_handle_type uv_guess_handle(uv_file file);
enum {
UV_PIPE_NO_TRUNCATE = 1u << 0
};
struct uv_pipe_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
size_t write_queue_size; uv_alloc_cb alloc_cb; uv_read_cb read_cb; uv_connect_t *connect_req; uv_shutdown_t *shutdown_req; uv__io_t io_watcher; struct uv__queue write_queue; struct uv__queue write_completed_queue; uv_connection_cb connection_cb; int delayed_error; int accepted_fd; void* queued_fds;
int ipc;
const char* pipe_fname;
};
__attribute__((visibility("default"))) int uv_pipe_init(uv_loop_t*, uv_pipe_t* handle, int ipc);
__attribute__((visibility("default"))) int uv_pipe_open(uv_pipe_t*, uv_file file);
__attribute__((visibility("default"))) int uv_pipe_bind(uv_pipe_t* handle, const char* name);
__attribute__((visibility("default"))) int uv_pipe_bind2(uv_pipe_t* handle,
const char* name,
size_t namelen,
unsigned int flags);
__attribute__((visibility("default"))) void uv_pipe_connect(uv_connect_t* req,
uv_pipe_t* handle,
const char* name,
uv_connect_cb cb);
__attribute__((visibility("default"))) int uv_pipe_connect2(uv_connect_t* req,
uv_pipe_t* handle,
const char* name,
size_t namelen,
unsigned int flags,
uv_connect_cb cb);
__attribute__((visibility("default"))) int uv_pipe_getsockname(const uv_pipe_t* handle,
char* buffer,
size_t* size);
__attribute__((visibility("default"))) int uv_pipe_getpeername(const uv_pipe_t* handle,
char* buffer,
size_t* size);
__attribute__((visibility("default"))) void uv_pipe_pending_instances(uv_pipe_t* handle, int count);
__attribute__((visibility("default"))) int uv_pipe_pending_count(uv_pipe_t* handle);
__attribute__((visibility("default"))) uv_handle_type uv_pipe_pending_type(uv_pipe_t* handle);
__attribute__((visibility("default"))) int uv_pipe_chmod(uv_pipe_t* handle, int flags);
struct uv_poll_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_poll_cb poll_cb;
uv__io_t io_watcher;
};
enum uv_poll_event {
UV_READABLE = 1,
UV_WRITABLE = 2,
UV_DISCONNECT = 4,
UV_PRIORITIZED = 8
};
__attribute__((visibility("default"))) int uv_poll_init(uv_loop_t* loop, uv_poll_t* handle, int fd);
__attribute__((visibility("default"))) int uv_poll_init_socket(uv_loop_t* loop,
uv_poll_t* handle,
uv_os_sock_t socket);
__attribute__((visibility("default"))) int uv_poll_start(uv_poll_t* handle, int events, uv_poll_cb cb);
__attribute__((visibility("default"))) int uv_poll_stop(uv_poll_t* handle);
struct uv_prepare_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_prepare_cb prepare_cb; struct uv__queue queue;
};
__attribute__((visibility("default"))) int uv_prepare_init(uv_loop_t*, uv_prepare_t* prepare);
__attribute__((visibility("default"))) int uv_prepare_start(uv_prepare_t* prepare, uv_prepare_cb cb);
__attribute__((visibility("default"))) int uv_prepare_stop(uv_prepare_t* prepare);
struct uv_check_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_check_cb check_cb; struct uv__queue queue;
};
__attribute__((visibility("default"))) int uv_check_init(uv_loop_t*, uv_check_t* check);
__attribute__((visibility("default"))) int uv_check_start(uv_check_t* check, uv_check_cb cb);
__attribute__((visibility("default"))) int uv_check_stop(uv_check_t* check);
struct uv_idle_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_idle_cb idle_cb; struct uv__queue queue;
};
__attribute__((visibility("default"))) int uv_idle_init(uv_loop_t*, uv_idle_t* idle);
__attribute__((visibility("default"))) int uv_idle_start(uv_idle_t* idle, uv_idle_cb cb);
__attribute__((visibility("default"))) int uv_idle_stop(uv_idle_t* idle);
struct uv_async_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_async_cb async_cb; struct uv__queue queue; int pending;
};
__attribute__((visibility("default"))) int uv_async_init(uv_loop_t*,
uv_async_t* async,
uv_async_cb async_cb);
__attribute__((visibility("default"))) int uv_async_send(uv_async_t* async);
struct uv_timer_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_timer_cb timer_cb; union { void* heap[3]; struct uv__queue queue; } node; uint64_t timeout; uint64_t repeat; uint64_t start_id;
};
__attribute__((visibility("default"))) int uv_timer_init(uv_loop_t*, uv_timer_t* handle);
__attribute__((visibility("default"))) int uv_timer_start(uv_timer_t* handle,
uv_timer_cb cb,
uint64_t timeout,
uint64_t repeat);
__attribute__((visibility("default"))) int uv_timer_stop(uv_timer_t* handle);
__attribute__((visibility("default"))) int uv_timer_again(uv_timer_t* handle);
__attribute__((visibility("default"))) void uv_timer_set_repeat(uv_timer_t* handle, uint64_t repeat);
__attribute__((visibility("default"))) uint64_t uv_timer_get_repeat(const uv_timer_t* handle);
__attribute__((visibility("default"))) uint64_t uv_timer_get_due_in(const uv_timer_t* handle);
struct uv_getaddrinfo_s {
void* data; uv_req_type type; void* reserved[6];
uv_loop_t* loop;
struct uv__work work_req; uv_getaddrinfo_cb cb; struct addrinfo* hints; char* hostname; char* service; struct addrinfo* addrinfo; int retcode;
};
__attribute__((visibility("default"))) int uv_getaddrinfo(uv_loop_t* loop,
uv_getaddrinfo_t* req,
uv_getaddrinfo_cb getaddrinfo_cb,
const char* node,
const char* service,
const struct addrinfo* hints);
__attribute__((visibility("default"))) void uv_freeaddrinfo(struct addrinfo* ai);
struct uv_getnameinfo_s {
void* data; uv_req_type type; void* reserved[6];
uv_loop_t* loop;
struct uv__work work_req; uv_getnameinfo_cb getnameinfo_cb; struct sockaddr_storage storage; int flags; char host[
# 974 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
1025
# 974 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
]; char service[
# 974 "/home/ubuntu/neovim/.deps/usr/include/uv.h" 3 4
32
# 974 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
]; int retcode;
};
__attribute__((visibility("default"))) int uv_getnameinfo(uv_loop_t* loop,
uv_getnameinfo_t* req,
uv_getnameinfo_cb getnameinfo_cb,
const struct sockaddr* addr,
int flags);
typedef enum {
UV_IGNORE = 0x00,
UV_CREATE_PIPE = 0x01,
UV_INHERIT_FD = 0x02,
UV_INHERIT_STREAM = 0x04,
UV_READABLE_PIPE = 0x10,
UV_WRITABLE_PIPE = 0x20,
UV_NONBLOCK_PIPE = 0x40,
UV_OVERLAPPED_PIPE = 0x40
} uv_stdio_flags;
typedef struct uv_stdio_container_s {
uv_stdio_flags flags;
union {
uv_stream_t* stream;
int fd;
} data;
} uv_stdio_container_t;
typedef struct uv_process_options_s {
uv_exit_cb exit_cb;
const char* file;
char** args;
char** env;
const char* cwd;
unsigned int flags;
# 1052 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
int stdio_count;
uv_stdio_container_t* stdio;
uv_uid_t uid;
uv_gid_t gid;
} uv_process_options_t;
enum uv_process_flags {
UV_PROCESS_SETUID = (1 << 0),
UV_PROCESS_SETGID = (1 << 1),
UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS = (1 << 2),
UV_PROCESS_DETACHED = (1 << 3),
UV_PROCESS_WINDOWS_HIDE = (1 << 4),
UV_PROCESS_WINDOWS_HIDE_CONSOLE = (1 << 5),
UV_PROCESS_WINDOWS_HIDE_GUI = (1 << 6),
UV_PROCESS_WINDOWS_FILE_PATH_EXACT_NAME = (1 << 7)
};
struct uv_process_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_exit_cb exit_cb;
int pid;
struct uv__queue queue; int status;
};
__attribute__((visibility("default"))) int uv_spawn(uv_loop_t* loop,
uv_process_t* handle,
const uv_process_options_t* options);
__attribute__((visibility("default"))) int uv_process_kill(uv_process_t*, int signum);
__attribute__((visibility("default"))) int uv_kill(int pid, int signum);
__attribute__((visibility("default"))) uv_pid_t uv_process_get_pid(const uv_process_t*);
struct uv_work_s {
void* data; uv_req_type type; void* reserved[6];
uv_loop_t* loop;
uv_work_cb work_cb;
uv_after_work_cb after_work_cb;
struct uv__work work_req;
};
__attribute__((visibility("default"))) int uv_queue_work(uv_loop_t* loop,
uv_work_t* req,
uv_work_cb work_cb,
uv_after_work_cb after_work_cb);
__attribute__((visibility("default"))) int uv_cancel(uv_req_t* req);
struct uv_cpu_times_s {
uint64_t user;
uint64_t nice;
uint64_t sys;
uint64_t idle;
uint64_t irq;
};
struct uv_cpu_info_s {
char* model;
int speed;
struct uv_cpu_times_s cpu_times;
};
struct uv_interface_address_s {
char* name;
char phys_addr[6];
int is_internal;
union {
struct sockaddr_in address4;
struct sockaddr_in6 address6;
} address;
union {
struct sockaddr_in netmask4;
struct sockaddr_in6 netmask6;
} netmask;
};
struct uv_passwd_s {
char* username;
unsigned long uid;
unsigned long gid;
char* shell;
char* homedir;
};
struct uv_group_s {
char* groupname;
unsigned long gid;
char** members;
};
struct uv_utsname_s {
char sysname[256];
char release[256];
char version[256];
char machine[256];
};
struct uv_statfs_s {
uint64_t f_type;
uint64_t f_bsize;
uint64_t f_blocks;
uint64_t f_bfree;
uint64_t f_bavail;
uint64_t f_files;
uint64_t f_ffree;
uint64_t f_spare[4];
};
typedef enum {
UV_DIRENT_UNKNOWN,
UV_DIRENT_FILE,
UV_DIRENT_DIR,
UV_DIRENT_LINK,
UV_DIRENT_FIFO,
UV_DIRENT_SOCKET,
UV_DIRENT_CHAR,
UV_DIRENT_BLOCK
} uv_dirent_type_t;
struct uv_dirent_s {
const char* name;
uv_dirent_type_t type;
};
__attribute__((visibility("default"))) char** uv_setup_args(int argc, char** argv);
__attribute__((visibility("default"))) int uv_get_process_title(char* buffer, size_t size);
__attribute__((visibility("default"))) int uv_set_process_title(const char* title);
__attribute__((visibility("default"))) int uv_resident_set_memory(size_t* rss);
__attribute__((visibility("default"))) int uv_uptime(double* uptime);
__attribute__((visibility("default"))) uv_os_fd_t uv_get_osfhandle(int fd);
__attribute__((visibility("default"))) int uv_open_osfhandle(uv_os_fd_t os_fd);
typedef struct {
uv_timeval_t ru_utime;
uv_timeval_t ru_stime;
uint64_t ru_maxrss;
uint64_t ru_ixrss;
uint64_t ru_idrss;
uint64_t ru_isrss;
uint64_t ru_minflt;
uint64_t ru_majflt;
uint64_t ru_nswap;
uint64_t ru_inblock;
uint64_t ru_oublock;
uint64_t ru_msgsnd;
uint64_t ru_msgrcv;
uint64_t ru_nsignals;
uint64_t ru_nvcsw;
uint64_t ru_nivcsw;
} uv_rusage_t;
__attribute__((visibility("default"))) int uv_getrusage(uv_rusage_t* rusage);
__attribute__((visibility("default"))) int uv_os_homedir(char* buffer, size_t* size);
__attribute__((visibility("default"))) int uv_os_tmpdir(char* buffer, size_t* size);
__attribute__((visibility("default"))) int uv_os_get_passwd(uv_passwd_t* pwd);
__attribute__((visibility("default"))) void uv_os_free_passwd(uv_passwd_t* pwd);
__attribute__((visibility("default"))) int uv_os_get_passwd2(uv_passwd_t* pwd, uv_uid_t uid);
__attribute__((visibility("default"))) int uv_os_get_group(uv_group_t* grp, uv_uid_t gid);
__attribute__((visibility("default"))) void uv_os_free_group(uv_group_t* grp);
__attribute__((visibility("default"))) uv_pid_t uv_os_getpid(void);
__attribute__((visibility("default"))) uv_pid_t uv_os_getppid(void);
# 1291 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
__attribute__((visibility("default"))) int uv_os_getpriority(uv_pid_t pid, int* priority);
__attribute__((visibility("default"))) int uv_os_setpriority(uv_pid_t pid, int priority);
enum {
UV_THREAD_PRIORITY_HIGHEST = 2,
UV_THREAD_PRIORITY_ABOVE_NORMAL = 1,
UV_THREAD_PRIORITY_NORMAL = 0,
UV_THREAD_PRIORITY_BELOW_NORMAL = -1,
UV_THREAD_PRIORITY_LOWEST = -2,
};
__attribute__((visibility("default"))) int uv_thread_getpriority(uv_thread_t tid, int* priority);
__attribute__((visibility("default"))) int uv_thread_setpriority(uv_thread_t tid, int priority);
__attribute__((visibility("default"))) unsigned int uv_available_parallelism(void);
__attribute__((visibility("default"))) int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count);
__attribute__((visibility("default"))) void uv_free_cpu_info(uv_cpu_info_t* cpu_infos, int count);
__attribute__((visibility("default"))) int uv_cpumask_size(void);
__attribute__((visibility("default"))) int uv_interface_addresses(uv_interface_address_t** addresses,
int* count);
__attribute__((visibility("default"))) void uv_free_interface_addresses(uv_interface_address_t* addresses,
int count);
struct uv_env_item_s {
char* name;
char* value;
};
__attribute__((visibility("default"))) int uv_os_environ(uv_env_item_t** envitems, int* count);
__attribute__((visibility("default"))) void uv_os_free_environ(uv_env_item_t* envitems, int count);
__attribute__((visibility("default"))) int uv_os_getenv(const char* name, char* buffer, size_t* size);
__attribute__((visibility("default"))) int uv_os_setenv(const char* name, const char* value);
__attribute__((visibility("default"))) int uv_os_unsetenv(const char* name);
# 1337 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
__attribute__((visibility("default"))) int uv_os_gethostname(char* buffer, size_t* size);
__attribute__((visibility("default"))) int uv_os_uname(uv_utsname_t* buffer);
struct uv_metrics_s {
uint64_t loop_count;
uint64_t events;
uint64_t events_waiting;
uint64_t* reserved[13];
};
__attribute__((visibility("default"))) int uv_metrics_info(uv_loop_t* loop, uv_metrics_t* metrics);
__attribute__((visibility("default"))) uint64_t uv_metrics_idle_time(uv_loop_t* loop);
typedef enum {
UV_FS_UNKNOWN = -1,
UV_FS_CUSTOM,
UV_FS_OPEN,
UV_FS_CLOSE,
UV_FS_READ,
UV_FS_WRITE,
UV_FS_SENDFILE,
UV_FS_STAT,
UV_FS_LSTAT,
UV_FS_FSTAT,
UV_FS_FTRUNCATE,
UV_FS_UTIME,
UV_FS_FUTIME,
UV_FS_ACCESS,
UV_FS_CHMOD,
UV_FS_FCHMOD,
UV_FS_FSYNC,
UV_FS_FDATASYNC,
UV_FS_UNLINK,
UV_FS_RMDIR,
UV_FS_MKDIR,
UV_FS_MKDTEMP,
UV_FS_RENAME,
UV_FS_SCANDIR,
UV_FS_LINK,
UV_FS_SYMLINK,
UV_FS_READLINK,
UV_FS_CHOWN,
UV_FS_FCHOWN,
UV_FS_REALPATH,
UV_FS_COPYFILE,
UV_FS_LCHOWN,
UV_FS_OPENDIR,
UV_FS_READDIR,
UV_FS_CLOSEDIR,
UV_FS_STATFS,
UV_FS_MKSTEMP,
UV_FS_LUTIME
} uv_fs_type;
struct uv_dir_s {
uv_dirent_t* dirents;
size_t nentries;
void* reserved[4];
DIR* dir;
};
struct uv_fs_s {
void* data; uv_req_type type; void* reserved[6];
uv_fs_type fs_type;
uv_loop_t* loop;
uv_fs_cb cb;
ssize_t result;
void* ptr;
const char* path;
uv_stat_t statbuf;
const char *new_path; uv_file file; int flags; mode_t mode; unsigned int nbufs; uv_buf_t* bufs; off_t off; uv_uid_t uid; uv_gid_t gid; double atime; double mtime; struct uv__work work_req; uv_buf_t bufsml[4];
};
__attribute__((visibility("default"))) uv_fs_type uv_fs_get_type(const uv_fs_t*);
__attribute__((visibility("default"))) ssize_t uv_fs_get_result(const uv_fs_t*);
__attribute__((visibility("default"))) int uv_fs_get_system_error(const uv_fs_t*);
__attribute__((visibility("default"))) void* uv_fs_get_ptr(const uv_fs_t*);
__attribute__((visibility("default"))) const char* uv_fs_get_path(const uv_fs_t*);
__attribute__((visibility("default"))) uv_stat_t* uv_fs_get_statbuf(uv_fs_t*);
__attribute__((visibility("default"))) void uv_fs_req_cleanup(uv_fs_t* req);
__attribute__((visibility("default"))) int uv_fs_close(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_open(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
int flags,
int mode,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_read(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
const uv_buf_t bufs[],
unsigned int nbufs,
int64_t offset,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_unlink(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_write(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
const uv_buf_t bufs[],
unsigned int nbufs,
int64_t offset,
uv_fs_cb cb);
# 1467 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
__attribute__((visibility("default"))) int uv_fs_copyfile(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
const char* new_path,
int flags,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_mkdir(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
int mode,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_mkdtemp(uv_loop_t* loop,
uv_fs_t* req,
const char* tpl,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_mkstemp(uv_loop_t* loop,
uv_fs_t* req,
const char* tpl,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_rmdir(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_scandir(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
int flags,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_scandir_next(uv_fs_t* req,
uv_dirent_t* ent);
__attribute__((visibility("default"))) int uv_fs_opendir(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_readdir(uv_loop_t* loop,
uv_fs_t* req,
uv_dir_t* dir,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_closedir(uv_loop_t* loop,
uv_fs_t* req,
uv_dir_t* dir,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_stat(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_fstat(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_rename(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
const char* new_path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_fsync(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_fdatasync(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_ftruncate(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
int64_t offset,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_sendfile(uv_loop_t* loop,
uv_fs_t* req,
uv_file out_fd,
uv_file in_fd,
int64_t in_offset,
size_t length,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_access(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
int mode,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_chmod(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
int mode,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_utime(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
double atime,
double mtime,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_futime(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
double atime,
double mtime,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_lutime(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
double atime,
double mtime,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_lstat(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_link(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
const char* new_path,
uv_fs_cb cb);
# 1592 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
__attribute__((visibility("default"))) int uv_fs_symlink(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
const char* new_path,
int flags,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_readlink(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_realpath(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_fchmod(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
int mode,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_chown(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_uid_t uid,
uv_gid_t gid,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_fchown(uv_loop_t* loop,
uv_fs_t* req,
uv_file file,
uv_uid_t uid,
uv_gid_t gid,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_lchown(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_uid_t uid,
uv_gid_t gid,
uv_fs_cb cb);
__attribute__((visibility("default"))) int uv_fs_statfs(uv_loop_t* loop,
uv_fs_t* req,
const char* path,
uv_fs_cb cb);
enum uv_fs_event {
UV_RENAME = 1,
UV_CHANGE = 2
};
struct uv_fs_event_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
char* path;
uv_fs_event_cb cb; struct uv__queue watchers; int wd;
};
struct uv_fs_poll_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
void* poll_ctx;
};
__attribute__((visibility("default"))) int uv_fs_poll_init(uv_loop_t* loop, uv_fs_poll_t* handle);
__attribute__((visibility("default"))) int uv_fs_poll_start(uv_fs_poll_t* handle,
uv_fs_poll_cb poll_cb,
const char* path,
unsigned int interval);
__attribute__((visibility("default"))) int uv_fs_poll_stop(uv_fs_poll_t* handle);
__attribute__((visibility("default"))) int uv_fs_poll_getpath(uv_fs_poll_t* handle,
char* buffer,
size_t* size);
struct uv_signal_s {
void* data; uv_loop_t* loop; uv_handle_type type; uv_close_cb close_cb; struct uv__queue handle_queue; union { int fd; void* reserved[4]; } u; uv_handle_t* next_closing; unsigned int flags;
uv_signal_cb signal_cb;
int signum;
struct { struct uv_signal_s* rbe_left; struct uv_signal_s* rbe_right; struct uv_signal_s* rbe_parent; int rbe_color; } tree_entry; unsigned int caught_signals; unsigned int dispatched_signals;
};
__attribute__((visibility("default"))) int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle);
__attribute__((visibility("default"))) int uv_signal_start(uv_signal_t* handle,
uv_signal_cb signal_cb,
int signum);
__attribute__((visibility("default"))) int uv_signal_start_oneshot(uv_signal_t* handle,
uv_signal_cb signal_cb,
int signum);
__attribute__((visibility("default"))) int uv_signal_stop(uv_signal_t* handle);
__attribute__((visibility("default"))) void uv_loadavg(double avg[3]);
enum uv_fs_event_flags {
UV_FS_EVENT_WATCH_ENTRY = 1,
# 1708 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
UV_FS_EVENT_STAT = 2,
UV_FS_EVENT_RECURSIVE = 4
};
__attribute__((visibility("default"))) int uv_fs_event_init(uv_loop_t* loop, uv_fs_event_t* handle);
__attribute__((visibility("default"))) int uv_fs_event_start(uv_fs_event_t* handle,
uv_fs_event_cb cb,
const char* path,
unsigned int flags);
__attribute__((visibility("default"))) int uv_fs_event_stop(uv_fs_event_t* handle);
__attribute__((visibility("default"))) int uv_fs_event_getpath(uv_fs_event_t* handle,
char* buffer,
size_t* size);
__attribute__((visibility("default"))) int uv_ip4_addr(const char* ip, int port, struct sockaddr_in* addr);
__attribute__((visibility("default"))) int uv_ip6_addr(const char* ip, int port, struct sockaddr_in6* addr);
__attribute__((visibility("default"))) int uv_ip4_name(const struct sockaddr_in* src, char* dst, size_t size);
__attribute__((visibility("default"))) int uv_ip6_name(const struct sockaddr_in6* src, char* dst, size_t size);
__attribute__((visibility("default"))) int uv_ip_name(const struct sockaddr* src, char* dst, size_t size);
__attribute__((visibility("default"))) int uv_inet_ntop(int af, const void* src, char* dst, size_t size);
__attribute__((visibility("default"))) int uv_inet_pton(int af, const char* src, void* dst);
struct uv_random_s {
void* data; uv_req_type type; void* reserved[6];
uv_loop_t* loop;
int status;
void* buf;
size_t buflen;
uv_random_cb cb;
struct uv__work work_req;
};
__attribute__((visibility("default"))) int uv_random(uv_loop_t* loop,
uv_random_t* req,
void *buf,
size_t buflen,
unsigned flags,
uv_random_cb cb);
# 1767 "/home/ubuntu/neovim/.deps/usr/include/uv.h"
__attribute__((visibility("default"))) int uv_if_indextoname(unsigned int ifindex,
char* buffer,
size_t* size);
__attribute__((visibility("default"))) int uv_if_indextoiid(unsigned int ifindex,
char* buffer,
size_t* size);
__attribute__((visibility("default"))) int uv_exepath(char* buffer, size_t* size);
__attribute__((visibility("default"))) int uv_cwd(char* buffer, size_t* size);
__attribute__((visibility("default"))) int uv_chdir(const char* dir);
__attribute__((visibility("default"))) uint64_t uv_get_free_memory(void);
__attribute__((visibility("default"))) uint64_t uv_get_total_memory(void);
__attribute__((visibility("default"))) uint64_t uv_get_constrained_memory(void);
__attribute__((visibility("default"))) uint64_t uv_get_available_memory(void);
__attribute__((visibility("default"))) int uv_clock_gettime(uv_clock_id clock_id, uv_timespec64_t* ts);
__attribute__((visibility("default"))) uint64_t uv_hrtime(void);
__attribute__((visibility("default"))) void uv_sleep(unsigned int msec);
__attribute__((visibility("default"))) void uv_disable_stdio_inheritance(void);
__attribute__((visibility("default"))) int uv_dlopen(const char* filename, uv_lib_t* lib);
__attribute__((visibility("default"))) void uv_dlclose(uv_lib_t* lib);
__attribute__((visibility("default"))) int uv_dlsym(uv_lib_t* lib, const char* name, void** ptr);
__attribute__((visibility("default"))) const char* uv_dlerror(const uv_lib_t* lib);
__attribute__((visibility("default"))) int uv_mutex_init(uv_mutex_t* handle);
__attribute__((visibility("default"))) int uv_mutex_init_recursive(uv_mutex_t* handle);
__attribute__((visibility("default"))) void uv_mutex_destroy(uv_mutex_t* handle);
__attribute__((visibility("default"))) void uv_mutex_lock(uv_mutex_t* handle);
__attribute__((visibility("default"))) int uv_mutex_trylock(uv_mutex_t* handle);
__attribute__((visibility("default"))) void uv_mutex_unlock(uv_mutex_t* handle);
__attribute__((visibility("default"))) int uv_rwlock_init(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) void uv_rwlock_destroy(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) void uv_rwlock_rdlock(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) int uv_rwlock_tryrdlock(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) void uv_rwlock_rdunlock(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) void uv_rwlock_wrlock(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) int uv_rwlock_trywrlock(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) void uv_rwlock_wrunlock(uv_rwlock_t* rwlock);
__attribute__((visibility("default"))) int uv_sem_init(uv_sem_t* sem, unsigned int value);
__attribute__((visibility("default"))) void uv_sem_destroy(uv_sem_t* sem);
__attribute__((visibility("default"))) void uv_sem_post(uv_sem_t* sem);
__attribute__((visibility("default"))) void uv_sem_wait(uv_sem_t* sem);
__attribute__((visibility("default"))) int uv_sem_trywait(uv_sem_t* sem);
__attribute__((visibility("default"))) int uv_cond_init(uv_cond_t* cond);
__attribute__((visibility("default"))) void uv_cond_destroy(uv_cond_t* cond);
__attribute__((visibility("default"))) void uv_cond_signal(uv_cond_t* cond);
__attribute__((visibility("default"))) void uv_cond_broadcast(uv_cond_t* cond);
__attribute__((visibility("default"))) int uv_barrier_init(uv_barrier_t* barrier, unsigned int count);
__attribute__((visibility("default"))) void uv_barrier_destroy(uv_barrier_t* barrier);
__attribute__((visibility("default"))) int uv_barrier_wait(uv_barrier_t* barrier);
__attribute__((visibility("default"))) void uv_cond_wait(uv_cond_t* cond, uv_mutex_t* mutex);
__attribute__((visibility("default"))) int uv_cond_timedwait(uv_cond_t* cond,
uv_mutex_t* mutex,
uint64_t timeout);
__attribute__((visibility("default"))) void uv_once(uv_once_t* guard, void (*callback)(void));
__attribute__((visibility("default"))) int uv_key_create(uv_key_t* key);
__attribute__((visibility("default"))) void uv_key_delete(uv_key_t* key);
__attribute__((visibility("default"))) void* uv_key_get(uv_key_t* key);
__attribute__((visibility("default"))) void uv_key_set(uv_key_t* key, void* value);
__attribute__((visibility("default"))) int uv_gettimeofday(uv_timeval64_t* tv);
typedef void (*uv_thread_cb)(void* arg);
__attribute__((visibility("default"))) int uv_thread_create(uv_thread_t* tid, uv_thread_cb entry, void* arg);
typedef enum {
UV_THREAD_NO_FLAGS = 0x00,
UV_THREAD_HAS_STACK_SIZE = 0x01
} uv_thread_create_flags;
struct uv_thread_options_s {
unsigned int flags;
size_t stack_size;
};
typedef struct uv_thread_options_s uv_thread_options_t;
__attribute__((visibility("default"))) int uv_thread_create_ex(uv_thread_t* tid,
const uv_thread_options_t* params,
uv_thread_cb entry,
void* arg);
__attribute__((visibility("default"))) int uv_thread_setaffinity(uv_thread_t* tid,
char* cpumask,
char* oldmask,
size_t mask_size);
__attribute__((visibility("default"))) int uv_thread_getaffinity(uv_thread_t* tid,
char* cpumask,
size_t mask_size);
__attribute__((visibility("default"))) int uv_thread_getcpu(void);
__attribute__((visibility("default"))) uv_thread_t uv_thread_self(void);
__attribute__((visibility("default"))) int uv_thread_join(uv_thread_t *tid);
__attribute__((visibility("default"))) int uv_thread_equal(const uv_thread_t* t1, const uv_thread_t* t2);
union uv_any_handle {
uv_async_t async; uv_check_t check; uv_fs_event_t fs_event; uv_fs_poll_t fs_poll; uv_handle_t handle; uv_idle_t idle; uv_pipe_t pipe; uv_poll_t poll; uv_prepare_t prepare; uv_process_t process; uv_stream_t stream; uv_tcp_t tcp; uv_timer_t timer; uv_tty_t tty; uv_udp_t udp; uv_signal_t signal;
};
union uv_any_req {
uv_req_t req; uv_connect_t connect; uv_write_t write; uv_shutdown_t shutdown; uv_udp_send_t udp_send; uv_fs_t fs; uv_work_t work; uv_getaddrinfo_t getaddrinfo; uv_getnameinfo_t getnameinfo; uv_random_t random;
};
struct uv_loop_s {
void* data;
unsigned int active_handles;
struct uv__queue handle_queue;
union {
void* unused;
unsigned int count;
} active_reqs;
void* internal_fields;
unsigned int stop_flag;
unsigned long flags; int backend_fd; struct uv__queue pending_queue; struct uv__queue watcher_queue; uv__io_t** watchers; unsigned int nwatchers; unsigned int nfds; struct uv__queue wq; uv_mutex_t wq_mutex; uv_async_t wq_async; uv_rwlock_t cloexec_lock; uv_handle_t* closing_handles; struct uv__queue process_handles; struct uv__queue prepare_handles; struct uv__queue check_handles; struct uv__queue idle_handles; struct uv__queue async_handles; void (*async_unused)(void); uv__io_t async_io_watcher; int async_wfd; struct { void* min; unsigned int nelts; } timer_heap; uint64_t timer_counter; uint64_t time; int signal_pipefd[2]; uv__io_t signal_io_watcher; uv_signal_t child_watcher; int emfile_fd; uv__io_t inotify_read_watcher; void* inotify_watchers; int inotify_fd;
};
__attribute__((visibility("default"))) void* uv_loop_get_data(const uv_loop_t*);
__attribute__((visibility("default"))) void uv_loop_set_data(uv_loop_t*, void* data);
size_t uv_utf16_length_as_wtf8(const uint16_t* utf16,
ssize_t utf16_len);
int uv_utf16_to_wtf8(const uint16_t* utf16,
ssize_t utf16_len,
char** wtf8_ptr,
size_t* wtf8_len_ptr);
ssize_t uv_wtf8_length_as_utf16(const char* wtf8);
void uv_wtf8_to_utf16(const char* wtf8,
uint16_t* utf16,
size_t utf16_len);
# 51 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/home/ubuntu/neovim/src/klib/kvec.h" 1
# 43 "/home/ubuntu/neovim/src/klib/kvec.h"
# 1 "/home/ubuntu/neovim/src/nvim/memory.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stdbool.h" 1 3 4
# 4 "/home/ubuntu/neovim/src/nvim/memory.h" 2
# 1 "/home/ubuntu/neovim/build/cmake.config/auto/config.h" 1
# 8 "/home/ubuntu/neovim/src/nvim/memory.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/macros_defs.h" 1
# 9 "/home/ubuntu/neovim/src/nvim/memory.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/memory_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 4 "/home/ubuntu/neovim/src/nvim/memory_defs.h" 2
typedef struct consumed_blk {
struct consumed_blk *prev;
} *ArenaMem;
typedef struct {
char *cur_blk;
size_t pos, size;
} Arena;
# 10 "/home/ubuntu/neovim/src/nvim/memory.h" 2
typedef void *(*MemMalloc)(size_t);
typedef void (*MemFree)(void *);
typedef void *(*MemCalloc)(size_t, size_t);
typedef void *(*MemRealloc)(void *, size_t);
# 42 "/home/ubuntu/neovim/src/nvim/memory.h"
extern size_t arena_alloc_count ;
# 44 "/home/ubuntu/neovim/src/klib/kvec.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/os/os_defs.h" 1
# 1 "/usr/include/ctype.h" 1 3 4
# 28 "/usr/include/ctype.h" 3 4
# 46 "/usr/include/ctype.h" 3 4
# 46 "/usr/include/ctype.h" 3 4
enum
{
_ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
_ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
_ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
_ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
_ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
_ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
_ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
_ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
_ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
_IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
_ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
_ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
};
# 79 "/usr/include/ctype.h" 3 4
extern const unsigned short int **__ctype_b_loc (void)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern const __int32_t **__ctype_tolower_loc (void)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern const __int32_t **__ctype_toupper_loc (void)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
# 108 "/usr/include/ctype.h" 3 4
extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__ , __leaf__));
extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
# 251 "/usr/include/ctype.h" 3 4
extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
# 327 "/usr/include/ctype.h" 3 4
# 4 "/home/ubuntu/neovim/src/nvim/os/os_defs.h" 2
# 20 "/home/ubuntu/neovim/src/nvim/os/os_defs.h"
# 1 "/home/ubuntu/neovim/src/nvim/os/unix_defs.h" 1
# 11 "/home/ubuntu/neovim/src/nvim/os/unix_defs.h"
# 1 "/usr/include/unistd.h" 1 3 4
# 27 "/usr/include/unistd.h" 3 4
# 202 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/posix_opt.h" 1 3 4
# 203 "/usr/include/unistd.h" 2 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/environments.h" 1 3 4
# 22 "/usr/include/aarch64-linux-gnu/bits/environments.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/wordsize.h" 1 3 4
# 23 "/usr/include/aarch64-linux-gnu/bits/environments.h" 2 3 4
# 207 "/usr/include/unistd.h" 2 3 4
# 226 "/usr/include/unistd.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 227 "/usr/include/unistd.h" 2 3 4
# 287 "/usr/include/unistd.h" 3 4
extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int euidaccess (const char *__name, int __type)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int eaccess (const char *__name, int __type)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int faccessat (int __fd, const char *__file, int __type, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
# 334 "/usr/include/unistd.h" 3 4
extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
# 345 "/usr/include/unistd.h" 3 4
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
__attribute__ ((__nothrow__ , __leaf__));
extern int close (int __fd);
extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
extern ssize_t write (int __fd, const void *__buf, size_t __n) ;
# 376 "/usr/include/unistd.h" 3 4
extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
__off_t __offset) ;
extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
__off_t __offset) ;
# 404 "/usr/include/unistd.h" 3 4
extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
__off64_t __offset) ;
extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n,
__off64_t __offset) ;
extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ , __leaf__)) ;
# 432 "/usr/include/unistd.h" 3 4
extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
# 444 "/usr/include/unistd.h" 3 4
extern unsigned int sleep (unsigned int __seconds);
extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
__attribute__ ((__nothrow__ , __leaf__));
extern int usleep (__useconds_t __useconds);
# 469 "/usr/include/unistd.h" 3 4
extern int pause (void);
extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int fchownat (int __fd, const char *__file, __uid_t __owner,
__gid_t __group, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
# 511 "/usr/include/unistd.h" 3 4
extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ , __leaf__));
extern char *getwd (char *__buf)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ , __leaf__));
extern char **__environ;
extern char **environ;
extern int execve (const char *__path, char *const __argv[],
char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int execv (const char *__path, char *const __argv[])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execle (const char *__path, const char *__arg, ...)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execl (const char *__path, const char *__arg, ...)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execvp (const char *__file, char *const __argv[])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execlp (const char *__file, const char *__arg, ...)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int execvpe (const char *__file, char *const __argv[],
char *const __envp[])
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void _exit (int __status) __attribute__ ((__noreturn__));
# 1 "/usr/include/aarch64-linux-gnu/bits/confname.h" 1 3 4
# 24 "/usr/include/aarch64-linux-gnu/bits/confname.h" 3 4
enum
{
_PC_LINK_MAX,
_PC_MAX_CANON,
_PC_MAX_INPUT,
_PC_NAME_MAX,
_PC_PATH_MAX,
_PC_PIPE_BUF,
_PC_CHOWN_RESTRICTED,
_PC_NO_TRUNC,
_PC_VDISABLE,
_PC_SYNC_IO,
_PC_ASYNC_IO,
_PC_PRIO_IO,
_PC_SOCK_MAXBUF,
_PC_FILESIZEBITS,
_PC_REC_INCR_XFER_SIZE,
_PC_REC_MAX_XFER_SIZE,
_PC_REC_MIN_XFER_SIZE,
_PC_REC_XFER_ALIGN,
_PC_ALLOC_SIZE_MIN,
_PC_SYMLINK_MAX,
_PC_2_SYMLINKS
};
enum
{
_SC_ARG_MAX,
_SC_CHILD_MAX,
_SC_CLK_TCK,
_SC_NGROUPS_MAX,
_SC_OPEN_MAX,
_SC_STREAM_MAX,
_SC_TZNAME_MAX,
_SC_JOB_CONTROL,
_SC_SAVED_IDS,
_SC_REALTIME_SIGNALS,
_SC_PRIORITY_SCHEDULING,
_SC_TIMERS,
_SC_ASYNCHRONOUS_IO,
_SC_PRIORITIZED_IO,
_SC_SYNCHRONIZED_IO,
_SC_FSYNC,
_SC_MAPPED_FILES,
_SC_MEMLOCK,
_SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION,
_SC_MESSAGE_PASSING,
_SC_SEMAPHORES,
_SC_SHARED_MEMORY_OBJECTS,
_SC_AIO_LISTIO_MAX,
_SC_AIO_MAX,
_SC_AIO_PRIO_DELTA_MAX,
_SC_DELAYTIMER_MAX,
_SC_MQ_OPEN_MAX,
_SC_MQ_PRIO_MAX,
_SC_VERSION,
_SC_PAGESIZE,
_SC_RTSIG_MAX,
_SC_SEM_NSEMS_MAX,
_SC_SEM_VALUE_MAX,
_SC_SIGQUEUE_MAX,
_SC_TIMER_MAX,
_SC_BC_BASE_MAX,
_SC_BC_DIM_MAX,
_SC_BC_SCALE_MAX,
_SC_BC_STRING_MAX,
_SC_COLL_WEIGHTS_MAX,
_SC_EQUIV_CLASS_MAX,
_SC_EXPR_NEST_MAX,
_SC_LINE_MAX,
_SC_RE_DUP_MAX,
_SC_CHARCLASS_NAME_MAX,
_SC_2_VERSION,
_SC_2_C_BIND,
_SC_2_C_DEV,
_SC_2_FORT_DEV,
_SC_2_FORT_RUN,
_SC_2_SW_DEV,
_SC_2_LOCALEDEF,
_SC_PII,
_SC_PII_XTI,
_SC_PII_SOCKET,
_SC_PII_INTERNET,
_SC_PII_OSI,
_SC_POLL,
_SC_SELECT,
_SC_UIO_MAXIOV,
_SC_IOV_MAX = _SC_UIO_MAXIOV,
_SC_PII_INTERNET_STREAM,
_SC_PII_INTERNET_DGRAM,
_SC_PII_OSI_COTS,
_SC_PII_OSI_CLTS,
_SC_PII_OSI_M,
_SC_T_IOV_MAX,
_SC_THREADS,
_SC_THREAD_SAFE_FUNCTIONS,
_SC_GETGR_R_SIZE_MAX,
_SC_GETPW_R_SIZE_MAX,
_SC_LOGIN_NAME_MAX,
_SC_TTY_NAME_MAX,
_SC_THREAD_DESTRUCTOR_ITERATIONS,
_SC_THREAD_KEYS_MAX,
_SC_THREAD_STACK_MIN,
_SC_THREAD_THREADS_MAX,
_SC_THREAD_ATTR_STACKADDR,
_SC_THREAD_ATTR_STACKSIZE,
_SC_THREAD_PRIORITY_SCHEDULING,
_SC_THREAD_PRIO_INHERIT,
_SC_THREAD_PRIO_PROTECT,
_SC_THREAD_PROCESS_SHARED,
_SC_NPROCESSORS_CONF,
_SC_NPROCESSORS_ONLN,
_SC_PHYS_PAGES,
_SC_AVPHYS_PAGES,
_SC_ATEXIT_MAX,
_SC_PASS_MAX,
_SC_XOPEN_VERSION,
_SC_XOPEN_XCU_VERSION,
_SC_XOPEN_UNIX,
_SC_XOPEN_CRYPT,
_SC_XOPEN_ENH_I18N,
_SC_XOPEN_SHM,
_SC_2_CHAR_TERM,
_SC_2_C_VERSION,
_SC_2_UPE,
_SC_XOPEN_XPG2,
_SC_XOPEN_XPG3,
_SC_XOPEN_XPG4,
_SC_CHAR_BIT,
_SC_CHAR_MAX,
_SC_CHAR_MIN,
_SC_INT_MAX,
_SC_INT_MIN,
_SC_LONG_BIT,
_SC_WORD_BIT,
_SC_MB_LEN_MAX,
_SC_NZERO,
_SC_SSIZE_MAX,
_SC_SCHAR_MAX,
_SC_SCHAR_MIN,
_SC_SHRT_MAX,
_SC_SHRT_MIN,
_SC_UCHAR_MAX,
_SC_UINT_MAX,
_SC_ULONG_MAX,
_SC_USHRT_MAX,
_SC_NL_ARGMAX,
_SC_NL_LANGMAX,
_SC_NL_MSGMAX,
_SC_NL_NMAX,
_SC_NL_SETMAX,
_SC_NL_TEXTMAX,
_SC_XBS5_ILP32_OFF32,
_SC_XBS5_ILP32_OFFBIG,
_SC_XBS5_LP64_OFF64,
_SC_XBS5_LPBIG_OFFBIG,
_SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME,
_SC_XOPEN_REALTIME_THREADS,
_SC_ADVISORY_INFO,
_SC_BARRIERS,
_SC_BASE,
_SC_C_LANG_SUPPORT,
_SC_C_LANG_SUPPORT_R,
_SC_CLOCK_SELECTION,
_SC_CPUTIME,
_SC_THREAD_CPUTIME,
_SC_DEVICE_IO,
_SC_DEVICE_SPECIFIC,
_SC_DEVICE_SPECIFIC_R,
_SC_FD_MGMT,
_SC_FIFO,
_SC_PIPE,
_SC_FILE_ATTRIBUTES,
_SC_FILE_LOCKING,
_SC_FILE_SYSTEM,
_SC_MONOTONIC_CLOCK,
_SC_MULTI_PROCESS,
_SC_SINGLE_PROCESS,
_SC_NETWORKING,
_SC_READER_WRITER_LOCKS,
_SC_SPIN_LOCKS,
_SC_REGEXP,
_SC_REGEX_VERSION,
_SC_SHELL,
_SC_SIGNALS,
_SC_SPAWN,
_SC_SPORADIC_SERVER,
_SC_THREAD_SPORADIC_SERVER,
_SC_SYSTEM_DATABASE,
_SC_SYSTEM_DATABASE_R,
_SC_TIMEOUTS,
_SC_TYPED_MEMORY_OBJECTS,
_SC_USER_GROUPS,
_SC_USER_GROUPS_R,
_SC_2_PBS,
_SC_2_PBS_ACCOUNTING,
_SC_2_PBS_LOCATE,
_SC_2_PBS_MESSAGE,
_SC_2_PBS_TRACK,
_SC_SYMLOOP_MAX,
_SC_STREAMS,
_SC_2_PBS_CHECKPOINT,
_SC_V6_ILP32_OFF32,
_SC_V6_ILP32_OFFBIG,
_SC_V6_LP64_OFF64,
_SC_V6_LPBIG_OFFBIG,
_SC_HOST_NAME_MAX,
_SC_TRACE,
_SC_TRACE_EVENT_FILTER,
_SC_TRACE_INHERIT,
_SC_TRACE_LOG,
_SC_LEVEL1_ICACHE_SIZE,
_SC_LEVEL1_ICACHE_ASSOC,
_SC_LEVEL1_ICACHE_LINESIZE,
_SC_LEVEL1_DCACHE_SIZE,
_SC_LEVEL1_DCACHE_ASSOC,
_SC_LEVEL1_DCACHE_LINESIZE,
_SC_LEVEL2_CACHE_SIZE,
_SC_LEVEL2_CACHE_ASSOC,
_SC_LEVEL2_CACHE_LINESIZE,
_SC_LEVEL3_CACHE_SIZE,
_SC_LEVEL3_CACHE_ASSOC,
_SC_LEVEL3_CACHE_LINESIZE,
_SC_LEVEL4_CACHE_SIZE,
_SC_LEVEL4_CACHE_ASSOC,
_SC_LEVEL4_CACHE_LINESIZE,
_SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
_SC_RAW_SOCKETS,
_SC_V7_ILP32_OFF32,
_SC_V7_ILP32_OFFBIG,
_SC_V7_LP64_OFF64,
_SC_V7_LPBIG_OFFBIG,
_SC_SS_REPL_MAX,
_SC_TRACE_EVENT_NAME_MAX,
_SC_TRACE_NAME_MAX,
_SC_TRACE_SYS_MAX,
_SC_TRACE_USER_EVENT_MAX,
_SC_XOPEN_STREAMS,
_SC_THREAD_ROBUST_PRIO_INHERIT,
_SC_THREAD_ROBUST_PRIO_PROTECT
};
enum
{
_CS_PATH,
_CS_V6_WIDTH_RESTRICTED_ENVS,
_CS_GNU_LIBC_VERSION,
_CS_GNU_LIBPTHREAD_VERSION,
_CS_V5_WIDTH_RESTRICTED_ENVS,
_CS_V7_WIDTH_RESTRICTED_ENVS,
_CS_LFS_CFLAGS = 1000,
_CS_LFS_LDFLAGS,
_CS_LFS_LIBS,
_CS_LFS_LINTFLAGS,
_CS_LFS64_CFLAGS,
_CS_LFS64_LDFLAGS,
_CS_LFS64_LIBS,
_CS_LFS64_LINTFLAGS,
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
_CS_XBS5_ILP32_OFF32_LDFLAGS,
_CS_XBS5_ILP32_OFF32_LIBS,
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
_CS_XBS5_ILP32_OFFBIG_LIBS,
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
_CS_XBS5_LP64_OFF64_CFLAGS,
_CS_XBS5_LP64_OFF64_LDFLAGS,
_CS_XBS5_LP64_OFF64_LIBS,
_CS_XBS5_LP64_OFF64_LINTFLAGS,
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LIBS,
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
_CS_POSIX_V6_ILP32_OFF32_CFLAGS,
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
_CS_POSIX_V6_ILP32_OFF32_LIBS,
_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
_CS_POSIX_V6_ILP32_OFFBIG_LIBS,
_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
_CS_POSIX_V6_LP64_OFF64_CFLAGS,
_CS_POSIX_V6_LP64_OFF64_LDFLAGS,
_CS_POSIX_V6_LP64_OFF64_LIBS,
_CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
_CS_POSIX_V7_ILP32_OFF32_CFLAGS,
_CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
_CS_POSIX_V7_ILP32_OFF32_LIBS,
_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
_CS_POSIX_V7_ILP32_OFFBIG_LIBS,
_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
_CS_POSIX_V7_LP64_OFF64_CFLAGS,
_CS_POSIX_V7_LP64_OFF64_LDFLAGS,
_CS_POSIX_V7_LP64_OFF64_LIBS,
_CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
_CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
_CS_V6_ENV,
_CS_V7_ENV
};
# 610 "/usr/include/unistd.h" 2 3 4
extern long int pathconf (const char *__path, int __name)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
# 660 "/usr/include/unistd.h" 3 4
extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__));
extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
__attribute__ ((__nothrow__ , __leaf__));
extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
__attribute__ ((__nothrow__ , __leaf__));
extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
__attribute__ ((__nothrow__ , __leaf__)) ;
extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
__attribute__ ((__nothrow__ , __leaf__)) ;
extern __pid_t fork (void) __attribute__ ((__nothrow__));
extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
extern int link (const char *__from, const char *__to)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
extern int linkat (int __fromfd, const char *__from, int __tofd,
const char *__to, int __flags)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
extern int symlink (const char *__from, const char *__to)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
extern ssize_t readlink (const char *__restrict __path,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
extern int symlinkat (const char *__from, int __tofd,
const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
extern ssize_t readlinkat (int __fd, const char *__restrict __path,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) ;
extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int unlinkat (int __fd, const char *__name, int __flag)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
extern char *getlogin (void);
extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
# 1 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 1 3 4
# 27 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 1 3 4
# 28 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 3 4
extern char *optarg;
# 50 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 3 4
extern int optind;
extern int opterr;
extern int optopt;
# 91 "/usr/include/aarch64-linux-gnu/bits/getopt_core.h" 3 4
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
# 28 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 2 3 4
# 49 "/usr/include/aarch64-linux-gnu/bits/getopt_posix.h" 3 4
# 870 "/usr/include/unistd.h" 2 3 4
extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int sethostname (const char *__name, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int getdomainname (char *__name, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int setdomainname (const char *__name, size_t __len)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern int profil (unsigned short int *__sample_buffer, size_t __size,
size_t __offset, unsigned int __scale)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
extern int fsync (int __fd);
extern int syncfs (int __fd) __attribute__ ((__nothrow__ , __leaf__));
extern long int gethostid (void);
extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
# 991 "/usr/include/unistd.h" 3 4
extern int truncate (const char *__file, __off_t __length)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 1003 "/usr/include/unistd.h" 3 4
extern int truncate64 (const char *__file, __off64_t __length)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
# 1014 "/usr/include/unistd.h" 3 4
extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
# 1024 "/usr/include/unistd.h" 3 4
extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
# 1035 "/usr/include/unistd.h" 3 4
extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
# 1056 "/usr/include/unistd.h" 3 4
extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
# 1107 "/usr/include/unistd.h" 3 4
ssize_t copy_file_range (int __infd, __off64_t *__pinoff,
int __outfd, __off64_t *__poutoff,
size_t __length, unsigned int __flags);
extern int fdatasync (int __fildes);
# 1124 "/usr/include/unistd.h" 3 4
extern char *crypt (const char *__key, const char *__salt)
__attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
extern void swab (const void *__restrict __from, void *__restrict __to,
ssize_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
# 1161 "/usr/include/unistd.h" 3 4
int getentropy (void *__buffer, size_t __length) ;
# 1170 "/usr/include/unistd.h" 3 4
# 1 "/usr/include/aarch64-linux-gnu/bits/unistd_ext.h" 1 3 4
# 34 "/usr/include/aarch64-linux-gnu/bits/unistd_ext.h" 3 4
extern __pid_t gettid (void) __attribute__ ((__nothrow__ , __leaf__));
# 1171 "/usr/include/unistd.h" 2 3 4
# 12 "/home/ubuntu/neovim/src/nvim/os/unix_defs.h" 2
# 21 "/home/ubuntu/neovim/src/nvim/os/os_defs.h" 2
# 133 "/home/ubuntu/neovim/src/nvim/os/os_defs.h"
# 133 "/home/ubuntu/neovim/src/nvim/os/os_defs.h"
typedef off_t off_T;
# 45 "/home/ubuntu/neovim/src/klib/kvec.h" 2
# 170 "/home/ubuntu/neovim/src/klib/kvec.h"
static inline void *_memcpy_free(void *restrict dest, void *restrict src, size_t size)
REAL_FATTR_NONNULL_ALL REAL_FATTR_NONNULL_RET REAL_FATTR_ALWAYS_INLINE;
static inline void *_memcpy_free(void *const restrict dest, void *const restrict src,
const size_t size)
{
memcpy(dest, src, size);
do { void **ptr_ = (void **)&(src); xfree(*ptr_); *ptr_ =
# 178 "/home/ubuntu/neovim/src/klib/kvec.h" 3 4
((void *)0)
# 178 "/home/ubuntu/neovim/src/klib/kvec.h"
; (void)(*ptr_); } while (0);
return dest;
}
# 53 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/home/ubuntu/neovim/src/nvim/map_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/api/private/defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/types_defs.h" 1
typedef void *vim_acl_T;
typedef uint32_t schar_T;
typedef int32_t sattr_T;
typedef int32_t sscratch_T;
typedef int handle_T;
typedef int LuaRef;
typedef double float_T;
typedef struct MsgpackRpcRequestHandler MsgpackRpcRequestHandler;
typedef union {
float_T (*float_func)(float_T);
const MsgpackRpcRequestHandler *api_handler;
void *null;
} EvalFuncData;
typedef handle_T NS;
typedef uint64_t proftime_T;
typedef enum {
kNone = -1,
kFalse = 0,
kTrue = 1,
} TriState;
typedef int64_t OptInt;
enum { SIGN_WIDTH = 2, };
typedef struct file_buffer buf_T;
typedef struct loop Loop;
typedef struct regprog regprog_T;
typedef struct syn_state synstate_T;
typedef struct terminal Terminal;
typedef struct window_S win_T;
typedef struct {
uint32_t nitems;
uint32_t nbytes;
char data[];
} AdditionalData;
# 9 "/home/ubuntu/neovim/src/nvim/api/private/defs.h" 2
# 28 "/home/ubuntu/neovim/src/nvim/api/private/defs.h"
typedef enum {
kErrorTypeNone = -1,
kErrorTypeException,
kErrorTypeValidation,
} ErrorType;
typedef enum {
kMessageTypeUnknown = -1,
kMessageTypeRequest = 0,
kMessageTypeResponse = 1,
kMessageTypeNotification = 2,
kMessageTypeRedrawEvent = 3,
} MessageType;
# 57 "/home/ubuntu/neovim/src/nvim/api/private/defs.h"
static inline
# 57 "/home/ubuntu/neovim/src/nvim/api/private/defs.h" 3 4
_Bool
# 57 "/home/ubuntu/neovim/src/nvim/api/private/defs.h"
is_internal_call(const uint64_t channel_id)
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_CONST
{
return !!(channel_id & (((uint64_t)1) << (sizeof(uint64_t) * 8 - 1)));
}
typedef struct {
ErrorType type;
char *msg;
} Error;
typedef
# 68 "/home/ubuntu/neovim/src/nvim/api/private/defs.h" 3 4
_Bool
# 68 "/home/ubuntu/neovim/src/nvim/api/private/defs.h"
Boolean;
typedef int64_t Integer;
typedef double Float;
typedef struct {
char *data;
size_t size;
} String;
typedef handle_T Buffer;
typedef handle_T Window;
typedef handle_T Tabpage;
typedef struct object Object;
typedef struct { size_t size; size_t capacity; Object *items; } Array;
typedef struct key_value_pair KeyValuePair;
typedef struct { size_t size; size_t capacity; KeyValuePair *items; } Dictionary;
typedef struct { size_t size; size_t capacity; String *items; } StringArray;
typedef enum {
kObjectTypeNil = 0,
kObjectTypeBoolean,
kObjectTypeInteger,
kObjectTypeFloat,
kObjectTypeString,
kObjectTypeArray,
kObjectTypeDictionary,
kObjectTypeLuaRef,
kObjectTypeBuffer,
kObjectTypeWindow,
kObjectTypeTabpage,
} ObjectType;
typedef enum {
kUnpackTypeStringArray = -1,
} UnpackType;
# 122 "/home/ubuntu/neovim/src/nvim/api/private/defs.h"
struct object {
ObjectType type;
union {
Boolean boolean;
Integer integer;
Float floating;
String string;
Array array;
Dictionary dictionary;
LuaRef luaref;
} data;
};
struct key_value_pair {
String key;
Object value;
};
typedef uint64_t OptionalKeys;
typedef Integer HLGroupID;
typedef struct {
OptionalKeys is_set_;
} OptKeySet;
typedef struct {
char *str;
size_t ptr_off;
int type;
int opt_index;
# 153 "/home/ubuntu/neovim/src/nvim/api/private/defs.h" 3 4
_Bool
# 153 "/home/ubuntu/neovim/src/nvim/api/private/defs.h"
is_hlgroup;
} KeySetLink;
typedef KeySetLink *(*FieldHashfn)(const char *str, size_t len);
# 8 "/home/ubuntu/neovim/src/nvim/map_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/assert_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/log.h" 1
# 21 "/home/ubuntu/neovim/src/nvim/log.h"
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 1 3 4
# 15 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 1 3 4
# 14 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 3 4
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 15 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 2 3 4
# 26 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 3 4
# 26 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 3 4
typedef struct {
int coverage_sandboxed;
intptr_t coverage_fd;
unsigned int coverage_max_block_size;
} __sanitizer_sandbox_arguments;
void __sanitizer_set_report_path(const char *path);
void __sanitizer_set_report_fd(void *fd);
void __sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args);
void __sanitizer_report_error_summary(const char *error_summary);
uint16_t __sanitizer_unaligned_load16(const void *p);
uint32_t __sanitizer_unaligned_load32(const void *p);
uint64_t __sanitizer_unaligned_load64(const void *p);
void __sanitizer_unaligned_store16(void *p, uint16_t x);
void __sanitizer_unaligned_store32(void *p, uint32_t x);
void __sanitizer_unaligned_store64(void *p, uint64_t x);
int __sanitizer_acquire_crash_state();
# 101 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 3 4
void __sanitizer_annotate_contiguous_container(const void *beg,
const void *end,
const void *old_mid,
const void *new_mid);
int __sanitizer_verify_contiguous_container(const void *beg, const void *mid,
const void *end);
const void *__sanitizer_contiguous_container_find_bad_address(
const void *beg, const void *mid, const void *end);
void __sanitizer_print_stack_trace(void);
# 133 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 3 4
void __sanitizer_symbolize_pc(void *pc, const char *fmt, char *out_buf,
size_t out_buf_size);
void __sanitizer_symbolize_global(void *data_ptr, const char *fmt,
char *out_buf, size_t out_buf_size);
void __sanitizer_set_death_callback(void (*callback)(void));
void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1,
const void *s2, size_t n, int result);
void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1,
const char *s2, size_t n, int result);
void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1,
const char *s2, size_t n, int result);
void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1,
const char *s2, int result);
void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1,
const char *s2, int result);
void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1,
const char *s2, char *result);
void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1,
const char *s2, char *result);
void __sanitizer_weak_hook_memmem(void *called_pc,
const void *s1, size_t len1,
const void *s2, size_t len2, void *result);
void __sanitizer_print_memory_profile(size_t top_percent,
size_t max_number_of_contexts);
# 191 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/common_interface_defs.h" 3 4
void __sanitizer_start_switch_fiber(void **fake_stack_save,
const void *bottom, size_t size);
void __sanitizer_finish_switch_fiber(void *fake_stack_save,
const void **bottom_old,
size_t *size_old);
int __sanitizer_get_module_and_offset_for_pc(void *pc, char *module_path,
size_t module_path_len,
void **pc_offset);
# 16 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 2 3 4
# 28 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 3 4
void __asan_poison_memory_region(void const volatile *addr, size_t size);
void __asan_unpoison_memory_region(void const volatile *addr, size_t size);
# 54 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 3 4
int __asan_address_is_poisoned(void const volatile *addr);
void *__asan_region_is_poisoned(void *beg, size_t size);
void __asan_describe_address(void *addr);
int __asan_report_present(void);
void *__asan_get_report_pc(void);
void *__asan_get_report_bp(void);
void *__asan_get_report_sp(void);
void *__asan_get_report_address(void);
int __asan_get_report_access_type(void);
size_t __asan_get_report_access_size(void);
const char *__asan_get_report_description(void);
# 86 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 3 4
const char *__asan_locate_address(void *addr, char *name, size_t name_size,
void **region_address, size_t *region_size);
size_t __asan_get_alloc_stack(void *addr, void **trace, size_t size,
int *thread_id);
size_t __asan_get_free_stack(void *addr, void **trace, size_t size,
int *thread_id);
void __asan_get_shadow_mapping(size_t *shadow_scale, size_t *shadow_offset);
void __asan_report_error(void *pc, void *bp, void *sp,
void *addr, int is_write, size_t access_size);
void __asan_set_death_callback(void (*callback)(void));
void __asan_set_error_report_callback(void (*callback)(const char*));
void __asan_on_error(void);
void __asan_print_accumulated_stats(void);
const char* __asan_default_options(void);
void *__asan_get_current_fake_stack(void);
# 142 "/usr/lib/gcc/aarch64-linux-gnu/9/include/sanitizer/asan_interface.h" 3 4
void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg,
void **end);
void __asan_handle_no_return(void);
# 22 "/home/ubuntu/neovim/src/nvim/log.h" 2
# 5 "/home/ubuntu/neovim/src/nvim/assert_defs.h" 2
# 9 "/home/ubuntu/neovim/src/nvim/map_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/highlight_defs.h" 1
# 8 "/home/ubuntu/neovim/src/nvim/highlight_defs.h"
typedef int32_t RgbValue;
typedef enum {
HL_INVERSE = 0x01,
HL_BOLD = 0x02,
HL_ITALIC = 0x04,
HL_UNDERLINE_MASK = 0x38,
HL_UNDERLINE = 0x08,
HL_UNDERCURL = 0x10,
HL_UNDERDOUBLE = 0x18,
HL_UNDERDOTTED = 0x20,
HL_UNDERDASHED = 0x28,
HL_STANDOUT = 0x0040,
HL_STRIKETHROUGH = 0x0080,
HL_ALTFONT = 0x0100,
HL_NOCOMBINE = 0x0400,
HL_BG_INDEXED = 0x0800,
HL_FG_INDEXED = 0x1000,
HL_DEFAULT = 0x2000,
HL_GLOBAL = 0x4000,
} HlAttrFlags;
typedef struct {
int16_t rgb_ae_attr, cterm_ae_attr;
RgbValue rgb_fg_color, rgb_bg_color, rgb_sp_color;
int16_t cterm_fg_color, cterm_bg_color;
int32_t hl_blend;
int32_t url;
} HlAttrs;
# 60 "/home/ubuntu/neovim/src/nvim/highlight_defs.h"
typedef enum {
HLF_8 = 0,
HLF_EOB,
HLF_TERM,
HLF_TERMNC,
HLF_AT,
HLF_D,
HLF_E,
HLF_I,
HLF_L,
HLF_LC,
HLF_M,
HLF_CM,
HLF_N,
HLF_LNA,
HLF_LNB,
HLF_CLN,
HLF_CLS,
HLF_CLF,
HLF_R,
HLF_S,
HLF_SNC,
HLF_C,
HLF_VSP,
HLF_T,
HLF_V,
HLF_VNC,
HLF_W,
HLF_WM,
HLF_FL,
HLF_FC,
HLF_ADD,
HLF_CHD,
HLF_DED,
HLF_TXD,
HLF_SC,
HLF_CONCEAL,
HLF_SPB,
HLF_SPC,
HLF_SPR,
HLF_SPL,
HLF_PNI,
HLF_PSI,
HLF_PMNI,
HLF_PMSI,
HLF_PNK,
HLF_PSK,
HLF_PNX,
HLF_PSX,
HLF_PSB,
HLF_PST,
HLF_TP,
HLF_TPS,
HLF_TPF,
HLF_CUC,
HLF_CUL,
HLF_MC,
HLF_QFL,
HLF_0,
HLF_INACTIVE,
HLF_MSGSEP,
HLF_NFLOAT,
HLF_MSG,
HLF_BORDER,
HLF_WBR,
HLF_WBRNC,
HLF_CU,
HLF_BTITLE,
HLF_BFOOTER,
HLF_TS,
HLF_TSNC,
HLF_COUNT,
} hlf_T;
typedef enum {
kHlUnknown,
kHlUI,
kHlSyntax,
kHlTerminal,
kHlCombine,
kHlBlend,
kHlBlendThrough,
kHlInvalid,
} HlKind;
typedef struct {
HlAttrs attr;
HlKind kind;
int id1;
int id2;
int winid;
} HlEntry;
typedef struct {
int ns_id;
int syn_id;
} ColorKey;
typedef struct {
int attr_id;
int link_id;
int version;
# 164 "/home/ubuntu/neovim/src/nvim/highlight_defs.h" 3 4
_Bool
# 164 "/home/ubuntu/neovim/src/nvim/highlight_defs.h"
is_default;
# 165 "/home/ubuntu/neovim/src/nvim/highlight_defs.h" 3 4
_Bool
# 165 "/home/ubuntu/neovim/src/nvim/highlight_defs.h"
link_global;
} ColorItem;
enum { HLATTRS_DICT_SIZE = 16, };
# 10 "/home/ubuntu/neovim/src/nvim/map_defs.h" 2
typedef const char *cstr_t;
typedef void *ptr_t;
static inline uint32_t hash_String(String s)
{
uint32_t h = 0;
for (size_t i = 0; i < s.size; i++) {
h = (h << 5) - h + (uint8_t)s.data[i];
}
return h;
}
static inline
# 31 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 31 "/home/ubuntu/neovim/src/nvim/map_defs.h"
equal_String(String a, String b)
{
if (a.size != b.size) {
return
# 34 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
0
# 34 "/home/ubuntu/neovim/src/nvim/map_defs.h"
;
}
return (a.size == 0) || (memcmp(a.data, b.data, a.size) == 0);
}
static const int value_init_int = 0;
static const ptr_t value_init_ptr_t =
# 45 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 45 "/home/ubuntu/neovim/src/nvim/map_defs.h"
;
static const ssize_t value_init_ssize_t = -1;
static const uint32_t value_init_uint32_t = 0;
static const uint64_t value_init_uint64_t = 0;
static const int64_t value_init_int64_t = 0;
static const String value_init_String = { .data =
# 50 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 50 "/home/ubuntu/neovim/src/nvim/map_defs.h"
, .size = 0 };
static const ColorItem value_init_ColorItem = { .attr_id = -1, .link_id = -1, .version = -1, .is_default =
# 51 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
0
# 51 "/home/ubuntu/neovim/src/nvim/map_defs.h"
, .link_global =
# 51 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
0
# 51 "/home/ubuntu/neovim/src/nvim/map_defs.h"
};
typedef struct {
uint32_t n_buckets;
uint32_t size;
uint32_t n_occupied;
uint32_t upper_bound;
uint32_t n_keys;
uint32_t keys_capacity;
uint32_t *hash;
} MapHash;
# 75 "/home/ubuntu/neovim/src/nvim/map_defs.h"
typedef enum {
kMHExisting = 0,
kMHNewKeyDidFit,
kMHNewKeyRealloc,
} MHPutStatus;
void mh_clear(MapHash *h);
void mh_realloc(MapHash *h, uint32_t n_min_buckets);
# 144 "/home/ubuntu/neovim/src/nvim/map_defs.h"
typedef struct { MapHash h; char *keys; } Set_glyph; uint32_t mh_find_bucket_glyph(Set_glyph *set, String key,
# 144 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 144 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_glyph(Set_glyph *set, String key); void mh_rehash_glyph(Set_glyph *set); uint32_t mh_put_glyph(Set_glyph *set, String key, MHPutStatus *new);
typedef struct { MapHash h; int *keys; } Set_int; uint32_t mh_find_bucket_int(Set_int *set, int key,
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_int(Set_int *set, int key); void mh_rehash_int(Set_int *set); uint32_t mh_put_int(Set_int *set, int key, MHPutStatus *new); uint32_t mh_delete_int(Set_int *set, int *key); static inline
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_int(Set_int *set, int key, int **key_alloc) { MHPutStatus status; uint32_t k = mh_put_int(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline int set_del_int(Set_int *set, int key) { mh_delete_int(set, &key); return key; } static inline
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_int(Set_int *set, int key) { return mh_get_int(set, key) !=
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 145 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; cstr_t *keys; } Set_cstr_t; uint32_t mh_find_bucket_cstr_t(Set_cstr_t *set, cstr_t key,
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_cstr_t(Set_cstr_t *set, cstr_t key); void mh_rehash_cstr_t(Set_cstr_t *set); uint32_t mh_put_cstr_t(Set_cstr_t *set, cstr_t key, MHPutStatus *new); uint32_t mh_delete_cstr_t(Set_cstr_t *set, cstr_t *key); static inline
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_cstr_t(Set_cstr_t *set, cstr_t key, cstr_t **key_alloc) { MHPutStatus status; uint32_t k = mh_put_cstr_t(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline cstr_t set_del_cstr_t(Set_cstr_t *set, cstr_t key) { mh_delete_cstr_t(set, &key); return key; } static inline
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_cstr_t(Set_cstr_t *set, cstr_t key) { return mh_get_cstr_t(set, key) !=
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 146 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; ptr_t *keys; } Set_ptr_t; uint32_t mh_find_bucket_ptr_t(Set_ptr_t *set, ptr_t key,
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_ptr_t(Set_ptr_t *set, ptr_t key); void mh_rehash_ptr_t(Set_ptr_t *set); uint32_t mh_put_ptr_t(Set_ptr_t *set, ptr_t key, MHPutStatus *new); uint32_t mh_delete_ptr_t(Set_ptr_t *set, ptr_t *key); static inline
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_ptr_t(Set_ptr_t *set, ptr_t key, ptr_t **key_alloc) { MHPutStatus status; uint32_t k = mh_put_ptr_t(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline ptr_t set_del_ptr_t(Set_ptr_t *set, ptr_t key) { mh_delete_ptr_t(set, &key); return key; } static inline
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_ptr_t(Set_ptr_t *set, ptr_t key) { return mh_get_ptr_t(set, key) !=
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 147 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; uint64_t *keys; } Set_uint64_t; uint32_t mh_find_bucket_uint64_t(Set_uint64_t *set, uint64_t key,
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_uint64_t(Set_uint64_t *set, uint64_t key); void mh_rehash_uint64_t(Set_uint64_t *set); uint32_t mh_put_uint64_t(Set_uint64_t *set, uint64_t key, MHPutStatus *new); uint32_t mh_delete_uint64_t(Set_uint64_t *set, uint64_t *key); static inline
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_uint64_t(Set_uint64_t *set, uint64_t key, uint64_t **key_alloc) { MHPutStatus status; uint32_t k = mh_put_uint64_t(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline uint64_t set_del_uint64_t(Set_uint64_t *set, uint64_t key) { mh_delete_uint64_t(set, &key); return key; } static inline
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_uint64_t(Set_uint64_t *set, uint64_t key) { return mh_get_uint64_t(set, key) !=
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 148 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; int64_t *keys; } Set_int64_t; uint32_t mh_find_bucket_int64_t(Set_int64_t *set, int64_t key,
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_int64_t(Set_int64_t *set, int64_t key); void mh_rehash_int64_t(Set_int64_t *set); uint32_t mh_put_int64_t(Set_int64_t *set, int64_t key, MHPutStatus *new); uint32_t mh_delete_int64_t(Set_int64_t *set, int64_t *key); static inline
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_int64_t(Set_int64_t *set, int64_t key, int64_t **key_alloc) { MHPutStatus status; uint32_t k = mh_put_int64_t(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline int64_t set_del_int64_t(Set_int64_t *set, int64_t key) { mh_delete_int64_t(set, &key); return key; } static inline
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_int64_t(Set_int64_t *set, int64_t key) { return mh_get_int64_t(set, key) !=
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 149 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; uint32_t *keys; } Set_uint32_t; uint32_t mh_find_bucket_uint32_t(Set_uint32_t *set, uint32_t key,
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_uint32_t(Set_uint32_t *set, uint32_t key); void mh_rehash_uint32_t(Set_uint32_t *set); uint32_t mh_put_uint32_t(Set_uint32_t *set, uint32_t key, MHPutStatus *new); uint32_t mh_delete_uint32_t(Set_uint32_t *set, uint32_t *key); static inline
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_uint32_t(Set_uint32_t *set, uint32_t key, uint32_t **key_alloc) { MHPutStatus status; uint32_t k = mh_put_uint32_t(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline uint32_t set_del_uint32_t(Set_uint32_t *set, uint32_t key) { mh_delete_uint32_t(set, &key); return key; } static inline
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_uint32_t(Set_uint32_t *set, uint32_t key) { return mh_get_uint32_t(set, key) !=
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 150 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; String *keys; } Set_String; uint32_t mh_find_bucket_String(Set_String *set, String key,
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_String(Set_String *set, String key); void mh_rehash_String(Set_String *set); uint32_t mh_put_String(Set_String *set, String key, MHPutStatus *new); uint32_t mh_delete_String(Set_String *set, String *key); static inline
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_String(Set_String *set, String key, String **key_alloc) { MHPutStatus status; uint32_t k = mh_put_String(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline String set_del_String(Set_String *set, String key) { mh_delete_String(set, &key); return key; } static inline
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_String(Set_String *set, String key) { return mh_get_String(set, key) !=
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 151 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; HlEntry *keys; } Set_HlEntry; uint32_t mh_find_bucket_HlEntry(Set_HlEntry *set, HlEntry key,
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_HlEntry(Set_HlEntry *set, HlEntry key); void mh_rehash_HlEntry(Set_HlEntry *set); uint32_t mh_put_HlEntry(Set_HlEntry *set, HlEntry key, MHPutStatus *new); uint32_t mh_delete_HlEntry(Set_HlEntry *set, HlEntry *key); static inline
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_HlEntry(Set_HlEntry *set, HlEntry key, HlEntry **key_alloc) { MHPutStatus status; uint32_t k = mh_put_HlEntry(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline HlEntry set_del_HlEntry(Set_HlEntry *set, HlEntry key) { mh_delete_HlEntry(set, &key); return key; } static inline
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_HlEntry(Set_HlEntry *set, HlEntry key) { return mh_get_HlEntry(set, key) !=
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 152 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { MapHash h; ColorKey *keys; } Set_ColorKey; uint32_t mh_find_bucket_ColorKey(Set_ColorKey *set, ColorKey key,
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h"
put); uint32_t mh_get_ColorKey(Set_ColorKey *set, ColorKey key); void mh_rehash_ColorKey(Set_ColorKey *set); uint32_t mh_put_ColorKey(Set_ColorKey *set, ColorKey key, MHPutStatus *new); uint32_t mh_delete_ColorKey(Set_ColorKey *set, ColorKey *key); static inline
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_put_ColorKey(Set_ColorKey *set, ColorKey key, ColorKey **key_alloc) { MHPutStatus status; uint32_t k = mh_put_ColorKey(set, key, &status); if (key_alloc) { *key_alloc = &set->keys[k]; } return status != kMHExisting; } static inline ColorKey set_del_ColorKey(Set_ColorKey *set, ColorKey key) { mh_delete_ColorKey(set, &key); return key; } static inline
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h"
set_has_ColorKey(Set_ColorKey *set, ColorKey key) { return mh_get_ColorKey(set, key) !=
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 153 "/home/ubuntu/neovim/src/nvim/map_defs.h"
; }
typedef struct { Set_int set; int *values; } Map_intint; static inline int map_get_intint(Map_intint *map, int key) { uint32_t k = mh_get_int(&map->set, key); return k ==
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_int : map->values[k]; } int *map_ref_intint(Map_intint *map, int key, int **key_alloc); int *map_put_ref_intint(Map_intint *map, int key, int **key_alloc,
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_intint(Map_intint *map, int key, int value) { int *val = map_put_ref_intint(map, key,
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 155 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } int map_del_intint(Map_intint *map, int key, int *key_alloc);
typedef struct { Set_int set; ptr_t *values; } Map_intptr_t; static inline ptr_t map_get_intptr_t(Map_intptr_t *map, int key) { uint32_t k = mh_get_int(&map->set, key); return k ==
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ptr_t : map->values[k]; } ptr_t *map_ref_intptr_t(Map_intptr_t *map, int key, int **key_alloc); ptr_t *map_put_ref_intptr_t(Map_intptr_t *map, int key, int **key_alloc,
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_intptr_t(Map_intptr_t *map, int key, ptr_t value) { ptr_t *val = map_put_ref_intptr_t(map, key,
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 156 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ptr_t map_del_intptr_t(Map_intptr_t *map, int key, int *key_alloc);
typedef struct { Set_cstr_t set; ptr_t *values; } Map_cstr_tptr_t; static inline ptr_t map_get_cstr_tptr_t(Map_cstr_tptr_t *map, cstr_t key) { uint32_t k = mh_get_cstr_t(&map->set, key); return k ==
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ptr_t : map->values[k]; } ptr_t *map_ref_cstr_tptr_t(Map_cstr_tptr_t *map, cstr_t key, cstr_t **key_alloc); ptr_t *map_put_ref_cstr_tptr_t(Map_cstr_tptr_t *map, cstr_t key, cstr_t **key_alloc,
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_cstr_tptr_t(Map_cstr_tptr_t *map, cstr_t key, ptr_t value) { ptr_t *val = map_put_ref_cstr_tptr_t(map, key,
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 157 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ptr_t map_del_cstr_tptr_t(Map_cstr_tptr_t *map, cstr_t key, cstr_t *key_alloc);
typedef struct { Set_cstr_t set; int *values; } Map_cstr_tint; static inline int map_get_cstr_tint(Map_cstr_tint *map, cstr_t key) { uint32_t k = mh_get_cstr_t(&map->set, key); return k ==
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_int : map->values[k]; } int *map_ref_cstr_tint(Map_cstr_tint *map, cstr_t key, cstr_t **key_alloc); int *map_put_ref_cstr_tint(Map_cstr_tint *map, cstr_t key, cstr_t **key_alloc,
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_cstr_tint(Map_cstr_tint *map, cstr_t key, int value) { int *val = map_put_ref_cstr_tint(map, key,
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 158 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } int map_del_cstr_tint(Map_cstr_tint *map, cstr_t key, cstr_t *key_alloc);
typedef struct { Set_ptr_t set; ptr_t *values; } Map_ptr_tptr_t; static inline ptr_t map_get_ptr_tptr_t(Map_ptr_tptr_t *map, ptr_t key) { uint32_t k = mh_get_ptr_t(&map->set, key); return k ==
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ptr_t : map->values[k]; } ptr_t *map_ref_ptr_tptr_t(Map_ptr_tptr_t *map, ptr_t key, ptr_t **key_alloc); ptr_t *map_put_ref_ptr_tptr_t(Map_ptr_tptr_t *map, ptr_t key, ptr_t **key_alloc,
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_ptr_tptr_t(Map_ptr_tptr_t *map, ptr_t key, ptr_t value) { ptr_t *val = map_put_ref_ptr_tptr_t(map, key,
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 159 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ptr_t map_del_ptr_tptr_t(Map_ptr_tptr_t *map, ptr_t key, ptr_t *key_alloc);
typedef struct { Set_uint32_t set; ptr_t *values; } Map_uint32_tptr_t; static inline ptr_t map_get_uint32_tptr_t(Map_uint32_tptr_t *map, uint32_t key) { uint32_t k = mh_get_uint32_t(&map->set, key); return k ==
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ptr_t : map->values[k]; } ptr_t *map_ref_uint32_tptr_t(Map_uint32_tptr_t *map, uint32_t key, uint32_t **key_alloc); ptr_t *map_put_ref_uint32_tptr_t(Map_uint32_tptr_t *map, uint32_t key, uint32_t **key_alloc,
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_uint32_tptr_t(Map_uint32_tptr_t *map, uint32_t key, ptr_t value) { ptr_t *val = map_put_ref_uint32_tptr_t(map, key,
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 160 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ptr_t map_del_uint32_tptr_t(Map_uint32_tptr_t *map, uint32_t key, uint32_t *key_alloc);
typedef struct { Set_uint64_t set; ptr_t *values; } Map_uint64_tptr_t; static inline ptr_t map_get_uint64_tptr_t(Map_uint64_tptr_t *map, uint64_t key) { uint32_t k = mh_get_uint64_t(&map->set, key); return k ==
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ptr_t : map->values[k]; } ptr_t *map_ref_uint64_tptr_t(Map_uint64_tptr_t *map, uint64_t key, uint64_t **key_alloc); ptr_t *map_put_ref_uint64_tptr_t(Map_uint64_tptr_t *map, uint64_t key, uint64_t **key_alloc,
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_uint64_tptr_t(Map_uint64_tptr_t *map, uint64_t key, ptr_t value) { ptr_t *val = map_put_ref_uint64_tptr_t(map, key,
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 161 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ptr_t map_del_uint64_tptr_t(Map_uint64_tptr_t *map, uint64_t key, uint64_t *key_alloc);
typedef struct { Set_uint64_t set; ssize_t *values; } Map_uint64_tssize_t; static inline ssize_t map_get_uint64_tssize_t(Map_uint64_tssize_t *map, uint64_t key) { uint32_t k = mh_get_uint64_t(&map->set, key); return k ==
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ssize_t : map->values[k]; } ssize_t *map_ref_uint64_tssize_t(Map_uint64_tssize_t *map, uint64_t key, uint64_t **key_alloc); ssize_t *map_put_ref_uint64_tssize_t(Map_uint64_tssize_t *map, uint64_t key, uint64_t **key_alloc,
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_uint64_tssize_t(Map_uint64_tssize_t *map, uint64_t key, ssize_t value) { ssize_t *val = map_put_ref_uint64_tssize_t(map, key,
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 162 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ssize_t map_del_uint64_tssize_t(Map_uint64_tssize_t *map, uint64_t key, uint64_t *key_alloc);
typedef struct { Set_uint64_t set; uint64_t *values; } Map_uint64_tuint64_t; static inline uint64_t map_get_uint64_tuint64_t(Map_uint64_tuint64_t *map, uint64_t key) { uint32_t k = mh_get_uint64_t(&map->set, key); return k ==
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_uint64_t : map->values[k]; } uint64_t *map_ref_uint64_tuint64_t(Map_uint64_tuint64_t *map, uint64_t key, uint64_t **key_alloc); uint64_t *map_put_ref_uint64_tuint64_t(Map_uint64_tuint64_t *map, uint64_t key, uint64_t **key_alloc,
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_uint64_tuint64_t(Map_uint64_tuint64_t *map, uint64_t key, uint64_t value) { uint64_t *val = map_put_ref_uint64_tuint64_t(map, key,
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 163 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } uint64_t map_del_uint64_tuint64_t(Map_uint64_tuint64_t *map, uint64_t key, uint64_t *key_alloc);
typedef struct { Set_int64_t set; int64_t *values; } Map_int64_tint64_t; static inline int64_t map_get_int64_tint64_t(Map_int64_tint64_t *map, int64_t key) { uint32_t k = mh_get_int64_t(&map->set, key); return k ==
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_int64_t : map->values[k]; } int64_t *map_ref_int64_tint64_t(Map_int64_tint64_t *map, int64_t key, int64_t **key_alloc); int64_t *map_put_ref_int64_tint64_t(Map_int64_tint64_t *map, int64_t key, int64_t **key_alloc,
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_int64_tint64_t(Map_int64_tint64_t *map, int64_t key, int64_t value) { int64_t *val = map_put_ref_int64_tint64_t(map, key,
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 164 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } int64_t map_del_int64_tint64_t(Map_int64_tint64_t *map, int64_t key, int64_t *key_alloc);
typedef struct { Set_int64_t set; ptr_t *values; } Map_int64_tptr_t; static inline ptr_t map_get_int64_tptr_t(Map_int64_tptr_t *map, int64_t key) { uint32_t k = mh_get_int64_t(&map->set, key); return k ==
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ptr_t : map->values[k]; } ptr_t *map_ref_int64_tptr_t(Map_int64_tptr_t *map, int64_t key, int64_t **key_alloc); ptr_t *map_put_ref_int64_tptr_t(Map_int64_tptr_t *map, int64_t key, int64_t **key_alloc,
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_int64_tptr_t(Map_int64_tptr_t *map, int64_t key, ptr_t value) { ptr_t *val = map_put_ref_int64_tptr_t(map, key,
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 165 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ptr_t map_del_int64_tptr_t(Map_int64_tptr_t *map, int64_t key, int64_t *key_alloc);
typedef struct { Set_uint32_t set; uint32_t *values; } Map_uint32_tuint32_t; static inline uint32_t map_get_uint32_tuint32_t(Map_uint32_tuint32_t *map, uint32_t key) { uint32_t k = mh_get_uint32_t(&map->set, key); return k ==
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_uint32_t : map->values[k]; } uint32_t *map_ref_uint32_tuint32_t(Map_uint32_tuint32_t *map, uint32_t key, uint32_t **key_alloc); uint32_t *map_put_ref_uint32_tuint32_t(Map_uint32_tuint32_t *map, uint32_t key, uint32_t **key_alloc,
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_uint32_tuint32_t(Map_uint32_tuint32_t *map, uint32_t key, uint32_t value) { uint32_t *val = map_put_ref_uint32_tuint32_t(map, key,
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 166 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } uint32_t map_del_uint32_tuint32_t(Map_uint32_tuint32_t *map, uint32_t key, uint32_t *key_alloc);
typedef struct { Set_String set; int *values; } Map_Stringint; static inline int map_get_Stringint(Map_Stringint *map, String key) { uint32_t k = mh_get_String(&map->set, key); return k ==
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_int : map->values[k]; } int *map_ref_Stringint(Map_Stringint *map, String key, String **key_alloc); int *map_put_ref_Stringint(Map_Stringint *map, String key, String **key_alloc,
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_Stringint(Map_Stringint *map, String key, int value) { int *val = map_put_ref_Stringint(map, key,
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 167 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } int map_del_Stringint(Map_Stringint *map, String key, String *key_alloc);
typedef struct { Set_int set; String *values; } Map_intString; static inline String map_get_intString(Map_intString *map, int key) { uint32_t k = mh_get_int(&map->set, key); return k ==
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_String : map->values[k]; } String *map_ref_intString(Map_intString *map, int key, int **key_alloc); String *map_put_ref_intString(Map_intString *map, int key, int **key_alloc,
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_intString(Map_intString *map, int key, String value) { String *val = map_put_ref_intString(map, key,
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 168 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } String map_del_intString(Map_intString *map, int key, int *key_alloc);
typedef struct { Set_ColorKey set; ColorItem *values; } Map_ColorKeyColorItem; static inline ColorItem map_get_ColorKeyColorItem(Map_ColorKeyColorItem *map, ColorKey key) { uint32_t k = mh_get_ColorKey(&map->set, key); return k ==
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
(4294967295U)
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h"
? value_init_ColorItem : map->values[k]; } ColorItem *map_ref_ColorKeyColorItem(Map_ColorKeyColorItem *map, ColorKey key, ColorKey **key_alloc); ColorItem *map_put_ref_ColorKeyColorItem(Map_ColorKeyColorItem *map, ColorKey key, ColorKey **key_alloc,
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
_Bool
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h"
*new_item); static inline void map_put_ColorKeyColorItem(Map_ColorKeyColorItem *map, ColorKey key, ColorItem value) { ColorItem *val = map_put_ref_ColorKeyColorItem(map, key,
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h"
,
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h" 3 4
((void *)0)
# 169 "/home/ubuntu/neovim/src/nvim/map_defs.h"
); *val = value; } ColorItem map_del_ColorKeyColorItem(Map_ColorKeyColorItem *map, ColorKey key, ColorKey *key_alloc);
# 236 "/home/ubuntu/neovim/src/nvim/map_defs.h"
void pmap_del2(Map_cstr_tptr_t *map, const char *key);
# 55 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/home/ubuntu/neovim/src/nvim/marktree.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/marktree.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/arglist_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/garray_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 4 "/home/ubuntu/neovim/src/nvim/garray_defs.h" 2
typedef struct {
int ga_len;
int ga_maxlen;
int ga_itemsize;
int ga_growsize;
void *ga_data;
} garray_T;
# 4 "/home/ubuntu/neovim/src/nvim/arglist_defs.h" 2
typedef struct {
garray_T al_ga;
int al_refcount;
int id;
} alist_T;
typedef struct {
char *ae_fname;
int ae_fnum;
} aentry_T;
# 8 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/pos_defs.h" 1
typedef int32_t linenr_T;
typedef int colnr_T;
enum { MAXLNUM = 0x7fffffff, };
enum { MAXCOL = 0x7fffffff, };
enum { MINLNUM = 1, };
enum { MINCOL = 1, };
typedef struct {
linenr_T lnum;
colnr_T col;
colnr_T coladd;
} pos_T;
typedef struct {
linenr_T lnum;
colnr_T col;
} lpos_T;
# 8 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 2
enum {
kZIndexDefaultGrid = 0,
kZIndexFloatDefault = 50,
kZIndexPopupMenu = 100,
kZIndexMessages = 200,
kZIndexCmdlinePopupMenu = 250,
};
# 48 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
typedef struct ScreenGrid ScreenGrid;
struct ScreenGrid {
handle_T handle;
schar_T *chars;
sattr_T *attrs;
colnr_T *vcols;
size_t *line_offset;
int *dirty_col;
int rows;
int cols;
# 66 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 3 4
_Bool
# 66 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
valid;
# 70 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 3 4
_Bool
# 70 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
throttled;
int row_offset;
int col_offset;
ScreenGrid *target;
# 81 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 3 4
_Bool
# 81 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
blending;
# 84 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 3 4
_Bool
# 84 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
focusable;
int zindex;
int comp_row;
int comp_col;
int comp_width;
int comp_height;
size_t comp_index;
# 108 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 3 4
_Bool
# 108 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
comp_disabled;
};
typedef struct {
int args[3];
int icell;
int ncells;
int coloff;
int cur_attr;
int clear_width;
# 122 "/home/ubuntu/neovim/src/nvim/grid_defs.h" 3 4
_Bool
# 122 "/home/ubuntu/neovim/src/nvim/grid_defs.h"
wrap;
} GridLineEvent;
# 9 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/mapping_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/limits.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/hashtab_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 4 "/home/ubuntu/neovim/src/nvim/hashtab_defs.h" 2
typedef size_t hash_T;
# 24 "/home/ubuntu/neovim/src/nvim/hashtab_defs.h"
typedef struct {
hash_T hi_hash;
char *hi_key;
} hashitem_T;
enum {
HT_INIT_SIZE = 16,
};
typedef struct {
hash_T ht_mask;
size_t ht_used;
size_t ht_filled;
int ht_changed;
int ht_locked;
hashitem_T *ht_array;
hashitem_T ht_smallarray[HT_INIT_SIZE];
} hashtab_T;
# 9 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/lib/queue_defs.h" 1
# 20 "/home/ubuntu/neovim/src/nvim/lib/queue_defs.h"
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 23 "/home/ubuntu/neovim/src/nvim/lib/queue_defs.h" 2
typedef struct queue {
struct queue *next;
struct queue *prev;
} QUEUE;
# 49 "/home/ubuntu/neovim/src/nvim/lib/queue_defs.h"
static inline int QUEUE_EMPTY(const QUEUE *const q)
FUNC_ATTR_ALWAYS_INLINE FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
{
return q == q->next;
}
static inline void QUEUE_INIT(QUEUE *const q)
FUNC_ATTR_ALWAYS_INLINE
{
q->next = q;
q->prev = q;
}
static inline void QUEUE_ADD(QUEUE *const h, QUEUE *const n)
FUNC_ATTR_ALWAYS_INLINE
{
h->prev->next = n->next;
n->next->prev = h->prev;
h->prev = n->prev;
h->prev->next = h;
}
static inline void QUEUE_INSERT_HEAD(QUEUE *const h, QUEUE *const q)
FUNC_ATTR_ALWAYS_INLINE
{
q->next = h->next;
q->prev = h;
q->next->prev = q;
h->next = q;
}
static inline void QUEUE_INSERT_TAIL(QUEUE *const h, QUEUE *const q)
FUNC_ATTR_ALWAYS_INLINE
{
q->next = h;
q->prev = h->prev;
q->prev->next = q;
h->prev = q;
}
static inline void QUEUE_REMOVE(QUEUE *const q)
FUNC_ATTR_ALWAYS_INLINE
{
q->prev->next = q->next;
q->next->prev = q->prev;
}
# 10 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 2
typedef int64_t varnumber_T;
typedef uint64_t uvarnumber_T;
enum {
DO_NOT_FREE_CNT = (0x7fffffff / 2),
};
enum ListLenSpecials {
kListLenUnknown = -1,
kListLenShouldKnow = -2,
kListLenMayKnow = -3,
};
# 51 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
typedef struct listvar_S list_T;
typedef struct dictvar_S dict_T;
typedef struct partial_S partial_T;
typedef struct blobvar_S blob_T;
typedef struct ufunc ufunc_T;
typedef enum {
kCallbackNone = 0,
kCallbackFuncref,
kCallbackPartial,
kCallbackLua,
} CallbackType;
typedef struct {
union {
char *funcref;
partial_T *partial;
LuaRef luaref;
} data;
CallbackType type;
} Callback;
typedef struct {
Callback callback;
char *key_pattern;
size_t key_pattern_len;
QUEUE node;
# 83 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 3 4
_Bool
# 83 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
busy;
# 84 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 3 4
_Bool
# 84 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
needs_free;
} DictWatcher;
typedef enum {
kBoolVarFalse,
kBoolVarTrue,
} BoolVarValue;
typedef enum {
kSpecialVarNull,
} SpecialVarValue;
typedef enum {
VAR_UNLOCKED = 0,
VAR_LOCKED = 1,
VAR_FIXED = 2,
} VarLockStatus;
typedef enum {
VAR_UNKNOWN = 0,
VAR_NUMBER,
VAR_STRING,
VAR_FUNC,
VAR_LIST,
VAR_DICT,
VAR_FLOAT,
VAR_BOOL,
VAR_SPECIAL,
VAR_PARTIAL,
VAR_BLOB,
} VarType;
enum {
VAR_TYPE_NUMBER = 0,
VAR_TYPE_STRING = 1,
VAR_TYPE_FUNC = 2,
VAR_TYPE_LIST = 3,
VAR_TYPE_DICT = 4,
VAR_TYPE_FLOAT = 5,
VAR_TYPE_BOOL = 6,
VAR_TYPE_SPECIAL = 7,
VAR_TYPE_BLOB = 10,
};
typedef struct {
VarType v_type;
VarLockStatus v_lock;
union typval_vval_union {
varnumber_T v_number;
BoolVarValue v_bool;
SpecialVarValue v_special;
float_T v_float;
char *v_string;
list_T *v_list;
dict_T *v_dict;
partial_T *v_partial;
blob_T *v_blob;
} vval;
} typval_T;
# 157 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
typedef enum {
VAR_NO_SCOPE = 0,
VAR_SCOPE = 1,
VAR_DEF_SCOPE = 2,
} ScopeType;
typedef struct listitem_S listitem_T;
struct listitem_S {
listitem_T *li_next;
listitem_T *li_prev;
typval_T li_tv;
};
typedef struct listwatch_S listwatch_T;
struct listwatch_S {
listitem_T *lw_item;
listwatch_T *lw_next;
};
struct listvar_S {
listitem_T *lv_first;
listitem_T *lv_last;
listwatch_T *lv_watch;
listitem_T *lv_idx_item;
list_T *lv_copylist;
list_T *lv_used_next;
list_T *lv_used_prev;
int lv_refcount;
int lv_len;
int lv_idx;
int lv_copyID;
VarLockStatus lv_lock;
LuaRef lua_table_ref;
};
typedef struct {
list_T sl_list;
listitem_T sl_items[10];
} staticList10_T;
# 233 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
typedef struct { typval_T di_tv; uint8_t di_flags; char di_key[1]; } ScopeDictDictItem;
typedef struct { typval_T di_tv; uint8_t di_flags; char di_key[]; } dictitem_T;
typedef enum {
DI_FLAGS_RO = 1,
DI_FLAGS_RO_SBX = 2,
DI_FLAGS_FIX = 4,
DI_FLAGS_LOCK = 8,
DI_FLAGS_ALLOC = 16,
} DictItemFlags;
struct dictvar_S {
VarLockStatus dv_lock;
ScopeType dv_scope;
int dv_refcount;
int dv_copyID;
hashtab_T dv_hashtab;
dict_T *dv_copydict;
dict_T *dv_used_next;
dict_T *dv_used_prev;
QUEUE watchers;
LuaRef lua_table_ref;
};
struct blobvar_S {
garray_T bv_ga;
int bv_refcount;
VarLockStatus bv_lock;
};
typedef int scid_T;
# 285 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
typedef struct {
scid_T sc_sid;
int sc_seq;
linenr_T sc_lnum;
} sctx_T;
typedef struct {
sctx_T script_ctx;
uint64_t channel_id;
} LastSet;
enum { MAX_FUNC_ARGS = 20, };
enum { VAR_SHORT_LEN = 20, };
enum { FIXVAR_CNT = 12, };
typedef struct funccall_S funccall_T;
struct funccall_S {
ufunc_T *fc_func;
int fc_linenr;
int fc_returned;
struct { typval_T di_tv; uint8_t di_flags; char di_key[VAR_SHORT_LEN + 1]; } fc_fixvar[FIXVAR_CNT];
dict_T fc_l_vars;
ScopeDictDictItem fc_l_vars_var;
dict_T fc_l_avars;
ScopeDictDictItem fc_l_avars_var;
list_T fc_l_varlist;
listitem_T fc_l_listitems[MAX_FUNC_ARGS];
typval_T *fc_rettv;
linenr_T fc_breakpoint;
int fc_dbg_tick;
int fc_level;
garray_T fc_defer;
proftime_T fc_prof_child;
funccall_T *fc_caller;
int fc_refcount;
int fc_copyID;
garray_T fc_ufuncs;
};
struct ufunc {
int uf_varargs;
int uf_flags;
int uf_calls;
# 333 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 3 4
_Bool
# 333 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
uf_cleared;
garray_T uf_args;
garray_T uf_def_args;
garray_T uf_lines;
int uf_profiling;
int uf_prof_initialized;
LuaRef uf_luaref;
int uf_tm_count;
proftime_T uf_tm_total;
proftime_T uf_tm_self;
proftime_T uf_tm_children;
int *uf_tml_count;
proftime_T *uf_tml_total;
proftime_T *uf_tml_self;
proftime_T uf_tml_start;
proftime_T uf_tml_children;
proftime_T uf_tml_wait;
int uf_tml_idx;
int uf_tml_execed;
sctx_T uf_script_ctx;
int uf_refcount;
funccall_T *uf_scoped;
char *uf_name_exp;
char uf_name[];
};
struct partial_S {
int pt_refcount;
int pt_copyID;
char *pt_name;
ufunc_T *pt_func;
# 370 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h" 3 4
_Bool
# 370 "/home/ubuntu/neovim/src/nvim/eval/typval_defs.h"
pt_auto;
int pt_argc;
typval_T *pt_argv;
dict_T *pt_dict;
};
typedef struct ht_stack_S {
hashtab_T *ht;
struct ht_stack_S *prev;
} ht_stack_T;
typedef struct list_stack_S {
list_T *list;
struct list_stack_S *prev;
} list_stack_T;
# 6 "/home/ubuntu/neovim/src/nvim/mapping_defs.h" 2
enum { MAXMAPLEN = 50, };
typedef struct mapblock mapblock_T;
struct mapblock {
mapblock_T *m_next;
mapblock_T *m_alt;
char *m_keys;
char *m_str;
char *m_orig_str;
LuaRef m_luaref;
int m_keylen;
int m_mode;
int m_simplified;
int m_noremap;
char m_silent;
char m_nowait;
char m_expr;
sctx_T m_script_ctx;
char *m_desc;
# 29 "/home/ubuntu/neovim/src/nvim/mapping_defs.h" 3 4
_Bool
# 29 "/home/ubuntu/neovim/src/nvim/mapping_defs.h"
m_replace_keycodes;
};
# 10 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/marktree_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/marktree_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/decoration_defs.h" 1
# 11 "/home/ubuntu/neovim/src/nvim/decoration_defs.h"
typedef struct {
char *text;
int hl_id;
} VirtTextChunk;
typedef struct { size_t size; size_t capacity; VirtTextChunk *items; } VirtText;
typedef enum {
kVPosEndOfLine,
kVPosOverlay,
kVPosWinCol,
kVPosRightAlign,
kVPosInline,
} VirtTextPos;
typedef struct { size_t size; size_t capacity; struct virt_line { VirtText line;
# 28 "/home/ubuntu/neovim/src/nvim/decoration_defs.h" 3 4
_Bool
# 28 "/home/ubuntu/neovim/src/nvim/decoration_defs.h"
left_col; } *items; } VirtLines;
typedef uint16_t DecorPriority;
typedef enum {
kHlModeUnknown,
kHlModeReplace,
kHlModeCombine,
kHlModeBlend,
} HlMode;
enum {
kSHIsSign = 1,
kSHHlEol = 2,
kSHUIWatched = 4,
kSHUIWatchedOverlay = 8,
kSHSpellOn = 16,
kSHSpellOff = 32,
kSHConceal = 64,
};
typedef struct {
uint16_t flags;
DecorPriority priority;
int hl_id;
schar_T conceal_char;
} DecorHighlightInline;
typedef struct {
uint16_t flags;
DecorPriority priority;
int hl_id;
schar_T text[SIGN_WIDTH];
char *sign_name;
int sign_add_id;
int number_hl_id;
int line_hl_id;
int cursorline_hl_id;
uint32_t next;
const char *url;
} DecorSignHighlight;
enum {
kVTIsLines = 1,
kVTHide = 2,
kVTLinesAbove = 4,
kVTRepeatLinebreak = 8,
};
typedef struct DecorVirtText DecorVirtText;
struct DecorVirtText {
uint8_t flags;
uint8_t hl_mode;
DecorPriority priority;
int width;
int col;
VirtTextPos pos;
union {
VirtText virt_text;
VirtLines virt_lines;
} data;
DecorVirtText *next;
};
typedef struct {
uint32_t sh_idx;
DecorVirtText *vt;
} DecorExt;
typedef union {
DecorHighlightInline hl;
DecorExt ext;
} DecorInlineData;
typedef struct {
# 122 "/home/ubuntu/neovim/src/nvim/decoration_defs.h" 3 4
_Bool
# 122 "/home/ubuntu/neovim/src/nvim/decoration_defs.h"
ext;
DecorInlineData data;
} DecorInline;
typedef struct {
NS ns_id;
enum {
kDecorProviderActive = 1,
kDecorProviderWinDisabled = 2,
kDecorProviderRedrawDisabled = 3,
kDecorProviderDisabled = 4,
} state;
LuaRef redraw_start;
LuaRef redraw_buf;
LuaRef redraw_win;
LuaRef redraw_line;
LuaRef redraw_end;
LuaRef hl_def;
LuaRef spell_nav;
int hl_valid;
# 147 "/home/ubuntu/neovim/src/nvim/decoration_defs.h" 3 4
_Bool
# 147 "/home/ubuntu/neovim/src/nvim/decoration_defs.h"
hl_cached;
uint8_t error_count;
} DecorProvider;
# 8 "/home/ubuntu/neovim/src/nvim/marktree_defs.h" 2
enum {
MT_MAX_DEPTH = 20,
MT_BRANCH_FACTOR = 10,
MT_LOG2_BRANCH = 5,
};
typedef struct {
int32_t row;
int32_t col;
} MTPos;
typedef enum {
kMTMetaInline,
kMTMetaLines,
kMTMetaSignHL,
kMTMetaSignText,
kMTMetaCount,
} MetaIndex;
typedef const uint32_t *MetaFilter;
typedef struct mtnode_s MTNode;
typedef struct {
MTPos pos;
int lvl;
MTNode *x;
int i;
struct {
int oldcol;
int i;
} s[MT_MAX_DEPTH];
size_t intersect_idx;
MTPos intersect_pos;
MTPos intersect_pos_x;
} MarkTreeIter;
# 65 "/home/ubuntu/neovim/src/nvim/marktree_defs.h"
typedef struct {
MTPos pos;
uint32_t ns;
uint32_t id;
uint16_t flags;
DecorInlineData decor_data;
} MTKey;
typedef struct {
MTKey start;
MTPos end_pos;
# 76 "/home/ubuntu/neovim/src/nvim/marktree_defs.h" 3 4
_Bool
# 76 "/home/ubuntu/neovim/src/nvim/marktree_defs.h"
end_right_gravity;
} MTPair;
typedef struct { size_t size; size_t capacity; uint64_t *items; uint64_t init_array[4]; } Intersection;
struct mtnode_inner_s {
MTNode *i_ptr[2 * MT_BRANCH_FACTOR];
uint32_t i_meta[2 * MT_BRANCH_FACTOR][kMTMetaCount];
};
struct mtnode_s {
int32_t n;
int16_t level;
int16_t p_idx;
Intersection intersect;
MTNode *parent;
MTKey key[2 * MT_BRANCH_FACTOR - 1];
struct mtnode_inner_s s[];
};
typedef struct {
MTNode *root;
uint32_t meta_root[kMTMetaCount];
size_t n_keys, n_nodes;
Map_uint64_tptr_t id2node[1];
} MarkTree;
# 11 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/memline_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/memfile_defs.h" 1
# 14 "/home/ubuntu/neovim/src/nvim/memfile_defs.h"
typedef int64_t blocknr_T;
# 27 "/home/ubuntu/neovim/src/nvim/memfile_defs.h"
typedef struct {
blocknr_T bh_bnum;
void *bh_data;
unsigned bh_page_count;
unsigned bh_flags;
} bhdr_T;
typedef enum {
MF_DIRTY_NO = 0,
MF_DIRTY_YES,
MF_DIRTY_YES_NOSYNC,
} mfdirty_T;
typedef struct {
char *mf_fname;
char *mf_ffname;
int mf_fd;
int mf_flags;
# 50 "/home/ubuntu/neovim/src/nvim/memfile_defs.h" 3 4
_Bool
# 50 "/home/ubuntu/neovim/src/nvim/memfile_defs.h"
mf_reopen;
bhdr_T *mf_free_first;
Map_int64_tptr_t mf_hash;
Map_int64_tint64_t mf_trans;
blocknr_T mf_blocknr_max;
blocknr_T mf_blocknr_min;
blocknr_T mf_neg_count;
blocknr_T mf_infile_count;
unsigned mf_page_size;
mfdirty_T mf_dirty;
} memfile_T;
# 4 "/home/ubuntu/neovim/src/nvim/memline_defs.h" 2
typedef struct {
blocknr_T ip_bnum;
linenr_T ip_low;
linenr_T ip_high;
int ip_index;
} infoptr_T;
typedef struct {
int mlcs_numlines;
int mlcs_totalsize;
} chunksize_T;
# 43 "/home/ubuntu/neovim/src/nvim/memline_defs.h"
typedef struct {
linenr_T ml_line_count;
memfile_T *ml_mfp;
infoptr_T *ml_stack;
int ml_stack_top;
int ml_stack_size;
int ml_flags;
colnr_T ml_line_len;
linenr_T ml_line_lnum;
char *ml_line_ptr;
size_t ml_line_offset;
int ml_line_offset_ff;
bhdr_T *ml_locked;
linenr_T ml_locked_low;
linenr_T ml_locked_high;
int ml_locked_lineadd;
chunksize_T *ml_chunksize;
int ml_numchunks;
int ml_usedchunks;
} memline_T;
# 12 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/option_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/option_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/cmdexpand_defs.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/cmdexpand_defs.h" 2
typedef enum {
XP_PREFIX_NONE,
XP_PREFIX_NO,
XP_PREFIX_INV,
} xp_prefix_T;
enum { EXPAND_BUF_LEN = 256, };
typedef struct {
char *xp_pattern;
int xp_context;
size_t xp_pattern_len;
xp_prefix_T xp_prefix;
char *xp_arg;
LuaRef xp_luaref;
sctx_T xp_script_ctx;
int xp_backslash;
# 28 "/home/ubuntu/neovim/src/nvim/cmdexpand_defs.h" 3 4
_Bool
# 28 "/home/ubuntu/neovim/src/nvim/cmdexpand_defs.h"
xp_shell;
int xp_numfiles;
int xp_col;
int xp_selected;
char *xp_orig;
char **xp_files;
char *xp_line;
char xp_buf[EXPAND_BUF_LEN];
} expand_T;
enum {
XP_BS_NONE = 0,
XP_BS_ONE = 0x1,
XP_BS_THREE = 0x2,
XP_BS_COMMA = 0x4,
};
enum {
EXPAND_UNSUCCESSFUL = -2,
EXPAND_OK = -1,
EXPAND_NOTHING = 0,
EXPAND_COMMANDS,
EXPAND_FILES,
EXPAND_DIRECTORIES,
EXPAND_SETTINGS,
EXPAND_BOOL_SETTINGS,
EXPAND_TAGS,
EXPAND_OLD_SETTING,
EXPAND_HELP,
EXPAND_BUFFERS,
EXPAND_EVENTS,
EXPAND_MENUS,
EXPAND_SYNTAX,
EXPAND_HIGHLIGHT,
EXPAND_AUGROUP,
EXPAND_USER_VARS,
EXPAND_MAPPINGS,
EXPAND_TAGS_LISTFILES,
EXPAND_FUNCTIONS,
EXPAND_USER_FUNC,
EXPAND_EXPRESSION,
EXPAND_MENUNAMES,
EXPAND_USER_COMMANDS,
EXPAND_USER_CMD_FLAGS,
EXPAND_USER_NARGS,
EXPAND_USER_COMPLETE,
EXPAND_ENV_VARS,
EXPAND_LANGUAGE,
EXPAND_COLORS,
EXPAND_COMPILER,
EXPAND_USER_DEFINED,
EXPAND_USER_LIST,
EXPAND_USER_LUA,
EXPAND_SHELLCMD,
EXPAND_SIGN,
EXPAND_PROFILE,
EXPAND_FILETYPE,
EXPAND_FILES_IN_PATH,
EXPAND_OWNSYNTAX,
EXPAND_LOCALES,
EXPAND_HISTORY,
EXPAND_USER,
EXPAND_SYNTIME,
EXPAND_USER_ADDR_TYPE,
EXPAND_PACKADD,
EXPAND_MESSAGES,
EXPAND_MAPCLEAR,
EXPAND_ARGLIST,
EXPAND_DIFF_BUFFERS,
EXPAND_BREAKPOINT,
EXPAND_SCRIPTNAMES,
EXPAND_RUNTIME,
EXPAND_STRING_SETTING,
EXPAND_SETTING_SUBTRACT,
EXPAND_ARGOPT,
EXPAND_KEYMAP,
EXPAND_DIRS_IN_CDPATH,
EXPAND_CHECKHEALTH,
EXPAND_LUA,
};
typedef char *(*CompleteListItemGetter)(expand_T *, int);
# 8 "/home/ubuntu/neovim/src/nvim/option_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/regexp_defs.h" 1
# 10 "/home/ubuntu/neovim/src/nvim/regexp_defs.h"
enum {
NSUBEXP = 10,
};
typedef struct regengine regengine_T;
typedef struct {
regprog_T *regprog;
lpos_T startpos[NSUBEXP];
lpos_T endpos[NSUBEXP];
colnr_T rmm_matchcol;
int rmm_ic;
colnr_T rmm_maxcol;
} regmmatch_T;
typedef enum {
OPTION_MAGIC_NOT_SET,
OPTION_MAGIC_ON,
OPTION_MAGIC_OFF,
} optmagic_T;
typedef enum {
MAGIC_NONE = 1,
MAGIC_OFF = 2,
MAGIC_ON = 3,
MAGIC_ALL = 4,
} magic_T;
typedef struct {
regprog_T *regprog;
char *startp[NSUBEXP];
char *endp[NSUBEXP];
colnr_T rm_matchcol;
# 71 "/home/ubuntu/neovim/src/nvim/regexp_defs.h" 3 4
_Bool
# 71 "/home/ubuntu/neovim/src/nvim/regexp_defs.h"
rm_ic;
} regmatch_T;
typedef struct {
int16_t refcnt;
uint8_t *matches[NSUBEXP];
} reg_extmatch_T;
enum {
REGSUB_COPY = 1,
REGSUB_MAGIC = 2,
REGSUB_BACKSLASH = 4,
};
# 9 "/home/ubuntu/neovim/src/nvim/option_defs.h" 2
# 17 "/home/ubuntu/neovim/src/nvim/option_defs.h"
typedef enum {
kOptValTypeNil = -1,
kOptValTypeBoolean,
kOptValTypeNumber,
kOptValTypeString,
} OptValType;
typedef uint32_t OptTypeFlags;
typedef union {
TriState boolean;
OptInt number;
String string;
} OptValData;
typedef struct {
OptValType type;
OptValData data;
} OptVal;
typedef enum {
OP_NONE = 0,
OP_ADDING,
OP_PREPENDING,
OP_REMOVING,
} set_op_T;
typedef struct {
void *os_varp;
OptIndex os_idx;
int os_flags;
OptValData os_oldval;
OptValData os_newval;
# 67 "/home/ubuntu/neovim/src/nvim/option_defs.h" 3 4
_Bool
# 67 "/home/ubuntu/neovim/src/nvim/option_defs.h"
os_value_checked;
# 69 "/home/ubuntu/neovim/src/nvim/option_defs.h" 3 4
_Bool
# 69 "/home/ubuntu/neovim/src/nvim/option_defs.h"
os_value_changed;
# 74 "/home/ubuntu/neovim/src/nvim/option_defs.h" 3 4
_Bool
# 74 "/home/ubuntu/neovim/src/nvim/option_defs.h"
os_restore_chartab;
char *os_errbuf;
size_t os_errbuflen;
void *os_win;
void *os_buf;
} optset_T;
typedef const char *(*opt_did_set_cb_T)(optset_T *args);
typedef struct {
char *oe_varp;
char *oe_opt_value;
# 103 "/home/ubuntu/neovim/src/nvim/option_defs.h" 3 4
_Bool
# 103 "/home/ubuntu/neovim/src/nvim/option_defs.h"
oe_append;
# 105 "/home/ubuntu/neovim/src/nvim/option_defs.h" 3 4
_Bool
# 105 "/home/ubuntu/neovim/src/nvim/option_defs.h"
oe_include_orig_val;
regmatch_T *oe_regmatch;
expand_T *oe_xp;
char *oe_set_arg;
} optexpand_T;
# 128 "/home/ubuntu/neovim/src/nvim/option_defs.h"
typedef int (*opt_expand_cb_T)(optexpand_T *args, int *numMatches, char ***matches);
typedef enum {
kOptReqGlobal = 0,
kOptReqWin = 1,
kOptReqBuf = 2,
} OptReqScope;
# 13 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/os/fs_defs.h" 1
typedef struct {
uv_stat_t stat;
} FileInfo;
typedef struct {
uint64_t inode;
uint64_t device_id;
} FileID;
typedef struct {
uv_fs_t request;
uv_dirent_t ent;
} Directory;
# 14 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/statusline_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/fold_defs.h" 1
typedef struct {
linenr_T fi_lnum;
int fi_level;
int fi_low_level;
linenr_T fi_lines;
} foldinfo_T;
enum { FOLD_TEXT_LEN = 51, };
# 6 "/home/ubuntu/neovim/src/nvim/statusline_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/sign_defs.h" 1
typedef struct {
schar_T text[SIGN_WIDTH];
int hl_id;
} SignTextAttrs;
typedef struct {
char *sn_name;
char *sn_icon;
schar_T sn_text[SIGN_WIDTH];
int sn_line_hl;
int sn_text_hl;
int sn_cul_hl;
int sn_num_hl;
int sn_priority;
} sign_T;
typedef struct {
DecorSignHighlight *sh;
uint32_t id;
} SignItem;
enum { SIGN_SHOW_MAX = 9, };
enum { SIGN_DEF_PRIO = 10, };
# 7 "/home/ubuntu/neovim/src/nvim/statusline_defs.h" 2
typedef struct {
enum {
kStlClickDisabled = 0,
kStlClickTabSwitch,
kStlClickTabClose,
kStlClickFuncRun,
} type;
int tabnr;
char *func;
} StlClickDefinition;
typedef struct {
StlClickDefinition def;
const char *start;
} StlClickRecord;
typedef struct stl_hlrec stl_hlrec_t;
struct stl_hlrec {
char *start;
int userhl;
};
typedef struct stl_item stl_item_t;
struct stl_item {
char *start;
char *cmd;
int minwid;
int maxwid;
enum {
Normal,
Empty,
Group,
Separate,
Highlight,
TabPage,
ClickFunc,
Trunc,
} type;
};
typedef struct {
int width;
int num_attr;
int sign_cul_id;
# 61 "/home/ubuntu/neovim/src/nvim/statusline_defs.h" 3 4
_Bool
# 61 "/home/ubuntu/neovim/src/nvim/statusline_defs.h"
draw;
# 62 "/home/ubuntu/neovim/src/nvim/statusline_defs.h" 3 4
_Bool
# 62 "/home/ubuntu/neovim/src/nvim/statusline_defs.h"
use_cul;
stl_hlrec_t *hlrec;
foldinfo_T foldinfo;
SignTextAttrs *sattrs;
} statuscol_T;
# 15 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/undo_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/extmark_defs.h" 1
typedef ptrdiff_t bcount_t;
typedef struct undo_object ExtmarkUndoObject;
typedef struct { size_t size; size_t capacity; ExtmarkUndoObject *items; } extmark_undo_vec_t;
typedef enum {
kExtmarkNOOP,
kExtmarkUndo,
kExtmarkNoUndo,
kExtmarkUndoNoRedo,
} ExtmarkOp;
# 6 "/home/ubuntu/neovim/src/nvim/undo_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/mark_defs.h" 1
# 1 "/home/ubuntu/neovim/src/nvim/func_attr.h" 1
# 6 "/home/ubuntu/neovim/src/nvim/mark_defs.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/os/time_defs.h" 1
typedef uint64_t Timestamp;
# 7 "/home/ubuntu/neovim/src/nvim/mark_defs.h" 2
# 18 "/home/ubuntu/neovim/src/nvim/mark_defs.h"
typedef enum {
kMarkMoveSuccess = 1,
kMarkMoveFailed = 2,
kMarkSwitchedBuf = 4,
kMarkChangedCol = 8,
kMarkChangedLine = 16,
kMarkChangedCursor = 32,
kMarkChangedView = 64,
} MarkMoveRes;
typedef enum {
kMarkBeginLine = 1,
kMarkContext = 2,
KMarkNoContext = 4,
kMarkSetView = 8,
kMarkJumpList = 16,
} MarkMove;
typedef enum {
kMarkBufLocal,
kMarkAll,
kMarkAllNoResolve,
} MarkGet;
# 69 "/home/ubuntu/neovim/src/nvim/mark_defs.h"
typedef struct {
linenr_T topline_offset;
} fmarkv_T;
typedef struct {
pos_T mark;
int fnum;
Timestamp timestamp;
fmarkv_T view;
AdditionalData *additional_data;
} fmark_T;
typedef struct {
fmark_T fmark;
char *fname;
} xfmark_T;
static inline
# 96 "/home/ubuntu/neovim/src/nvim/mark_defs.h" 3 4
_Bool
# 96 "/home/ubuntu/neovim/src/nvim/mark_defs.h"
lt(pos_T a, pos_T b)
FUNC_ATTR_CONST FUNC_ATTR_ALWAYS_INLINE
{
if (a.lnum != b.lnum) {
return a.lnum < b.lnum;
} else if (a.col != b.col) {
return a.col < b.col;
} else {
return a.coladd < b.coladd;
}
}
static inline
# 108 "/home/ubuntu/neovim/src/nvim/mark_defs.h" 3 4
_Bool
# 108 "/home/ubuntu/neovim/src/nvim/mark_defs.h"
equalpos(pos_T a, pos_T b)
FUNC_ATTR_CONST FUNC_ATTR_ALWAYS_INLINE
{
return (a.lnum == b.lnum) && (a.col == b.col) && (a.coladd == b.coladd);
}
static inline
# 114 "/home/ubuntu/neovim/src/nvim/mark_defs.h" 3 4
_Bool
# 114 "/home/ubuntu/neovim/src/nvim/mark_defs.h"
ltoreq(pos_T a, pos_T b)
FUNC_ATTR_CONST FUNC_ATTR_ALWAYS_INLINE
{
return lt(a, b) || equalpos(a, b);
}
static inline void clearpos(pos_T *a)
FUNC_ATTR_ALWAYS_INLINE
{
a->lnum = 0;
a->col = 0;
a->coladd = 0;
}
# 7 "/home/ubuntu/neovim/src/nvim/undo_defs.h" 2
enum { UNDO_HASH_SIZE = 32, };
typedef struct u_header u_header_T;
typedef struct {
pos_T vi_start;
pos_T vi_end;
int vi_mode;
colnr_T vi_curswant;
} visualinfo_T;
typedef struct u_entry u_entry_T;
struct u_entry {
u_entry_T *ue_next;
linenr_T ue_top;
linenr_T ue_bot;
linenr_T ue_lcount;
char **ue_array;
linenr_T ue_size;
};
struct u_header {
union {
u_header_T *ptr;
int seq;
} uh_next;
union {
u_header_T *ptr;
int seq;
} uh_prev;
union {
u_header_T *ptr;
int seq;
} uh_alt_next;
union {
u_header_T *ptr;
int seq;
} uh_alt_prev;
int uh_seq;
int uh_walk;
u_entry_T *uh_entry;
u_entry_T *uh_getbot_entry;
pos_T uh_cursor;
colnr_T uh_cursor_vcol;
int uh_flags;
fmark_T uh_namedm[('z' - 'a' + 1)];
extmark_undo_vec_t uh_extmark;
visualinfo_T uh_visual;
time_t uh_time;
int uh_save_nr;
};
enum {
UH_CHANGED = 0x01,
UH_EMPTYBUF = 0x02,
UH_RELOAD = 0x04,
};
# 16 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 2
typedef struct {
buf_T *br_buf;
int br_fnum;
int br_buf_free_count;
} bufref_T;
# 73 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct wininfo_S wininfo_T;
typedef struct frame_S frame_T;
typedef uint64_t disptick_T;
typedef struct {
char *tagname;
fmark_T fmark;
int cur_match;
int cur_fnum;
char *user_data;
} taggy_T;
typedef struct {
int wo_arab;
int wo_bri;
char *wo_briopt;
int wo_diff;
char *wo_fdc;
char *wo_fdc_save;
int wo_fen;
int wo_fen_save;
char *wo_fdi;
OptInt wo_fdl;
OptInt wo_fdl_save;
char *wo_fdm;
char *wo_fdm_save;
OptInt wo_fml;
OptInt wo_fdn;
char *wo_fde;
char *wo_fdt;
char *wo_fmr;
int wo_lbr;
int wo_list;
int wo_nu;
int wo_rnu;
char *wo_ve;
unsigned wo_ve_flags;
OptInt wo_nuw;
int wo_wfb;
int wo_wfh;
int wo_wfw;
int wo_pvw;
int wo_rl;
char *wo_rlc;
OptInt wo_scr;
int wo_sms;
int wo_spell;
int wo_cuc;
int wo_cul;
char *wo_culopt;
char *wo_cc;
char *wo_sbr;
char *wo_stc;
char *wo_stl;
char *wo_wbr;
int wo_scb;
int wo_diff_saved;
int wo_scb_save;
int wo_wrap;
int wo_wrap_save;
char *wo_cocu;
OptInt wo_cole;
int wo_crb;
int wo_crb_save;
char *wo_scl;
OptInt wo_siso;
OptInt wo_so;
char *wo_winhl;
char *wo_lcs;
char *wo_fcs;
OptInt wo_winbl;
LastSet wo_script_ctx[WV_COUNT];
} winopt_T;
# 221 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
struct wininfo_S {
wininfo_T *wi_next;
wininfo_T *wi_prev;
win_T *wi_win;
fmark_T wi_mark;
# 226 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 226 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
wi_optset;
winopt_T wi_opt;
# 228 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 228 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
wi_fold_manual;
garray_T wi_folds;
int wi_changelistidx;
};
# 251 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct qf_info_S qf_info_T;
typedef struct {
proftime_T total;
proftime_T slowest;
int count;
int match;
} syn_time_T;
typedef struct {
hashtab_T b_keywtab;
hashtab_T b_keywtab_ic;
# 266 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 266 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_syn_error;
# 267 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 267 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_syn_slow;
int b_syn_ic;
int b_syn_foldlevel;
int b_syn_spell;
garray_T b_syn_patterns;
garray_T b_syn_clusters;
int b_spell_cluster_id;
int b_nospell_cluster_id;
int b_syn_containedin;
int b_syn_sync_flags;
int16_t b_syn_sync_id;
linenr_T b_syn_sync_minlines;
linenr_T b_syn_sync_maxlines;
linenr_T b_syn_sync_linebreaks;
char *b_syn_linecont_pat;
regprog_T *b_syn_linecont_prog;
syn_time_T b_syn_linecont_time;
int b_syn_linecont_ic;
int b_syn_topgrp;
int b_syn_conceal;
int b_syn_folditems;
# 302 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
synstate_T *b_sst_array;
int b_sst_len;
synstate_T *b_sst_first;
synstate_T *b_sst_firstfree;
int b_sst_freecount;
linenr_T b_sst_check_lnum;
disptick_T b_sst_lasttick;
garray_T b_langp;
# 312 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 312 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_spell_ismw[256];
char *b_spell_ismw_mb;
char *b_p_spc;
regprog_T *b_cap_prog;
char *b_p_spf;
char *b_p_spl;
char *b_p_spo;
unsigned b_p_spo_flags;
int b_cjk;
uint8_t b_syn_chartab[32];
char *b_syn_isk;
} synblock_T;
typedef struct { typval_T di_tv; uint8_t di_flags; char di_key[sizeof("changedtick")]; } ChangedtickDictItem;
typedef struct {
LuaRef on_lines;
LuaRef on_bytes;
LuaRef on_changedtick;
LuaRef on_detach;
LuaRef on_reload;
# 338 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 338 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
utf_sizes;
# 339 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 339 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
preview;
} BufUpdateCallbacks;
# 356 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
struct file_buffer {
handle_T handle;
memline_T b_ml;
buf_T *b_next;
buf_T *b_prev;
int b_nwindows;
int b_flags;
int b_locked;
int b_locked_split;
int b_ro_locked;
char *b_ffname;
char *b_sfname;
char *b_fname;
# 385 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 385 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
file_id_valid;
FileID file_id;
int b_changed;
# 390 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 390 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_changed_invalid;
ChangedtickDictItem changedtick_di;
varnumber_T b_last_changedtick;
varnumber_T b_last_changedtick_i;
varnumber_T b_last_changedtick_pum;
# 404 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 404 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_saving;
# 409 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 409 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_mod_set;
linenr_T b_mod_top;
linenr_T b_mod_bot;
linenr_T b_mod_xlines;
wininfo_T *b_wininfo;
disptick_T b_mod_tick_syn;
disptick_T b_mod_tick_decor;
int64_t b_mtime;
int64_t b_mtime_ns;
int64_t b_mtime_read;
int64_t b_mtime_read_ns;
uint64_t b_orig_size;
int b_orig_mode;
time_t b_last_used;
fmark_T b_namedm[('z' - 'a' + 1)];
visualinfo_T b_visual;
int b_visual_mode_eval;
fmark_T b_last_cursor;
fmark_T b_last_insert;
fmark_T b_last_change;
fmark_T b_changelist[100];
int b_changelistlen;
# 444 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 444 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_new_change;
uint64_t b_chartab[4];
mapblock_T *(b_maphash[256]);
mapblock_T *b_first_abbr;
garray_T b_ucmds;
pos_T b_op_start;
pos_T b_op_start_orig;
pos_T b_op_end;
# 462 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 462 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_marks_read;
# 464 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 464 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_modified_was_set;
# 465 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 465 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_did_filetype;
# 466 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 466 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_keep_filetype;
# 475 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
# 475 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 475 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_au_did_filetype;
u_header_T *b_u_oldhead;
u_header_T *b_u_newhead;
u_header_T *b_u_curhead;
int b_u_numhead;
# 483 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 483 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_u_synced;
int b_u_seq_last;
int b_u_save_nr_last;
int b_u_seq_cur;
time_t b_u_time_cur;
int b_u_save_nr_cur;
char *b_u_line_ptr;
linenr_T b_u_line_lnum;
colnr_T b_u_line_colnr;
# 495 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 495 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_scanned;
OptInt b_p_iminsert;
OptInt b_p_imsearch;
int16_t b_kmap_state;
garray_T b_kmap_ga;
# 513 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 513 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_p_initialized;
LastSet b_p_script_ctx[BV_COUNT];
int b_p_ai;
int b_p_ai_nopaste;
char *b_p_bkc;
unsigned b_bkc_flags;
int b_p_ci;
int b_p_bin;
int b_p_bomb;
char *b_p_bh;
char *b_p_bt;
int b_has_qf_entry;
int b_p_bl;
OptInt b_p_channel;
int b_p_cin;
char *b_p_cino;
char *b_p_cink;
char *b_p_cinw;
char *b_p_cinsd;
char *b_p_com;
char *b_p_cms;
char *b_p_cot;
unsigned b_cot_flags;
char *b_p_cpt;
char *b_p_cfu;
Callback b_cfu_cb;
char *b_p_ofu;
Callback b_ofu_cb;
char *b_p_tfu;
Callback b_tfu_cb;
int b_p_eof;
int b_p_eol;
int b_p_fixeol;
int b_p_et;
int b_p_et_nobin;
int b_p_et_nopaste;
char *b_p_fenc;
char *b_p_ff;
char *b_p_ft;
char *b_p_fo;
char *b_p_flp;
int b_p_inf;
char *b_p_isk;
char *b_p_def;
char *b_p_inc;
char *b_p_inex;
uint32_t b_p_inex_flags;
char *b_p_inde;
uint32_t b_p_inde_flags;
char *b_p_indk;
char *b_p_fp;
char *b_p_fex;
uint32_t b_p_fex_flags;
char *b_p_kp;
int b_p_lisp;
char *b_p_lop;
char *b_p_menc;
char *b_p_mps;
int b_p_ml;
int b_p_ml_nobin;
int b_p_ma;
char *b_p_nf;
int b_p_pi;
char *b_p_qe;
int b_p_ro;
OptInt b_p_sw;
OptInt b_p_scbk;
int b_p_si;
OptInt b_p_sts;
OptInt b_p_sts_nopaste;
char *b_p_sua;
int b_p_swf;
OptInt b_p_smc;
char *b_p_syn;
OptInt b_p_ts;
OptInt b_p_tw;
OptInt b_p_tw_nobin;
OptInt b_p_tw_nopaste;
OptInt b_p_wm;
OptInt b_p_wm_nobin;
OptInt b_p_wm_nopaste;
char *b_p_vsts;
colnr_T *b_p_vsts_array;
char *b_p_vsts_nopaste;
char *b_p_vts;
colnr_T *b_p_vts_array;
char *b_p_keymap;
char *b_p_gp;
char *b_p_mp;
char *b_p_efm;
char *b_p_ep;
char *b_p_path;
int b_p_ar;
char *b_p_tags;
char *b_p_tc;
unsigned b_tc_flags;
char *b_p_dict;
char *b_p_tsr;
char *b_p_tsrfu;
Callback b_tsrfu_cb;
OptInt b_p_ul;
int b_p_udf;
char *b_p_lw;
int b_ind_level;
int b_ind_open_imag;
int b_ind_no_brace;
int b_ind_first_open;
int b_ind_open_extra;
int b_ind_close_extra;
int b_ind_open_left_imag;
int b_ind_jump_label;
int b_ind_case;
int b_ind_case_code;
int b_ind_case_break;
int b_ind_param;
int b_ind_func_type;
int b_ind_comment;
int b_ind_in_comment;
int b_ind_in_comment2;
int b_ind_cpp_baseclass;
int b_ind_continuation;
int b_ind_unclosed;
int b_ind_unclosed2;
int b_ind_unclosed_noignore;
int b_ind_unclosed_wrapped;
int b_ind_unclosed_whiteok;
int b_ind_matching_paren;
int b_ind_paren_prev;
int b_ind_maxparen;
int b_ind_maxcomment;
int b_ind_scopedecl;
int b_ind_scopedecl_code;
int b_ind_java;
int b_ind_js;
int b_ind_keep_case_label;
int b_ind_hash_comment;
int b_ind_cpp_namespace;
int b_ind_if_for_while;
int b_ind_cpp_extern_c;
int b_ind_pragma;
linenr_T b_no_eol_lnum;
int b_start_eof;
int b_start_eol;
int b_start_ffc;
char *b_start_fenc;
int b_bad_char;
int b_start_bomb;
ScopeDictDictItem b_bufvar;
dict_T *b_vars;
# 681 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 681 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_may_swap;
# 682 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 682 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_did_warn;
# 689 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 689 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_help;
# 691 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 691 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
b_spell;
char *b_prompt_text;
Callback b_prompt_callback;
Callback b_prompt_interrupt;
int b_prompt_insert;
synblock_T b_s;
struct {
int max;
int count[SIGN_SHOW_MAX];
# 707 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 707 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
resized;
# 708 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 708 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
autom;
} b_signcols;
Terminal *terminal;
AdditionalData *additional_data;
int b_mapped_ctrl_c;
MarkTree b_marktree[1];
Map_uint32_tuint32_t b_extmark_ns[1];
struct { size_t size; size_t capacity; uint64_t *items; } update_channels;
struct { size_t size; size_t capacity; BufUpdateCallbacks *items; } update_callbacks;
# 729 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 729 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
update_need_codepoints;
size_t deleted_bytes;
size_t deleted_bytes2;
size_t deleted_codepoints;
size_t deleted_codeunits;
int flush_count;
};
# 759 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct diffblock_S diff_T;
struct diffblock_S {
diff_T *df_next;
linenr_T df_lnum[8];
linenr_T df_count[8];
# 764 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 764 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
is_linematched;
};
# 776 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct tabpage_S tabpage_T;
struct tabpage_S {
handle_T handle;
tabpage_T *tp_next;
frame_T *tp_topframe;
win_T *tp_curwin;
win_T *tp_prevwin;
win_T *tp_firstwin;
win_T *tp_lastwin;
int64_t tp_old_Rows_avail;
int64_t tp_old_Columns;
OptInt tp_ch_used;
diff_T *tp_first_diff;
buf_T *(tp_diffbuf[8]);
int tp_diff_invalid;
int tp_diff_update;
frame_T *(tp_snapshot[2]);
ScopeDictDictItem tp_winvar;
dict_T *tp_vars;
char *tp_localdir;
char *tp_prevdir;
};
# 811 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct {
linenr_T wl_lnum;
uint16_t wl_size;
char wl_valid;
char wl_folded;
linenr_T wl_lastlnum;
} wline_T;
struct frame_S {
char fr_layout;
int fr_width;
int fr_newwidth;
int fr_height;
int fr_newheight;
frame_T *fr_parent;
frame_T *fr_next;
frame_T *fr_prev;
frame_T *fr_child;
win_T *fr_win;
};
# 846 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct {
regmmatch_T rm;
buf_T *buf;
linenr_T lnum;
int attr;
int attr_cur;
linenr_T first_lnum;
colnr_T startcol;
colnr_T endcol;
# 856 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 856 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
is_addpos;
# 857 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 857 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
has_cursor;
proftime_T tm;
} match_T;
typedef struct {
linenr_T lnum;
colnr_T col;
int len;
} llpos_T;
typedef struct matchitem matchitem_T;
struct matchitem {
matchitem_T *mit_next;
int mit_id;
int mit_priority;
char *mit_pattern;
regmmatch_T mit_match;
llpos_T *mit_pos_array;
int mit_pos_count;
int mit_pos_cur;
linenr_T mit_toplnum;
linenr_T mit_botlnum;
match_T mit_hl;
int mit_hlg_id;
int mit_conceal_char;
};
typedef int FloatAnchor;
enum {
kFloatAnchorEast = 1,
kFloatAnchorSouth = 2,
};
typedef enum {
kFloatRelativeEditor = 0,
kFloatRelativeWindow = 1,
kFloatRelativeCursor = 2,
kFloatRelativeMouse = 3,
} FloatRelative;
typedef enum {
kWinSplitLeft = 0,
kWinSplitRight = 1,
kWinSplitAbove = 2,
kWinSplitBelow = 3,
} WinSplit;
typedef enum {
kWinStyleUnused = 0,
kWinStyleMinimal,
} WinStyle;
typedef enum {
kAlignLeft = 0,
kAlignCenter = 1,
kAlignRight = 2,
} AlignTextPos;
typedef enum {
kBorderTextTitle = 0,
kBorderTextFooter = 1,
} BorderTextType;
typedef struct {
Window window;
lpos_T bufpos;
int height, width;
double row, col;
FloatAnchor anchor;
FloatRelative relative;
# 939 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 939 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
external;
# 940 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 940 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
focusable;
WinSplit split;
int zindex;
WinStyle style;
# 944 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 944 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
border;
# 945 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 945 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
shadow;
char border_chars[8][32];
int border_hl_ids[8];
int border_attr[8];
# 949 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 949 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
title;
AlignTextPos title_pos;
VirtText title_chunks;
int title_width;
# 953 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 953 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
footer;
AlignTextPos footer_pos;
VirtText footer_chunks;
int footer_width;
# 957 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 957 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
noautocmd;
# 958 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 958 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
fixed;
# 959 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 959 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
hide;
} WinConfig;
# 976 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
typedef struct {
int w_topline_save;
int w_topline_corr;
pos_T w_cursor_save;
pos_T w_cursor_corr;
} pos_save_T;
typedef struct {
schar_T eol;
schar_T ext;
schar_T prec;
schar_T nbsp;
schar_T space;
schar_T tab1;
schar_T tab2;
schar_T tab3;
schar_T lead;
schar_T trail;
schar_T *multispace;
schar_T *leadmultispace;
schar_T conceal;
} lcs_chars_T;
typedef struct {
schar_T stl;
schar_T stlnc;
schar_T wbr;
schar_T horiz;
schar_T horizup;
schar_T horizdown;
schar_T vert;
schar_T vertleft;
schar_T vertright;
schar_T verthoriz;
schar_T fold;
schar_T foldopen;
schar_T foldclosed;
schar_T foldsep;
schar_T diff;
schar_T msgsep;
schar_T eob;
schar_T lastline;
} fcs_chars_T;
struct window_S {
handle_T handle;
buf_T *w_buffer;
synblock_T *w_s;
int w_ns_hl;
int w_ns_hl_winhl;
int w_ns_hl_active;
int *w_ns_hl_attr;
Set_uint32_t w_ns_set;
int w_hl_id_normal;
int w_hl_attr_normal;
int w_hl_attr_normalnc;
int w_hl_needs_update;
win_T *w_prev;
win_T *w_next;
# 1048 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1048 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_locked;
frame_T *w_frame;
pos_T w_cursor;
colnr_T w_curswant;
int w_set_curswant;
linenr_T w_cursorline;
linenr_T w_last_cursorline;
char w_old_visual_mode;
linenr_T w_old_cursor_lnum;
colnr_T w_old_cursor_fcol;
colnr_T w_old_cursor_lcol;
linenr_T w_old_visual_lnum;
colnr_T w_old_visual_col;
colnr_T w_old_curswant;
linenr_T w_last_cursor_lnum_rnu;
lcs_chars_T w_p_lcs_chars;
fcs_chars_T w_p_fcs_chars;
linenr_T w_topline;
char w_topline_was_set;
int w_topfill;
int w_old_topfill;
# 1092 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1092 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_botfill;
# 1094 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1094 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_old_botfill;
colnr_T w_leftcol;
colnr_T w_skipcol;
linenr_T w_last_topline;
int w_last_topfill;
colnr_T w_last_leftcol;
colnr_T w_last_skipcol;
int w_last_width;
int w_last_height;
int w_winrow;
int w_height;
int w_prev_winrow;
int w_prev_height;
int w_status_height;
int w_winbar_height;
int w_wincol;
int w_width;
int w_hsep_height;
int w_vsep_width;
pos_save_T w_save_cursor;
# 1126 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1126 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_do_win_fix_cursor;
int w_winrow_off;
int w_wincol_off;
int w_height_inner;
int w_width_inner;
int w_height_request;
int w_width_request;
int w_border_adj[4];
int w_height_outer;
int w_width_outer;
int w_valid;
pos_T w_valid_cursor;
colnr_T w_valid_leftcol;
colnr_T w_valid_skipcol;
# 1156 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1156 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_viewport_invalid;
linenr_T w_viewport_last_topline;
linenr_T w_viewport_last_botline;
linenr_T w_viewport_last_topfill;
linenr_T w_viewport_last_skipcol;
int w_cline_height;
# 1165 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1165 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_cline_folded;
int w_cline_row;
colnr_T w_virtcol;
# 1179 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
int w_wrow, w_wcol;
linenr_T w_botline;
int w_empty_rows;
int w_filler_rows;
# 1195 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
int w_lines_valid;
wline_T *w_lines;
garray_T w_folds;
# 1199 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1199 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_fold_manual;
# 1201 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1201 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_foldinvalid;
int w_nrwidth;
int w_scwidth;
int w_minscwidth;
int w_maxscwidth;
int w_redr_type;
int w_upd_rows;
linenr_T w_redraw_top;
linenr_T w_redraw_bot;
# 1216 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1216 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_redr_status;
# 1217 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1217 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_redr_border;
# 1218 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1218 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_redr_statuscol;
pos_T w_stl_cursor;
colnr_T w_stl_virtcol;
linenr_T w_stl_topline;
linenr_T w_stl_line_count;
int w_stl_topfill;
char w_stl_empty;
int w_stl_recording;
int w_stl_state;
int w_stl_visual_mode;
int w_alt_fnum;
alist_T *w_alist;
int w_arg_idx;
int w_arg_idx_invalid;
char *w_localdir;
char *w_prevdir;
winopt_T w_onebuf_opt;
winopt_T w_allbuf_opt;
uint32_t w_p_stl_flags;
uint32_t w_p_wbr_flags;
uint32_t w_p_fde_flags;
uint32_t w_p_fdt_flags;
int *w_p_cc_cols;
uint8_t w_p_culopt_flags;
int w_briopt_min;
int w_briopt_shift;
# 1260 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1260 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_briopt_sbr;
int w_briopt_list;
int w_briopt_vcol;
int w_scbind_pos;
ScopeDictDictItem w_winvar;
dict_T *w_vars;
pos_T w_pcmark;
pos_T w_prev_pcmark;
xfmark_T w_jumplist[100];
int w_jumplistlen;
int w_jumplistidx;
int w_changelistidx;
matchitem_T *w_match_head;
int w_next_match_id;
taggy_T w_tagstack[20];
int w_tagstackidx;
int w_tagstacklen;
ScreenGrid w_grid;
ScreenGrid w_grid_alloc;
# 1295 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1295 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_pos_changed;
# 1296 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1296 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_floating;
# 1297 "/home/ubuntu/neovim/src/nvim/buffer_defs.h" 3 4
_Bool
# 1297 "/home/ubuntu/neovim/src/nvim/buffer_defs.h"
w_float_is_info;
WinConfig w_config;
int w_fraction;
int w_prev_fraction_row;
linenr_T w_nrwidth_line_count;
linenr_T w_statuscol_line_count;
int w_nrwidth_width;
qf_info_T *w_llist;
qf_info_T *w_llist_ref;
StlClickDefinition *w_status_click_defs;
size_t w_status_click_defs_size;
StlClickDefinition *w_winbar_click_defs;
size_t w_winbar_click_defs_size;
StlClickDefinition *w_statuscol_click_defs;
size_t w_statuscol_click_defs_size;
};
# 8 "/home/ubuntu/neovim/src/nvim/marktree.h" 2
# 51 "/home/ubuntu/neovim/src/nvim/marktree.h"
static inline uint64_t mt_lookup_id(uint32_t ns, uint32_t id,
# 51 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 51 "/home/ubuntu/neovim/src/nvim/marktree.h"
enda)
{
return (uint64_t)ns << 33 | (id <<1) | (enda ? ((uint64_t)1) : 0);
}
static inline uint64_t mt_lookup_key_side(MTKey key,
# 56 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 56 "/home/ubuntu/neovim/src/nvim/marktree.h"
end)
{
return mt_lookup_id(key.ns, key.id, end);
}
static inline uint64_t mt_lookup_key(MTKey key)
{
return mt_lookup_id(key.ns, key.id, key.flags & (((uint16_t)1) << 1));
}
static inline
# 66 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 66 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_paired(MTKey key)
{
return key.flags & (((uint16_t)1) << 2);
}
static inline
# 71 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 71 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_end(MTKey key)
{
return key.flags & (((uint16_t)1) << 1);
}
static inline
# 76 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 76 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_start(MTKey key)
{
return mt_paired(key) && !mt_end(key);
}
static inline
# 81 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 81 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_right(MTKey key)
{
return key.flags & (((uint16_t)1) << 14);
}
static inline
# 86 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 86 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_no_undo(MTKey key)
{
return key.flags & (((uint16_t)1) << 4);
}
static inline
# 91 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 91 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_invalidate(MTKey key)
{
return key.flags & (((uint16_t)1) << 5);
}
static inline
# 96 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 96 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_invalid(MTKey key)
{
return key.flags & (((uint16_t)1) << 6);
}
static inline
# 101 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 101 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_decor_any(MTKey key)
{
return key.flags & ((((uint16_t)1) << 7)| (((uint16_t)1) << 8) | (((uint16_t)1) << 9) | (((uint16_t)1) << 10) | (((uint16_t)1) << 11) | (((uint16_t)1) << 12));
}
static inline
# 106 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 106 "/home/ubuntu/neovim/src/nvim/marktree.h"
mt_decor_sign(MTKey key)
{
return key.flags & ((((uint16_t)1) << 9) | (((uint16_t)1) << 10));
}
static inline uint16_t mt_flags(
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h"
right_gravity,
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h"
no_undo,
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h"
invalidate,
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
_Bool
# 111 "/home/ubuntu/neovim/src/nvim/marktree.h"
decor_ext)
{
return (uint16_t)((right_gravity ? (((uint16_t)1) << 14) : 0)
| (no_undo ? (((uint16_t)1) << 4) : 0)
| (invalidate ? (((uint16_t)1) << 5) : 0)
| (decor_ext ? (((uint16_t)1) << 7) : 0));
}
static inline MTPair mtpair_from(MTKey start, MTKey end)
{
return (MTPair){ .start = start, .end_pos = end.pos, .end_right_gravity = mt_right(end) };
}
static inline DecorInline mt_decor(MTKey key)
{
return (DecorInline){ .ext = key.flags & (((uint16_t)1) << 7), .data = key.decor_data };
}
static inline DecorVirtText *mt_decor_virt(MTKey mark)
{
return (mark.flags & (((uint16_t)1) << 7)) ? mark.decor_data.ext.vt :
# 131 "/home/ubuntu/neovim/src/nvim/marktree.h" 3 4
((void *)0)
# 131 "/home/ubuntu/neovim/src/nvim/marktree.h"
;
}
# 56 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h" 1
# 10 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h"
typedef struct eslist_elem eslist_T;
struct eslist_elem {
int saved_emsg_silent;
eslist_T *next;
};
enum {
CSTACK_LEN = 50,
};
typedef struct {
int cs_flags[CSTACK_LEN];
char cs_pending[CSTACK_LEN];
union {
void *csp_rv[CSTACK_LEN];
void *csp_ex[CSTACK_LEN];
} cs_pend;
void *cs_forinfo[CSTACK_LEN];
int cs_line[CSTACK_LEN];
int cs_idx;
int cs_looplevel;
int cs_trylevel;
eslist_T *cs_emsg_silent_list;
int cs_lflags;
} cstack_T;
enum {
CSF_TRUE = 0x0001,
CSF_ACTIVE = 0x0002,
CSF_ELSE = 0x0004,
CSF_WHILE = 0x0008,
CSF_FOR = 0x0010,
CSF_TRY = 0x0100,
CSF_FINALLY = 0x0200,
CSF_THROWN = 0x0800,
CSF_CAUGHT = 0x1000,
CSF_FINISHED = 0x2000,
CSF_SILENT = 0x4000,
};
enum {
CSTP_NONE = 0,
CSTP_ERROR = 1,
CSTP_INTERRUPT = 2,
CSTP_THROW = 4,
CSTP_BREAK = 8,
CSTP_CONTINUE = 16,
CSTP_RETURN = 24,
CSTP_FINISH = 32,
};
enum {
CSL_HAD_LOOP = 1,
CSL_HAD_ENDLOOP = 2,
CSL_HAD_CONT = 4,
CSL_HAD_FINA = 8,
};
typedef struct msglist msglist_T;
struct msglist {
msglist_T *next;
char *msg;
char *throw_msg;
char *sfile;
linenr_T slnum;
# 91 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h" 3 4
_Bool
# 91 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h"
multiline;
};
typedef enum {
ET_USER,
ET_ERROR,
ET_INTERRUPT,
} except_type_T;
typedef struct vim_exception except_T;
struct vim_exception {
except_type_T type;
char *value;
msglist_T *messages;
char *throw_name;
linenr_T throw_lnum;
except_T *caught;
};
typedef struct cleanup_stuff cleanup_T;
struct cleanup_stuff {
int pending;
except_T *exception;
};
typedef struct exception_state_S exception_state_T;
struct exception_state_S {
except_T *estate_current_exception;
# 127 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h" 3 4
_Bool
# 127 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h"
estate_did_throw;
# 128 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h" 3 4
_Bool
# 128 "/home/ubuntu/neovim/src/nvim/ex_eval_defs.h"
estate_need_rethrow;
int estate_trylevel;
int estate_did_emsg;
};
# 11 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h" 2
# 1 "/home/ubuntu/neovim/src/nvim/message_defs.h" 1
typedef struct {
String text;
int attr;
} HlMessageChunk;
typedef struct { size_t size; size_t capacity; HlMessageChunk *items; } HlMessage;
typedef struct msg_hist {
struct msg_hist *next;
char *msg;
const char *kind;
int attr;
# 20 "/home/ubuntu/neovim/src/nvim/message_defs.h" 3 4
_Bool
# 20 "/home/ubuntu/neovim/src/nvim/message_defs.h"
multiline;
HlMessage multiattr;
} MessageHistoryEntry;
# 14 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h" 2
# 98 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h"
typedef struct { size_t size; size_t capacity; Object *items; Object init_array[16]; } ArrayBuilder;
# 128 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h"
extern Map_intptr_t buffer_handles ;
extern Map_intptr_t window_handles ;
extern Map_intptr_t tabpage_handles ;
# 140 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h"
typedef struct {
except_T *current_exception;
msglist_T *private_msg_list;
const msglist_T *const *msg_list;
int trylevel;
int got_int;
# 146 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h" 3 4
_Bool
# 146 "/home/ubuntu/neovim/src/nvim/api/private/helpers.h"
did_throw;
int need_rethrow;
int did_emsg;
} TryState;
# 61 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 1 "/home/ubuntu/neovim/src/nvim/garray.h" 1
# 1 "/usr/lib/gcc/aarch64-linux-gnu/9/include/stddef.h" 1 3 4
# 5 "/home/ubuntu/neovim/src/nvim/garray.h" 2
# 62 "/home/ubuntu/neovim/src/nvim/marktree.c" 2
# 71 "/home/ubuntu/neovim/src/nvim/marktree.c"
static
# 71 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 71 "/home/ubuntu/neovim/src/nvim/marktree.c"
pos_leq(MTPos a, MTPos b)
{
return a.row < b.row || (a.row == b.row && a.col <= b.col);
}
static
# 76 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 76 "/home/ubuntu/neovim/src/nvim/marktree.c"
pos_less(MTPos a, MTPos b)
{
return !pos_leq(b, a);
}
static void relative(MTPos base, MTPos *val)
{
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c"
pos_leq(base, *val)
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c"
pos_leq(base, *val)
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c"
"pos_leq(base, *val)"
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 83, __extension__ __PRETTY_FUNCTION__); }))
# 83 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (val->row == base.row) {
val->row = 0;
val->col -= base.col;
} else {
val->row -= base.row;
}
}
static void unrelative(MTPos base, MTPos *val)
{
if (val->row == 0) {
val->row = base.row;
val->col += base.col;
} else {
val->row += base.row;
}
}
static void compose(MTPos *base, MTPos val)
{
if (val.row == 0) {
base->col += val.col;
} else {
base->row += val.row;
base->col = val.col;
}
}
typedef struct {
uint64_t id;
MTNode *old, *new;
int old_i, new_i;
} Damage;
typedef struct { size_t size; size_t capacity; Damage *items; Damage init_array[8]; } DamageList;
static int key_cmp(MTKey a, MTKey b)
{
int cmp = (((b.pos.row) < (a.pos.row)) - ((a.pos.row) < (b.pos.row)));
if (cmp != 0) {
return cmp;
}
cmp = (((b.pos.col) < (a.pos.col)) - ((a.pos.col) < (b.pos.col)));
if (cmp != 0) {
return cmp;
}
const uint16_t cmp_mask = (((uint16_t)1) << 14) | (((uint16_t)1) << 1) | (((uint16_t)1) << 0) | (((uint16_t)1) << 15);
return (((b.flags & cmp_mask) < (a.flags & cmp_mask)) - ((a.flags & cmp_mask) < (b.flags & cmp_mask)));
}
static inline int marktree_getp_aux(const MTNode *x, MTKey k,
# 145 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 145 "/home/ubuntu/neovim/src/nvim/marktree.c"
*match)
{
# 147 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 147 "/home/ubuntu/neovim/src/nvim/marktree.c"
dummy_match;
# 148 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 148 "/home/ubuntu/neovim/src/nvim/marktree.c"
*m = match ? match : &dummy_match;
int begin = 0;
int end = x->n;
if (x->n == 0) {
*m =
# 153 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 153 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return -1;
}
while (begin < end) {
int mid = (begin + end) >> 1;
if (key_cmp(x->key[mid], k) < 0) {
begin = mid + 1;
} else {
end = mid;
}
}
if (begin == x->n) {
*m =
# 165 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 165 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return x->n - 1;
}
if (!(*m = (key_cmp(k, x->key[begin]) == 0))) {
begin--;
}
return begin;
}
static inline void refkey(MarkTree *b, MTNode *x, int i)
{
map_put_uint64_tptr_t(b->id2node, mt_lookup_key(x->key[i]), x);
}
static MTNode *id2node(MarkTree *b, uint64_t id)
{
return map_get_uint64_tptr_t(b->id2node, id);
}
static inline void split_node(MarkTree *b, MTNode *x, const int i, MTKey next)
{
MTNode *y = x->s->i_ptr[i];
MTNode *z = marktree_alloc_node(b, y->level);
z->level = y->level;
z->n = MT_BRANCH_FACTOR - 1;
uint64_t last_start = mt_end(next) ? mt_lookup_id(next.ns, next.id,
# 200 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 200 "/home/ubuntu/neovim/src/nvim/marktree.c"
) : ((uint64_t)1);
do { if ((z->intersect).capacity < (y->intersect).size) { ((z->intersect).capacity = (((y->intersect).size) > ((sizeof((z->intersect).init_array)/sizeof(((z->intersect).init_array)[0])) / ((size_t)(!(sizeof((z->intersect).init_array) % sizeof(((z->intersect).init_array)[0]))))) ? ((y->intersect).size) : ((sizeof((z->intersect).init_array)/sizeof(((z->intersect).init_array)[0])) / ((size_t)(!(sizeof((z->intersect).init_array) % sizeof(((z->intersect).init_array)[0])))))), (z->intersect).items = ((z->intersect).capacity == ((sizeof((z->intersect).init_array)/sizeof(((z->intersect).init_array)[0])) / ((size_t)(!(sizeof((z->intersect).init_array) % sizeof(((z->intersect).init_array)[0]))))) ? ((z->intersect).items == (z->intersect).init_array ? (z->intersect).items : _memcpy_free((z->intersect).init_array, (z->intersect).items, (z->intersect).size * sizeof((z->intersect).items[0]))) : ((z->intersect).items == (z->intersect).init_array ? memcpy(xmalloc((z->intersect).capacity * sizeof((z->intersect).items[0])), (z->intersect).items, (z->intersect).size * sizeof((z->intersect).items[0])) : xrealloc((z->intersect).items, (z->intersect).capacity * sizeof((z->intersect).items[0]))))); } (z->intersect).size = (y->intersect).size; memcpy((z->intersect).items, (y->intersect).items, sizeof((z->intersect).items[0]) * (y->intersect).size); } while (0);
if (!y->level) {
uint64_t pi = pseudo_index(y, 0);
for (int j = 0; j < MT_BRANCH_FACTOR; j++) {
MTKey k = y->key[j];
uint64_t pi_end = pseudo_index_for_id(b, mt_lookup_id(k.ns, k.id,
# 209 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 209 "/home/ubuntu/neovim/src/nvim/marktree.c"
),
# 209 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 209 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (mt_start(k) && pi_end > pi && mt_lookup_key(k) != last_start) {
intersect_node(b, z, mt_lookup_id(k.ns, k.id,
# 211 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 211 "/home/ubuntu/neovim/src/nvim/marktree.c"
));
}
}
for (int j = MT_BRANCH_FACTOR - 1; j < (MT_BRANCH_FACTOR * 2) - 1; j++) {
MTKey k = y->key[j];
uint64_t pi_start = pseudo_index_for_id(b, mt_lookup_id(k.ns, k.id,
# 218 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 218 "/home/ubuntu/neovim/src/nvim/marktree.c"
),
# 218 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 218 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (mt_end(k) && pi_start > 0 && pi_start < pi) {
intersect_node(b, y, mt_lookup_id(k.ns, k.id,
# 220 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 220 "/home/ubuntu/neovim/src/nvim/marktree.c"
));
}
}
}
memcpy(z->key, &y->key[MT_BRANCH_FACTOR], sizeof(MTKey) * (MT_BRANCH_FACTOR - 1));
for (int j = 0; j < MT_BRANCH_FACTOR - 1; j++) {
refkey(b, z, j);
}
if (y->level) {
memcpy(z->s->i_ptr, &y->s->i_ptr[MT_BRANCH_FACTOR], sizeof(MTNode *) * MT_BRANCH_FACTOR);
memcpy(z->s->i_meta, &y->s->i_meta[MT_BRANCH_FACTOR], sizeof(z->s->i_meta[0]) * MT_BRANCH_FACTOR);
for (int j = 0; j < MT_BRANCH_FACTOR; j++) {
z->s->i_ptr[j]->parent = z;
z->s->i_ptr[j]->p_idx = (int16_t)j;
}
}
y->n = MT_BRANCH_FACTOR - 1;
memmove(&x->s->i_ptr[i + 2], &x->s->i_ptr[i + 1], sizeof(MTNode *) * (size_t)(x->n - i));
memmove(&x->s->i_meta[i + 2], &x->s->i_meta[i + 1], sizeof(x->s->i_meta[0]) * (size_t)(x->n - i));
x->s->i_ptr[i + 1] = z;
meta_describe_node(x->s->i_meta[i + 1], z);
z->parent = x;
for (int j = i + 1; j < x->n + 2; j++) {
x->s->i_ptr[j]->p_idx = (int16_t)j;
}
memmove(&x->key[i + 1], &x->key[i], sizeof(MTKey) * (size_t)(x->n - i));
x->key[i] = y->key[MT_BRANCH_FACTOR - 1];
refkey(b, x, i);
x->n++;
uint32_t meta_inc[4];
meta_describe_key(meta_inc, x->key[i]);
for (int m = 0; m < kMTMetaCount; m++) {
x->s->i_meta[i][m] -= (x->s->i_meta[i + 1][m] + meta_inc[m]);
}
for (int j = 0; j < MT_BRANCH_FACTOR - 1; j++) {
relative(x->key[i].pos, &z->key[j].pos);
}
if (i > 0) {
unrelative(x->key[i - 1].pos, &x->key[i].pos);
}
if (y->level) {
bubble_up(y);
bubble_up(z);
} else {
}
}
static inline void marktree_putp_aux(MarkTree *b, MTNode *x, MTKey k, uint32_t *meta_inc)
{
int i = marktree_getp_aux(x, k,
# 280 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 280 "/home/ubuntu/neovim/src/nvim/marktree.c"
) + 1;
if (x->level == 0) {
if (i != x->n) {
memmove(&x->key[i + 1], &x->key[i],
(size_t)(x->n - i) * sizeof(MTKey));
}
x->key[i] = k;
refkey(b, x, i);
x->n++;
} else {
if (x->s->i_ptr[i]->n == 2 * MT_BRANCH_FACTOR - 1) {
split_node(b, x, i, k);
if (key_cmp(k, x->key[i]) > 0) {
i++;
}
}
if (i > 0) {
relative(x->key[i - 1].pos, &k.pos);
}
marktree_putp_aux(b, x->s->i_ptr[i], k, meta_inc);
for (int m = 0; m < kMTMetaCount; m++) {
x->s->i_meta[i][m] += meta_inc[m];
}
}
}
void marktree_put(MarkTree *b, MTKey key, int end_row, int end_col,
# 306 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 306 "/home/ubuntu/neovim/src/nvim/marktree.c"
end_right)
{
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c"
!(key.flags & ~((((((uint16_t)1) << 7)| (((uint16_t)1) << 8) | (((uint16_t)1) << 9) | (((uint16_t)1) << 10) | (((uint16_t)1) << 11) | (((uint16_t)1) << 12)) | (((uint16_t)1) << 4) | (((uint16_t)1) << 5) | (((uint16_t)1) << 6)) | (((uint16_t)1) << 14)))
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c"
!(key.flags & ~((((((uint16_t)1) << 7)| (((uint16_t)1) << 8) | (((uint16_t)1) << 9) | (((uint16_t)1) << 10) | (((uint16_t)1) << 11) | (((uint16_t)1) << 12)) | (((uint16_t)1) << 4) | (((uint16_t)1) << 5) | (((uint16_t)1) << 6)) | (((uint16_t)1) << 14)))
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c"
"!(key.flags & ~(MT_FLAG_EXTERNAL_MASK | MT_FLAG_RIGHT_GRAVITY))"
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 308, __extension__ __PRETTY_FUNCTION__); }))
# 308 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (end_row >= 0) {
key.flags |= (((uint16_t)1) << 2);
}
marktree_put_key(b, key);
if (end_row >= 0) {
MTKey end_key = key;
end_key.flags = (uint16_t)((uint16_t)(key.flags & ~(((uint16_t)1) << 14))
|(uint16_t)(((uint16_t)1) << 1)
|(uint16_t)(end_right ? (((uint16_t)1) << 14) : 0));
end_key.pos = (MTPos){ end_row, end_col };
marktree_put_key(b, end_key);
MarkTreeIter itr[1] = { 0 };
MarkTreeIter end_itr[1] = { 0 };
marktree_lookup(b, mt_lookup_key(key), itr);
marktree_lookup(b, mt_lookup_key(end_key), end_itr);
marktree_intersect_pair(b, mt_lookup_key(key), itr, end_itr,
# 327 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 327 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
static
# 332 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 332 "/home/ubuntu/neovim/src/nvim/marktree.c"
intersection_has(Intersection *x, uint64_t id)
{
for (size_t i = 0; i < ((*x).size); i++) {
if (((*x).items[(i)]) == id) {
return
# 336 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 336 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
} else if (((*x).items[(i)]) >= id) {
return
# 338 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 338 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
return
# 341 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 341 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
static void intersect_node(MarkTree *b, MTNode *x, uint64_t id)
{
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c"
!(id & ((uint64_t)1))
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c"
!(id & ((uint64_t)1))
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c"
"!(id & MARKTREE_END_FLAG)"
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 346, __extension__ __PRETTY_FUNCTION__); }))
# 346 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
((((x->intersect).size == (x->intersect).capacity) ? (((x->intersect).capacity = (((x->intersect).capacity << 1) > ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0]))))) ? ((x->intersect).capacity << 1) : ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0])))))), (x->intersect).items = ((x->intersect).capacity == ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0]))))) ? ((x->intersect).items == (x->intersect).init_array ? (x->intersect).items : _memcpy_free((x->intersect).init_array, (x->intersect).items, (x->intersect).size * sizeof((x->intersect).items[0]))) : ((x->intersect).items == (x->intersect).init_array ? memcpy(xmalloc((x->intersect).capacity * sizeof((x->intersect).items[0])), (x->intersect).items, (x->intersect).size * sizeof((x->intersect).items[0])) : xrealloc((x->intersect).items, (x->intersect).capacity * sizeof((x->intersect).items[0]))))), 0) : 0), ((x->intersect).items + ((x->intersect).size++)));
for (ssize_t i = (ssize_t)((x->intersect).size) - 1; i >= 0; i--) {
if (i > 0 && ((x->intersect).items[(i - 1)]) > id) {
((x->intersect).items[(i)]) = ((x->intersect).items[(i - 1)]);
} else {
((x->intersect).items[(i)]) = id;
break;
}
}
}
static void unintersect_node(MarkTree *b, MTNode *x, uint64_t id,
# 359 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 359 "/home/ubuntu/neovim/src/nvim/marktree.c"
strict)
{
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c"
!(id & ((uint64_t)1))
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c"
!(id & ((uint64_t)1))
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c"
"!(id & MARKTREE_END_FLAG)"
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 361, __extension__ __PRETTY_FUNCTION__); }))
# 361 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 362 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 362 "/home/ubuntu/neovim/src/nvim/marktree.c"
seen =
# 362 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 362 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
size_t i;
for (i = 0; i < ((x->intersect).size); i++) {
if (((x->intersect).items[(i)]) < id) {
continue;
} else if (((x->intersect).items[(i)]) == id) {
seen =
# 368 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 368 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
break;
} else {
break;
}
}
if (strict) {
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c"
seen
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c"
seen
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c"
"seen"
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 375, __extension__ __PRETTY_FUNCTION__); }))
# 375 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (seen) {
if (i < ((x->intersect).size) - 1) {
memmove(&((x->intersect).items[(i)]), &((x->intersect).items[(i + 1)]), (((x->intersect).size) - i - 1) *
sizeof(((x->intersect).items[(i)])));
}
((x->intersect).size)--;
}
}
void marktree_intersect_pair(MarkTree *b, uint64_t id, MarkTreeIter *itr, MarkTreeIter *end_itr,
# 390 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 390 "/home/ubuntu/neovim/src/nvim/marktree.c"
delete)
{
int lvl = 0, maxlvl =
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
(((
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->lvl
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
)<(
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c"
end_itr->lvl
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
))?(
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->lvl
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
):(
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c"
end_itr->lvl
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
))
# 392 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
for (; lvl < maxlvl; lvl++) {
if (itr->s[lvl].i > end_itr->s[lvl].i) {
return;
} else if (itr->s[lvl].i < end_itr->s[lvl].i) {
break;
}
}
if (lvl == maxlvl && ((lvl == itr->lvl) ? itr->i + 1 : itr->s[lvl].i) > ((lvl == end_itr->lvl) ? end_itr->i + 0 : end_itr->s[lvl].i)) {
return;
}
while (itr->x) {
# 406 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 406 "/home/ubuntu/neovim/src/nvim/marktree.c"
skip =
# 406 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 406 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (itr->x == end_itr->x) {
if (itr->x->level == 0 || itr->i >= end_itr->i) {
break;
} else {
skip =
# 411 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 411 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
} else if (itr->lvl > lvl) {
skip =
# 414 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 414 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
} else {
if (((lvl == itr->lvl) ? itr->i + 1 : itr->s[lvl].i) < ((lvl == end_itr->lvl) ? end_itr->i + 1 : end_itr->s[lvl].i)) {
skip =
# 417 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 417 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
} else {
lvl++;
}
}
if (skip) {
if (itr->x->level) {
MTNode *x = itr->x->s->i_ptr[itr->i + 1];
if (delete) {
unintersect_node(b, x, id,
# 427 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 427 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
} else {
intersect_node(b, x, id);
}
}
}
marktree_itr_next_skip(b, itr, skip,
# 433 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 433 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 433 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 433 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 433 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 433 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
static MTNode *marktree_alloc_node(MarkTree *b,
# 438 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 438 "/home/ubuntu/neovim/src/nvim/marktree.c"
internal)
{
MTNode *x = xcalloc(1, internal ? (sizeof(MTNode) + sizeof(struct mtnode_inner_s)) : sizeof(MTNode));
((x->intersect).capacity = ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0]))))), (x->intersect).size = 0, (x->intersect).items = (x->intersect).init_array);
b->n_nodes++;
return x;
}
static void meta_describe_key_inc(uint32_t *meta_inc, MTKey *k)
{
if (!mt_end(*k)) {
meta_inc[kMTMetaInline] += (k->flags & (((uint16_t)1) << 12)) ? 1 : 0;
meta_inc[kMTMetaLines] += (k->flags & (((uint16_t)1) << 11)) ? 1 : 0;
meta_inc[kMTMetaSignHL] += (k->flags & (((uint16_t)1) << 10)) ? 1 : 0;
meta_inc[kMTMetaSignText] += (k->flags & (((uint16_t)1) << 9)) ? 1 : 0;
}
}
static void meta_describe_key(uint32_t *meta_inc, MTKey k)
{
memset(meta_inc, 0, kMTMetaCount * sizeof(*meta_inc));
meta_describe_key_inc(meta_inc, &k);
}
static void meta_describe_node(uint32_t *meta_node, MTNode *x)
{
memset(meta_node, 0, kMTMetaCount * sizeof(meta_node[0]));
for (int i = 0; i < x->n; i++) {
meta_describe_key_inc(meta_node, &x->key[i]);
}
if (x->level) {
for (int i = 0; i < x->n + 1; i++) {
for (int m = 0; m < kMTMetaCount; m++) {
meta_node[m] += x->s->i_meta[i][m];
}
}
}
}
static
# 479 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 479 "/home/ubuntu/neovim/src/nvim/marktree.c"
meta_has(const uint32_t *meta_count, MetaFilter meta_filter)
{
uint32_t count = 0;
for (int m = 0; m < kMTMetaCount; m++) {
count += meta_count[m] & meta_filter[m];
}
return count > 0;
}
void marktree_put_key(MarkTree *b, MTKey k)
{
k.flags |= (((uint16_t)1) << 0);
if (!b->root) {
b->root = marktree_alloc_node(b,
# 492 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 492 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
MTNode *r = b->root;
if (r->n == 2 * MT_BRANCH_FACTOR - 1) {
MTNode *s = marktree_alloc_node(b,
# 496 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 496 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
b->root = s; s->level = r->level + 1; s->n = 0;
s->s->i_ptr[0] = r;
for (int m = 0; m < kMTMetaCount; m++) {
s->s->i_meta[0][m] = b->meta_root[m];
}
r->parent = s;
r->p_idx = 0;
split_node(b, s, 0, k);
r = s;
}
uint32_t meta_inc[4];
meta_describe_key(meta_inc, k);
marktree_putp_aux(b, r, k, meta_inc);
for (int m = 0; m < 4; m++) {
b->meta_root[m] += meta_inc[m];
}
b->n_keys++;
}
# 541 "/home/ubuntu/neovim/src/nvim/marktree.c"
uint64_t marktree_del_itr(MarkTree *b, MarkTreeIter *itr,
# 541 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 541 "/home/ubuntu/neovim/src/nvim/marktree.c"
rev)
{
int adjustment = 0;
MTNode *cur = itr->x;
int curi = itr->i;
uint64_t id = mt_lookup_key(cur->key[curi]);
MTKey raw = ((itr)->x->key[(itr)->i]);
uint64_t other = 0;
if (mt_paired(raw) && !(raw.flags & (((uint16_t)1) << 3))) {
other = mt_lookup_key_side(raw, !mt_end(raw));
MarkTreeIter other_itr[1];
marktree_lookup(b, other, other_itr);
((other_itr)->x->key[(other_itr)->i]).flags |= (((uint16_t)1) << 3);
if (mt_start(raw)) {
MarkTreeIter this_itr[1] = { *itr };
marktree_intersect_pair(b, id, this_itr, other_itr,
# 560 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 560 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
} else {
marktree_intersect_pair(b, other, other_itr, itr,
# 562 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 562 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
if (itr->x->level) {
if (rev) {
abort();
} else {
marktree_itr_prev(b, itr);
adjustment = -1;
}
}
MTNode *x = itr->x;
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->level == 0
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->level == 0
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->level == 0"
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 579, __extension__ __PRETTY_FUNCTION__); }))
# 579 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
MTKey intkey = x->key[itr->i];
uint32_t meta_inc[4];
meta_describe_key(meta_inc, intkey);
if (x->n > itr->i + 1) {
memmove(&x->key[itr->i], &x->key[itr->i + 1],
sizeof(MTKey) * (size_t)(x->n - itr->i - 1));
}
x->n--;
b->n_keys--;
map_del_uint64_tptr_t(b->id2node, id,
# 591 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 591 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (adjustment == -1) {
int ilvl = itr->lvl - 1;
MTNode *lnode = x;
uint64_t start_id = 0;
# 601 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 601 "/home/ubuntu/neovim/src/nvim/marktree.c"
did_bubble =
# 601 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 601 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (mt_end(intkey)) {
start_id = mt_lookup_key_side(intkey,
# 603 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 603 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
do {
MTNode *p = lnode->parent;
if (ilvl < 0) {
abort();
}
int i = itr->s[ilvl].i;
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[i] == lnode
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[i] == lnode
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c"
"p->ptr[i] == lnode"
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 611, __extension__ __PRETTY_FUNCTION__); }))
# 611 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (i > 0) {
unrelative(p->key[i - 1].pos, &intkey.pos);
}
if (p != cur && start_id) {
if (intersection_has(&p->s->i_ptr[0]->intersect, start_id)) {
int last = (lnode != x) ? 1 : 0;
for (int k = 0; k < p->n + last; k++) {
unintersect_node(b, p->s->i_ptr[k], start_id,
# 622 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 622 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
intersect_node(b, p, start_id);
did_bubble =
# 625 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 625 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
for (int m = 0; m < kMTMetaCount; m++) {
p->s->i_meta[lnode->p_idx][m] -= meta_inc[m];
}
lnode = p;
ilvl--;
} while (lnode != cur);
MTKey deleted = cur->key[curi];
meta_describe_key(meta_inc, deleted);
cur->key[curi] = intkey;
refkey(b, cur, curi);
if (mt_end(cur->key[curi]) && !did_bubble) {
uint64_t pi = pseudo_index(x, 0);
uint64_t pi_start = pseudo_index_for_id(b, start_id,
# 644 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 644 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (pi_start > 0 && pi_start < pi) {
intersect_node(b, x, start_id);
}
}
relative(intkey.pos, &deleted.pos);
MTNode *y = cur->s->i_ptr[curi + 1];
if (deleted.pos.row || deleted.pos.col) {
while (y) {
for (int k = 0; k < y->n; k++) {
unrelative(deleted.pos, &y->key[k].pos);
}
y = y->level ? y->s->i_ptr[0] :
# 657 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 657 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
itr->i--;
}
MTNode *lnode = cur;
while (lnode->parent) {
uint32_t *meta_p = lnode->parent->s->i_meta[lnode->p_idx];
for (int m = 0; m < kMTMetaCount; m++) {
meta_p[m] -= meta_inc[m];
}
lnode = lnode->parent;
}
for (int m = 0; m < kMTMetaCount; m++) {
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->meta_root[m] >= meta_inc[m]
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->meta_root[m] >= meta_inc[m]
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->meta_root[m] >= meta_inc[m]"
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 673, __extension__ __PRETTY_FUNCTION__); }))
# 673 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
b->meta_root[m] -= meta_inc[m];
}
# 678 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 678 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr_dirty =
# 678 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 678 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
int rlvl = itr->lvl - 1;
int *lasti = &itr->i;
MTPos ppos = itr->pos;
while (x != b->root) {
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c"
rlvl >= 0
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c"
rlvl >= 0
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c"
"rlvl >= 0"
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 683, __extension__ __PRETTY_FUNCTION__); }))
# 683 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
MTNode *p = x->parent;
if (x->n >= MT_BRANCH_FACTOR - 1) {
break;
}
int pi = itr->s[rlvl].i;
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[pi] == x
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[pi] == x
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c"
"p->ptr[pi] == x"
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 690, __extension__ __PRETTY_FUNCTION__); }))
# 690 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (pi > 0) {
ppos.row -= p->key[pi - 1].pos.row;
ppos.col = itr->s[rlvl].oldcol;
}
if (pi > 0 && p->s->i_ptr[pi - 1]->n > MT_BRANCH_FACTOR - 1) {
*lasti += 1;
itr_dirty =
# 699 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 699 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
pivot_right(b, ppos, p, pi - 1);
break;
} else if (pi < p->n && p->s->i_ptr[pi + 1]->n > MT_BRANCH_FACTOR - 1) {
pivot_left(b, ppos, p, pi);
break;
} else if (pi > 0) {
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[pi - 1]->n == MT_BRANCH_FACTOR - 1
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[pi - 1]->n == MT_BRANCH_FACTOR - 1
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c"
"p->ptr[pi - 1]->n == T - 1"
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 708, __extension__ __PRETTY_FUNCTION__); }))
# 708 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
*lasti += MT_BRANCH_FACTOR;
x = merge_node(b, p, pi - 1);
if (lasti == &itr->i) {
itr->x = x;
}
itr->s[rlvl].i--;
itr_dirty =
# 717 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 717 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
} else {
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c"
pi < p->n && p->s->i_ptr[pi + 1]->n == MT_BRANCH_FACTOR - 1
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c"
pi < p->n && p->s->i_ptr[pi + 1]->n == MT_BRANCH_FACTOR - 1
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c"
"pi < p->n && p->ptr[pi + 1]->n == T - 1"
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 719, __extension__ __PRETTY_FUNCTION__); }))
# 719 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
merge_node(b, p, pi);
}
lasti = &itr->s[rlvl].i;
rlvl--;
x = p;
}
if (b->root->n == 0) {
if (itr->lvl > 0) {
memmove(itr->s, itr->s + 1, (size_t)(itr->lvl - 1) * sizeof(*itr->s));
itr->lvl--;
}
if (b->root->level) {
MTNode *oldroot = b->root;
b->root = b->root->s->i_ptr[0];
for (int m = 0; m < kMTMetaCount; m++) {
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->meta_root[m] == oldroot->s->i_meta[0][m]
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->meta_root[m] == oldroot->s->i_meta[0][m]
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->meta_root[m] == oldroot->meta[0][m]"
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 738, __extension__ __PRETTY_FUNCTION__); }))
# 738 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
b->root->parent =
# 741 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 741 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
marktree_free_node(b, oldroot);
} else {
itr->x =
# 746 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 746 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
if (itr->x && itr_dirty) {
marktree_itr_fix_pos(b, itr);
}
if (adjustment == -1) {
marktree_itr_next(b, itr);
marktree_itr_next(b, itr);
} else {
if (itr->x && itr->i >= itr->x->n) {
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->x->level == 0
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->x->level == 0
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c"
"itr->x->level == 0"
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 769, __extension__ __PRETTY_FUNCTION__); }))
# 769 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
marktree_itr_next(b, itr);
}
}
return other;
}
void marktree_revise_flags(MarkTree *b, MarkTreeIter *itr, uint16_t new_flags)
{
uint32_t meta_old[4];
meta_describe_key(meta_old, ((itr)->x->key[(itr)->i]));
((itr)->x->key[(itr)->i]).flags &= (uint16_t) ~(((((uint16_t)1) << 7)| (((uint16_t)1) << 8) | (((uint16_t)1) << 9) | (((uint16_t)1) << 10) | (((uint16_t)1) << 11) | (((uint16_t)1) << 12)) | (((uint16_t)1) << 4) | (((uint16_t)1) << 5) | (((uint16_t)1) << 6));
((itr)->x->key[(itr)->i]).flags |= new_flags;
uint32_t meta_new[4];
meta_describe_key(meta_new, ((itr)->x->key[(itr)->i]));
if (!memcmp(meta_old, meta_new, sizeof(meta_old))) {
return;
}
MTNode *lnode = itr->x;
while (lnode->parent) {
uint32_t *meta_p = lnode->parent->s->i_meta[lnode->p_idx];
for (int m = 0; m < kMTMetaCount; m++) {
meta_p[m] += meta_new[m] - meta_old[m];
}
lnode = lnode->parent;
}
for (int m = 0; m < kMTMetaCount; m++) {
b->meta_root[m] += meta_new[m] - meta_old[m];
}
}
static void intersect_merge(Intersection *restrict m, Intersection *restrict x,
Intersection *restrict y)
{
size_t xi = 0;
size_t yi = 0;
size_t xn = 0;
size_t yn = 0;
while (xi < ((*x).size) && yi < ((*y).size)) {
if (((*x).items[(xi)]) == ((*y).items[(yi)])) {
(*((((*m).size == (*m).capacity) ? (((*m).capacity = (((*m).capacity << 1) > ((sizeof((*m).init_array)/sizeof(((*m).init_array)[0])) / ((size_t)(!(sizeof((*m).init_array) % sizeof(((*m).init_array)[0]))))) ? ((*m).capacity << 1) : ((sizeof((*m).init_array)/sizeof(((*m).init_array)[0])) / ((size_t)(!(sizeof((*m).init_array) % sizeof(((*m).init_array)[0])))))), (*m).items = ((*m).capacity == ((sizeof((*m).init_array)/sizeof(((*m).init_array)[0])) / ((size_t)(!(sizeof((*m).init_array) % sizeof(((*m).init_array)[0]))))) ? ((*m).items == (*m).init_array ? (*m).items : _memcpy_free((*m).init_array, (*m).items, (*m).size * sizeof((*m).items[0]))) : ((*m).items == (*m).init_array ? memcpy(xmalloc((*m).capacity * sizeof((*m).items[0])), (*m).items, (*m).size * sizeof((*m).items[0])) : xrealloc((*m).items, (*m).capacity * sizeof((*m).items[0]))))), 0) : 0), ((*m).items + ((*m).size++))) = (((*x).items[(xi)])));
xi++;
yi++;
} else if (((*x).items[(xi)]) < ((*y).items[(yi)])) {
((*x).items[(xn++)]) = ((*x).items[(xi++)]);
} else {
((*y).items[(yn++)]) = ((*y).items[(yi++)]);
}
}
if (xi < ((*x).size)) {
memmove(&((*x).items[(xn)]), &((*x).items[(xi)]), sizeof(((*x).items[(xn)])) * (((*x).size) - xi));
xn += ((*x).size) - xi;
}
if (yi < ((*y).size)) {
memmove(&((*y).items[(yn)]), &((*y).items[(yi)]), sizeof(((*y).items[(yn)])) * (((*y).size) - yi));
yn += ((*y).size) - yi;
}
((*x).size) = xn;
((*y).size) = yn;
}
static void intersect_mov(Intersection *restrict x, Intersection *restrict y,
Intersection *restrict w, Intersection *restrict d)
{
size_t wi = 0;
size_t yi = 0;
size_t wn = 0;
size_t yn = 0;
size_t xi = 0;
while (wi < ((*w).size) || xi < ((*x).size)) {
if (wi < ((*w).size) && (xi >= ((*x).size) || ((*x).items[(xi)]) >= ((*w).items[(wi)]))) {
if (xi < ((*x).size) && ((*x).items[(xi)]) == ((*w).items[(wi)])) {
xi++;
}
while (yi < ((*y).size) && ((*y).items[(yi)]) < ((*w).items[(wi)])) {
(*((((*d).size == (*d).capacity) ? (((*d).capacity = (((*d).capacity << 1) > ((sizeof((*d).init_array)/sizeof(((*d).init_array)[0])) / ((size_t)(!(sizeof((*d).init_array) % sizeof(((*d).init_array)[0]))))) ? ((*d).capacity << 1) : ((sizeof((*d).init_array)/sizeof(((*d).init_array)[0])) / ((size_t)(!(sizeof((*d).init_array) % sizeof(((*d).init_array)[0])))))), (*d).items = ((*d).capacity == ((sizeof((*d).init_array)/sizeof(((*d).init_array)[0])) / ((size_t)(!(sizeof((*d).init_array) % sizeof(((*d).init_array)[0]))))) ? ((*d).items == (*d).init_array ? (*d).items : _memcpy_free((*d).init_array, (*d).items, (*d).size * sizeof((*d).items[0]))) : ((*d).items == (*d).init_array ? memcpy(xmalloc((*d).capacity * sizeof((*d).items[0])), (*d).items, (*d).size * sizeof((*d).items[0])) : xrealloc((*d).items, (*d).capacity * sizeof((*d).items[0]))))), 0) : 0), ((*d).items + ((*d).size++))) = (((*y).items[(yi)])));
yi++;
}
if (yi < ((*y).size) && ((*y).items[(yi)]) == ((*w).items[(wi)])) {
((*y).items[(yn++)]) = ((*y).items[(yi++)]);
wi++;
} else {
((*w).items[(wn++)]) = ((*w).items[(wi++)]);
}
} else {
while (yi < ((*y).size) && ((*y).items[(yi)]) < ((*x).items[(xi)])) {
(*((((*d).size == (*d).capacity) ? (((*d).capacity = (((*d).capacity << 1) > ((sizeof((*d).init_array)/sizeof(((*d).init_array)[0])) / ((size_t)(!(sizeof((*d).init_array) % sizeof(((*d).init_array)[0]))))) ? ((*d).capacity << 1) : ((sizeof((*d).init_array)/sizeof(((*d).init_array)[0])) / ((size_t)(!(sizeof((*d).init_array) % sizeof(((*d).init_array)[0])))))), (*d).items = ((*d).capacity == ((sizeof((*d).init_array)/sizeof(((*d).init_array)[0])) / ((size_t)(!(sizeof((*d).init_array) % sizeof(((*d).init_array)[0]))))) ? ((*d).items == (*d).init_array ? (*d).items : _memcpy_free((*d).init_array, (*d).items, (*d).size * sizeof((*d).items[0]))) : ((*d).items == (*d).init_array ? memcpy(xmalloc((*d).capacity * sizeof((*d).items[0])), (*d).items, (*d).size * sizeof((*d).items[0])) : xrealloc((*d).items, (*d).capacity * sizeof((*d).items[0]))))), 0) : 0), ((*d).items + ((*d).size++))) = (((*y).items[(yi)])));
yi++;
}
if (yi < ((*y).size) && ((*y).items[(yi)]) == ((*x).items[(xi)])) {
((*y).items[(yn++)]) = ((*y).items[(yi++)]);
xi++;
} else {
if (wi == wn) {
size_t n = ((*w).size) - wn;
((((*w).size == (*w).capacity) ? (((*w).capacity = (((*w).capacity << 1) > ((sizeof((*w).init_array)/sizeof(((*w).init_array)[0])) / ((size_t)(!(sizeof((*w).init_array) % sizeof(((*w).init_array)[0]))))) ? ((*w).capacity << 1) : ((sizeof((*w).init_array)/sizeof(((*w).init_array)[0])) / ((size_t)(!(sizeof((*w).init_array) % sizeof(((*w).init_array)[0])))))), (*w).items = ((*w).capacity == ((sizeof((*w).init_array)/sizeof(((*w).init_array)[0])) / ((size_t)(!(sizeof((*w).init_array) % sizeof(((*w).init_array)[0]))))) ? ((*w).items == (*w).init_array ? (*w).items : _memcpy_free((*w).init_array, (*w).items, (*w).size * sizeof((*w).items[0]))) : ((*w).items == (*w).init_array ? memcpy(xmalloc((*w).capacity * sizeof((*w).items[0])), (*w).items, (*w).size * sizeof((*w).items[0])) : xrealloc((*w).items, (*w).capacity * sizeof((*w).items[0]))))), 0) : 0), ((*w).items + ((*w).size++)));
if (n > 0) {
memmove(&((*w).items[(wn + 1)]), &((*w).items[(wn)]), n * sizeof(((*w).items[(0)])));
}
((*w).items[(wi)]) = ((*x).items[(xi)]);
wn++;
wi++;
} else {
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c"
wn < wi
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c"
wn < wi
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c"
"wn < wi"
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 888, __extension__ __PRETTY_FUNCTION__); }))
# 888 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
((*w).items[(wn++)]) = ((*x).items[(xi)]);
}
xi++;
}
}
}
if (yi < ((*y).size)) {
size_t n = ((*y).size) - yi;
do { if ((*d).capacity < (*d).size + n) { (*d).capacity = (*d).size + n; ((--((*d).capacity)), (((*d).capacity)|=((*d).capacity)>>1, ((*d).capacity)|=((*d).capacity)>>2, ((*d).capacity)|=((*d).capacity)>>4, ((*d).capacity)|=((*d).capacity)>>8, ((*d).capacity)|=((*d).capacity)>>16), (++((*d).capacity))); (((*d)).capacity = (((*d).capacity) > ((sizeof(((*d)).init_array)/sizeof((((*d)).init_array)[0])) / ((size_t)(!(sizeof(((*d)).init_array) % sizeof((((*d)).init_array)[0]))))) ? ((*d).capacity) : ((sizeof(((*d)).init_array)/sizeof((((*d)).init_array)[0])) / ((size_t)(!(sizeof(((*d)).init_array) % sizeof((((*d)).init_array)[0])))))), ((*d)).items = (((*d)).capacity == ((sizeof(((*d)).init_array)/sizeof((((*d)).init_array)[0])) / ((size_t)(!(sizeof(((*d)).init_array) % sizeof((((*d)).init_array)[0]))))) ? (((*d)).items == ((*d)).init_array ? ((*d)).items : _memcpy_free(((*d)).init_array, ((*d)).items, ((*d)).size * sizeof(((*d)).items[0]))) : (((*d)).items == ((*d)).init_array ? memcpy(xmalloc(((*d)).capacity * sizeof(((*d)).items[0])), ((*d)).items, ((*d)).size * sizeof(((*d)).items[0])) : xrealloc(((*d)).items, ((*d)).capacity * sizeof(((*d)).items[0]))))); } } while (0);
memcpy(&((*d).items[(((*d).size))]), &((*y).items[(yi)]), n * sizeof(((*d).items[(0)])));
((*d).size) += n;
}
((*w).size) = wn;
((*y).size) = yn;
}
# 906 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 906 "/home/ubuntu/neovim/src/nvim/marktree.c"
intersect_mov_test(const uint64_t *x, size_t nx, const uint64_t *y, size_t ny,
const uint64_t *win, size_t nwin, uint64_t *wout, size_t *nwout,
uint64_t *dout, size_t *ndout)
{
Intersection xi = { .items = (uint64_t *)x, .size = nx };
Intersection yi = { .items = (uint64_t *)y, .size = ny };
Intersection w;
((w).capacity = ((sizeof((w).init_array)/sizeof(((w).init_array)[0])) / ((size_t)(!(sizeof((w).init_array) % sizeof(((w).init_array)[0]))))), (w).size = 0, (w).items = (w).init_array);
for (size_t i = 0; i < nwin; i++) {
(*((((w).size == (w).capacity) ? (((w).capacity = (((w).capacity << 1) > ((sizeof((w).init_array)/sizeof(((w).init_array)[0])) / ((size_t)(!(sizeof((w).init_array) % sizeof(((w).init_array)[0]))))) ? ((w).capacity << 1) : ((sizeof((w).init_array)/sizeof(((w).init_array)[0])) / ((size_t)(!(sizeof((w).init_array) % sizeof(((w).init_array)[0])))))), (w).items = ((w).capacity == ((sizeof((w).init_array)/sizeof(((w).init_array)[0])) / ((size_t)(!(sizeof((w).init_array) % sizeof(((w).init_array)[0]))))) ? ((w).items == (w).init_array ? (w).items : _memcpy_free((w).init_array, (w).items, (w).size * sizeof((w).items[0]))) : ((w).items == (w).init_array ? memcpy(xmalloc((w).capacity * sizeof((w).items[0])), (w).items, (w).size * sizeof((w).items[0])) : xrealloc((w).items, (w).capacity * sizeof((w).items[0]))))), 0) : 0), ((w).items + ((w).size++))) = (win[i]));
}
Intersection d;
((d).capacity = ((sizeof((d).init_array)/sizeof(((d).init_array)[0])) / ((size_t)(!(sizeof((d).init_array) % sizeof(((d).init_array)[0]))))), (d).size = 0, (d).items = (d).init_array);
intersect_mov(&xi, &yi, &w, &d);
if (w.size > *nwout || d.size > *ndout) {
return
# 926 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 926 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
memcpy(wout, w.items, sizeof(w.items[0]) * w.size);
*nwout = w.size;
memcpy(dout, d.items, sizeof(d.items[0]) * d.size);
*ndout = d.size;
return
# 935 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 935 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
static void intersect_common(Intersection *i, Intersection *x, Intersection *y)
{
size_t xi = 0;
size_t yi = 0;
while (xi < ((*x).size) && yi < ((*y).size)) {
if (((*x).items[(xi)]) == ((*y).items[(yi)])) {
(*((((*i).size == (*i).capacity) ? (((*i).capacity = (((*i).capacity << 1) > ((sizeof((*i).init_array)/sizeof(((*i).init_array)[0])) / ((size_t)(!(sizeof((*i).init_array) % sizeof(((*i).init_array)[0]))))) ? ((*i).capacity << 1) : ((sizeof((*i).init_array)/sizeof(((*i).init_array)[0])) / ((size_t)(!(sizeof((*i).init_array) % sizeof(((*i).init_array)[0])))))), (*i).items = ((*i).capacity == ((sizeof((*i).init_array)/sizeof(((*i).init_array)[0])) / ((size_t)(!(sizeof((*i).init_array) % sizeof(((*i).init_array)[0]))))) ? ((*i).items == (*i).init_array ? (*i).items : _memcpy_free((*i).init_array, (*i).items, (*i).size * sizeof((*i).items[0]))) : ((*i).items == (*i).init_array ? memcpy(xmalloc((*i).capacity * sizeof((*i).items[0])), (*i).items, (*i).size * sizeof((*i).items[0])) : xrealloc((*i).items, (*i).capacity * sizeof((*i).items[0]))))), 0) : 0), ((*i).items + ((*i).size++))) = (((*x).items[(xi)])));
xi++;
yi++;
} else if (((*x).items[(xi)]) < ((*y).items[(yi)])) {
xi++;
} else {
yi++;
}
}
}
static void intersect_add(Intersection *x, Intersection *y)
{
size_t xi = 0;
size_t yi = 0;
while (xi < ((*x).size) && yi < ((*y).size)) {
if (((*x).items[(xi)]) == ((*y).items[(yi)])) {
xi++;
yi++;
} else if (((*y).items[(yi)]) < ((*x).items[(xi)])) {
size_t n = ((*x).size) - xi;
((((*x).size == (*x).capacity) ? (((*x).capacity = (((*x).capacity << 1) > ((sizeof((*x).init_array)/sizeof(((*x).init_array)[0])) / ((size_t)(!(sizeof((*x).init_array) % sizeof(((*x).init_array)[0]))))) ? ((*x).capacity << 1) : ((sizeof((*x).init_array)/sizeof(((*x).init_array)[0])) / ((size_t)(!(sizeof((*x).init_array) % sizeof(((*x).init_array)[0])))))), (*x).items = ((*x).capacity == ((sizeof((*x).init_array)/sizeof(((*x).init_array)[0])) / ((size_t)(!(sizeof((*x).init_array) % sizeof(((*x).init_array)[0]))))) ? ((*x).items == (*x).init_array ? (*x).items : _memcpy_free((*x).init_array, (*x).items, (*x).size * sizeof((*x).items[0]))) : ((*x).items == (*x).init_array ? memcpy(xmalloc((*x).capacity * sizeof((*x).items[0])), (*x).items, (*x).size * sizeof((*x).items[0])) : xrealloc((*x).items, (*x).capacity * sizeof((*x).items[0]))))), 0) : 0), ((*x).items + ((*x).size++)));
memmove(&((*x).items[(xi + 1)]), &((*x).items[(xi)]), n * sizeof(((*x).items[(0)])));
((*x).items[(xi)]) = ((*y).items[(yi)]);
xi++;
yi++;
} else {
xi++;
}
}
if (yi < ((*y).size)) {
size_t n = ((*y).size) - yi;
do { if ((*x).capacity < (*x).size + n) { (*x).capacity = (*x).size + n; ((--((*x).capacity)), (((*x).capacity)|=((*x).capacity)>>1, ((*x).capacity)|=((*x).capacity)>>2, ((*x).capacity)|=((*x).capacity)>>4, ((*x).capacity)|=((*x).capacity)>>8, ((*x).capacity)|=((*x).capacity)>>16), (++((*x).capacity))); (((*x)).capacity = (((*x).capacity) > ((sizeof(((*x)).init_array)/sizeof((((*x)).init_array)[0])) / ((size_t)(!(sizeof(((*x)).init_array) % sizeof((((*x)).init_array)[0]))))) ? ((*x).capacity) : ((sizeof(((*x)).init_array)/sizeof((((*x)).init_array)[0])) / ((size_t)(!(sizeof(((*x)).init_array) % sizeof((((*x)).init_array)[0])))))), ((*x)).items = (((*x)).capacity == ((sizeof(((*x)).init_array)/sizeof((((*x)).init_array)[0])) / ((size_t)(!(sizeof(((*x)).init_array) % sizeof((((*x)).init_array)[0]))))) ? (((*x)).items == ((*x)).init_array ? ((*x)).items : _memcpy_free(((*x)).init_array, ((*x)).items, ((*x)).size * sizeof(((*x)).items[0]))) : (((*x)).items == ((*x)).init_array ? memcpy(xmalloc(((*x)).capacity * sizeof(((*x)).items[0])), ((*x)).items, ((*x)).size * sizeof(((*x)).items[0])) : xrealloc(((*x)).items, ((*x)).capacity * sizeof(((*x)).items[0]))))); } } while (0);
memcpy(&((*x).items[(((*x).size))]), &((*y).items[(yi)]), n * sizeof(((*x).items[(0)])));
((*x).size) += n;
}
}
static void intersect_sub(Intersection *restrict x, Intersection *restrict y)
{
size_t xi = 0;
size_t yi = 0;
size_t xn = 0;
while (xi < ((*x).size) && yi < ((*y).size)) {
if (((*x).items[(xi)]) == ((*y).items[(yi)])) {
xi++;
yi++;
} else if (((*x).items[(xi)]) < ((*y).items[(yi)])) {
((*x).items[(xn++)]) = ((*x).items[(xi++)]);
} else {
yi++;
}
}
if (xi < ((*x).size)) {
size_t n = ((*x).size) - xi;
if (xn < xi) {
memmove(&((*x).items[(xn)]), &((*x).items[(xi)]), n * sizeof(((*x).items[(0)])));
}
xn += n;
}
((*x).size) = xn;
}
static void bubble_up(MTNode *x)
{
Intersection xi;
((xi).capacity = ((sizeof((xi).init_array)/sizeof(((xi).init_array)[0])) / ((size_t)(!(sizeof((xi).init_array) % sizeof(((xi).init_array)[0]))))), (xi).size = 0, (xi).items = (xi).init_array);
intersect_common(&xi, &x->s->i_ptr[0]->intersect, &x->s->i_ptr[x->n]->intersect);
if (((xi).size)) {
for (int i = 0; i < x->n + 1; i++) {
intersect_sub(&x->s->i_ptr[i]->intersect, &xi);
}
intersect_add(&x->intersect, &xi);
}
do { if ((xi).items != (xi).init_array) { do { void **ptr_ = (void **)&((xi).items); xfree(*ptr_); *ptr_ =
# 1027 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1027 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } } while (0);
}
static MTNode *merge_node(MarkTree *b, MTNode *p, int i)
{
MTNode *x = p->s->i_ptr[i];
MTNode *y = p->s->i_ptr[i + 1];
Intersection mi;
((mi).capacity = ((sizeof((mi).init_array)/sizeof(((mi).init_array)[0])) / ((size_t)(!(sizeof((mi).init_array) % sizeof(((mi).init_array)[0]))))), (mi).size = 0, (mi).items = (mi).init_array);
intersect_merge(&mi, &x->intersect, &y->intersect);
x->key[x->n] = p->key[i];
refkey(b, x, x->n);
if (i > 0) {
relative(p->key[i - 1].pos, &x->key[x->n].pos);
}
uint32_t meta_inc[4];
meta_describe_key(meta_inc, x->key[x->n]);
memmove(&x->key[x->n + 1], y->key, (size_t)y->n * sizeof(MTKey));
for (int k = 0; k < y->n; k++) {
refkey(b, x, x->n + 1 + k);
unrelative(x->key[x->n].pos, &x->key[x->n + 1 + k].pos);
}
if (x->level) {
memmove(&x->s->i_ptr[x->n + 1], y->s->i_ptr, ((size_t)y->n + 1) * sizeof(MTNode *));
memmove(&x->s->i_meta[x->n + 1], y->s->i_meta, ((size_t)y->n + 1) * sizeof(y->s->i_meta[0]));
for (int k = 0; k < x->n + 1; k++) {
for (size_t idx = 0; idx < ((x->intersect).size); idx++) {
intersect_node(b, x->s->i_ptr[k], ((x->intersect).items[(idx)]));
}
}
for (int ky = 0; ky < y->n + 1; ky++) {
int k = x->n + ky + 1;
x->s->i_ptr[k]->parent = x;
x->s->i_ptr[k]->p_idx = (int16_t)k;
for (size_t idx = 0; idx < ((y->intersect).size); idx++) {
intersect_node(b, x->s->i_ptr[k], ((y->intersect).items[(idx)]));
}
}
}
x->n += y->n + 1;
for (int m = 0; m < kMTMetaCount; m++) {
p->s->i_meta[i][m] += (p->s->i_meta[i + 1][m] + meta_inc[m]);
}
memmove(&p->key[i], &p->key[i + 1], (size_t)(p->n - i - 1) * sizeof(MTKey));
memmove(&p->s->i_ptr[i + 1], &p->s->i_ptr[i + 2], (size_t)(p->n - i - 1) * sizeof(MTKey *));
memmove(&p->s->i_meta[i + 1], &p->s->i_meta[i + 2], (size_t)(p->n - i - 1) * sizeof(p->s->i_meta[0]));
for (int j = i + 1; j < p->n; j++) {
p->s->i_ptr[j]->p_idx = (int16_t)j;
}
p->n--;
marktree_free_node(b, y);
do { if ((x->intersect).items != (x->intersect).init_array) { do { void **ptr_ = (void **)&((x->intersect).items); xfree(*ptr_); *ptr_ =
# 1090 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1090 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } } while (0);
kvi_move(&x->intersect, &mi);
return x;
}
void kvi_move(Intersection *dest, Intersection *src)
{
dest->size = src->size;
dest->capacity = src->capacity;
if (src->items == src->init_array) {
memcpy(dest->init_array, src->init_array, src->size * sizeof(*src->init_array));
dest->items = dest->init_array;
} else {
dest->items = src->items;
}
}
static void pivot_right(MarkTree *b, MTPos p_pos, MTNode *p, const int i)
{
MTNode *x = p->s->i_ptr[i];
MTNode *y = p->s->i_ptr[i + 1];
memmove(&y->key[1], y->key, (size_t)y->n * sizeof(MTKey));
if (y->level) {
memmove(&y->s->i_ptr[1], y->s->i_ptr, ((size_t)y->n + 1) * sizeof(MTNode *));
memmove(&y->s->i_meta[1], y->s->i_meta, ((size_t)y->n + 1) * sizeof(y->s->i_meta[0]));
for (int j = 1; j < y->n + 2; j++) {
y->s->i_ptr[j]->p_idx = (int16_t)j;
}
}
y->key[0] = p->key[i];
refkey(b, y, 0);
p->key[i] = x->key[x->n - 1];
refkey(b, p, i);
uint32_t meta_inc_y[4];
meta_describe_key(meta_inc_y, y->key[0]);
uint32_t meta_inc_x[4];
meta_describe_key(meta_inc_x, p->key[i]);
for (int m = 0; m < kMTMetaCount; m++) {
p->s->i_meta[i + 1][m] += meta_inc_y[m];
p->s->i_meta[i][m] -= meta_inc_x[m];
}
if (x->level) {
y->s->i_ptr[0] = x->s->i_ptr[x->n];
memcpy(y->s->i_meta[0], x->s->i_meta[x->n], sizeof(y->s->i_meta[0]));
for (int m = 0; m < kMTMetaCount; m++) {
p->s->i_meta[i + 1][m] += y->s->i_meta[0][m];
p->s->i_meta[i][m] -= y->s->i_meta[0][m];
}
y->s->i_ptr[0]->parent = y;
y->s->i_ptr[0]->p_idx = 0;
}
x->n--;
y->n++;
if (i > 0) {
unrelative(p->key[i - 1].pos, &p->key[i].pos);
}
relative(p->key[i].pos, &y->key[0].pos);
for (int k = 1; k < y->n; k++) {
unrelative(y->key[0].pos, &y->key[k].pos);
}
if (x->level) {
Intersection d;
((d).capacity = ((sizeof((d).init_array)/sizeof(((d).init_array)[0])) / ((size_t)(!(sizeof((d).init_array) % sizeof(((d).init_array)[0]))))), (d).size = 0, (d).items = (d).init_array);
intersect_mov(&x->intersect, &y->intersect, &y->s->i_ptr[0]->intersect, &d);
if (((d).size)) {
for (int yi = 1; yi < y->n + 1; yi++) {
intersect_add(&y->s->i_ptr[yi]->intersect, &d);
}
}
do { if ((d).items != (d).init_array) { do { void **ptr_ = (void **)&((d).items); xfree(*ptr_); *ptr_ =
# 1180 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1180 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } } while (0);
bubble_up(x);
} else {
if (mt_end(p->key[i])) {
uint64_t pi = pseudo_index(x, 0);
uint64_t start_id = mt_lookup_key_side(p->key[i],
# 1187 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1187 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
uint64_t pi_start = pseudo_index_for_id(b, start_id,
# 1188 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1188 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (pi_start > 0 && pi_start < pi) {
intersect_node(b, x, start_id);
}
}
if (mt_start(y->key[0])) {
unintersect_node(b, y, mt_lookup_key(y->key[0]),
# 1196 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1196 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
}
static void pivot_left(MarkTree *b, MTPos p_pos, MTNode *p, int i)
{
MTNode *x = p->s->i_ptr[i];
MTNode *y = p->s->i_ptr[i + 1];
for (int k = 1; k < y->n; k++) {
relative(y->key[0].pos, &y->key[k].pos);
}
unrelative(p->key[i].pos, &y->key[0].pos);
if (i > 0) {
relative(p->key[i - 1].pos, &p->key[i].pos);
}
x->key[x->n] = p->key[i];
refkey(b, x, x->n);
p->key[i] = y->key[0];
refkey(b, p, i);
uint32_t meta_inc_x[4];
meta_describe_key(meta_inc_x, x->key[x->n]);
uint32_t meta_inc_y[4];
meta_describe_key(meta_inc_y, p->key[i]);
for (int m = 0; m < kMTMetaCount; m++) {
p->s->i_meta[i][m] += meta_inc_x[m];
p->s->i_meta[i + 1][m] -= meta_inc_y[m];
}
if (x->level) {
x->s->i_ptr[x->n + 1] = y->s->i_ptr[0];
memcpy(x->s->i_meta[x->n + 1], y->s->i_meta[0], sizeof(y->s->i_meta[0]));
for (int m = 0; m < kMTMetaCount; m++) {
p->s->i_meta[i + 1][m] -= y->s->i_meta[0][m];
p->s->i_meta[i][m] += y->s->i_meta[0][m];
}
x->s->i_ptr[x->n + 1]->parent = x;
x->s->i_ptr[x->n + 1]->p_idx = (int16_t)(x->n + 1);
}
memmove(y->key, &y->key[1], (size_t)(y->n - 1) * sizeof(MTKey));
if (y->level) {
memmove(y->s->i_ptr, &y->s->i_ptr[1], (size_t)y->n * sizeof(MTNode *));
memmove(y->s->i_meta, &y->s->i_meta[1], (size_t)y->n * sizeof(y->s->i_meta[0]));
for (int j = 0; j < y->n; j++) {
y->s->i_ptr[j]->p_idx = (int16_t)j;
}
}
x->n++;
y->n--;
if (x->level) {
Intersection d;
((d).capacity = ((sizeof((d).init_array)/sizeof(((d).init_array)[0])) / ((size_t)(!(sizeof((d).init_array) % sizeof(((d).init_array)[0]))))), (d).size = 0, (d).items = (d).init_array);
intersect_mov(&y->intersect, &x->intersect, &x->s->i_ptr[x->n]->intersect, &d);
if (((d).size)) {
for (int xi = 0; xi < x->n; xi++) {
intersect_add(&x->s->i_ptr[xi]->intersect, &d);
}
}
do { if ((d).items != (d).init_array) { do { void **ptr_ = (void **)&((d).items); xfree(*ptr_); *ptr_ =
# 1266 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1266 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } } while (0);
bubble_up(y);
} else {
if (mt_start(p->key[i])) {
uint64_t pi = pseudo_index(y, 0);
uint64_t end_id = mt_lookup_key_side(p->key[i],
# 1274 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1274 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
uint64_t pi_end = pseudo_index_for_id(b, end_id,
# 1275 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1275 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (pi_end > pi) {
intersect_node(b, y, mt_lookup_key(p->key[i]));
}
}
if (mt_end(x->key[x->n - 1])) {
unintersect_node(b, x, mt_lookup_key_side(x->key[x->n - 1],
# 1284 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1284 "/home/ubuntu/neovim/src/nvim/marktree.c"
),
# 1284 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1284 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
}
void marktree_clear(MarkTree *b)
{
if (b->root) {
marktree_free_subtree(b, b->root);
b->root =
# 1294 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1294 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
do { do { xfree((&(b->id2node)->set)->keys); xfree((&(b->id2node)->set)->h.hash); *(&(b->id2node)->set) = (Set_uint64_t) { { 0, 0, 0, 0, 0, 0,
# 1296 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1296 "/home/ubuntu/neovim/src/nvim/marktree.c"
},
# 1296 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1296 "/home/ubuntu/neovim/src/nvim/marktree.c"
}; } while (0); do { void **ptr_ = (void **)&((b->id2node)->values); xfree(*ptr_); *ptr_ =
# 1296 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1296 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } while (0);
b->n_keys = 0;
memset(b->meta_root, 0, kMTMetaCount * sizeof(b->meta_root[0]));
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_nodes == 0
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_nodes == 0
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->n_nodes == 0"
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1299, __extension__ __PRETTY_FUNCTION__); }))
# 1299 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
void marktree_free_subtree(MarkTree *b, MTNode *x)
{
if (x->level) {
for (int i = 0; i < x->n + 1; i++) {
marktree_free_subtree(b, x->s->i_ptr[i]);
}
}
marktree_free_node(b, x);
}
static void marktree_free_node(MarkTree *b, MTNode *x)
{
do { if ((x->intersect).items != (x->intersect).init_array) { do { void **ptr_ = (void **)&((x->intersect).items); xfree(*ptr_); *ptr_ =
# 1314 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1314 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } } while (0);
xfree(x);
b->n_nodes--;
}
void marktree_move(MarkTree *b, MarkTreeIter *itr, int row, int col)
{
MTKey key = ((itr)->x->key[(itr)->i]);
MTNode *x = itr->x;
if (!x->level) {
# 1325 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1325 "/home/ubuntu/neovim/src/nvim/marktree.c"
internal =
# 1325 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1325 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
MTPos newpos = ((MTPos){ .row = (row), .col = (col) });
if (x->parent !=
# 1327 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1327 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
if (pos_less(itr->pos, newpos)) {
relative(itr->pos, &newpos);
if (pos_less(newpos, x->key[x->n - 1].pos)) {
internal =
# 1336 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1336 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
} else {
internal =
# 1341 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1341 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (internal) {
if (key.pos.row == newpos.row && key.pos.col == newpos.col) {
return;
}
key.pos = newpos;
# 1349 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1349 "/home/ubuntu/neovim/src/nvim/marktree.c"
match;
int new_i = marktree_getp_aux(x, key, &match);
if (!match) {
new_i++;
}
if (new_i == itr->i) {
x->key[itr->i].pos = newpos;
} else if (new_i < itr->i) {
memmove(&x->key[new_i + 1], &x->key[new_i], sizeof(MTKey) * (size_t)(itr->i - new_i));
x->key[new_i] = key;
} else if (new_i > itr->i) {
memmove(&x->key[itr->i], &x->key[itr->i + 1], sizeof(MTKey) * (size_t)(new_i - itr->i - 1));
x->key[new_i - 1] = key;
}
return;
}
}
uint64_t other = marktree_del_itr(b, itr,
# 1367 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1367 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
key.pos = (MTPos){ row, col };
marktree_put_key(b, key);
if (other) {
marktree_restore_pair(b, key);
}
itr->x =
# 1375 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1375 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
void marktree_restore_pair(MarkTree *b, MTKey key)
{
MarkTreeIter itr[1];
MarkTreeIter end_itr[1];
marktree_lookup(b, mt_lookup_key_side(key,
# 1382 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1382 "/home/ubuntu/neovim/src/nvim/marktree.c"
), itr);
marktree_lookup(b, mt_lookup_key_side(key,
# 1383 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1383 "/home/ubuntu/neovim/src/nvim/marktree.c"
), end_itr);
if (!itr->x || !end_itr->x) {
return;
}
((itr)->x->key[(itr)->i]).flags &= (uint16_t) ~(((uint16_t)1) << 3);
((end_itr)->x->key[(end_itr)->i]).flags &= (uint16_t) ~(((uint16_t)1) << 3);
marktree_intersect_pair(b, mt_lookup_key_side(key,
# 1392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1392 "/home/ubuntu/neovim/src/nvim/marktree.c"
), itr, end_itr,
# 1392 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1392 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
# 1397 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1397 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_get(MarkTree *b, int32_t row, int col, MarkTreeIter *itr)
{
return marktree_itr_get_ext(b, ((MTPos){ .row = (row), .col = (col) }), itr,
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1399 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
# 1402 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1402 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_get_ext(MarkTree *b, MTPos p, MarkTreeIter *itr,
# 1402 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1402 "/home/ubuntu/neovim/src/nvim/marktree.c"
last,
# 1402 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1402 "/home/ubuntu/neovim/src/nvim/marktree.c"
gravity,
MTPos *oldbase, MetaFilter meta_filter)
{
if (b->n_keys == 0) {
itr->x =
# 1406 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1406 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return
# 1407 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1407 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
MTKey k = { .pos = p, .flags = gravity ? (((uint16_t)1) << 14) : 0 };
if (last && !gravity) {
k.flags = (((uint16_t)1) << 15);
}
itr->pos = (MTPos){ 0, 0 };
itr->x = b->root;
itr->lvl = 0;
if (oldbase) {
oldbase[itr->lvl] = itr->pos;
}
while (
# 1420 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1420 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
itr->i = marktree_getp_aux(itr->x, k, 0) + 1;
if (itr->x->level == 0) {
break;
}
if (meta_filter) {
if (!meta_has(itr->x->s->i_meta[itr->i], meta_filter)) {
break;
}
}
itr->s[itr->lvl].i = itr->i;
itr->s[itr->lvl].oldcol = itr->pos.col;
if (itr->i > 0) {
compose(&itr->pos, itr->x->key[itr->i - 1].pos);
relative(itr->x->key[itr->i - 1].pos, &k.pos);
}
itr->x = itr->x->s->i_ptr[itr->i];
itr->lvl++;
if (oldbase) {
oldbase[itr->lvl] = itr->pos;
}
}
if (last) {
return marktree_itr_prev(b, itr);
} else if (itr->i >= itr->x->n) {
return marktree_itr_next_skip(b, itr,
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1451 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
return
# 1453 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1453 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
# 1456 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1456 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_first(MarkTree *b, MarkTreeIter *itr)
{
if (b->n_keys == 0) {
itr->x =
# 1459 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1459 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return
# 1460 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1460 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->x = b->root;
itr->i = 0;
itr->lvl = 0;
itr->pos = ((MTPos){ .row = (0), .col = (0) });
while (itr->x->level > 0) {
itr->s[itr->lvl].i = 0;
itr->s[itr->lvl].oldcol = 0;
itr->lvl++;
itr->x = itr->x->s->i_ptr[0];
}
return
# 1473 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1473 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
int marktree_itr_last(MarkTree *b, MarkTreeIter *itr)
{
if (b->n_keys == 0) {
itr->x =
# 1480 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1480 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return
# 1481 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1481 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->pos = ((MTPos){ .row = (0), .col = (0) });
itr->x = b->root;
itr->lvl = 0;
while (
# 1486 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1486 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
itr->i = itr->x->n;
if (itr->x->level == 0) {
break;
}
itr->s[itr->lvl].i = itr->i;
itr->s[itr->lvl].oldcol = itr->pos.col;
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->i > 0
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->i > 0
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c"
"itr->i > 0"
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1496, __extension__ __PRETTY_FUNCTION__); }))
# 1496 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
compose(&itr->pos, itr->x->key[itr->i - 1].pos);
itr->x = itr->x->s->i_ptr[itr->i];
itr->lvl++;
}
itr->i--;
return
# 1503 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1503 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
# 1506 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1506 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_next(MarkTree *b, MarkTreeIter *itr)
{
return marktree_itr_next_skip(b, itr,
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1508 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
static
# 1511 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1511 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_next_skip(MarkTree *b, MarkTreeIter *itr,
# 1511 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1511 "/home/ubuntu/neovim/src/nvim/marktree.c"
skip,
# 1511 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1511 "/home/ubuntu/neovim/src/nvim/marktree.c"
preload,
MTPos oldbase[], MetaFilter meta_filter)
{
if (!itr->x) {
return
# 1515 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1515 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->i++;
if (meta_filter && itr->x->level > 0) {
if (!meta_has(itr->x->s->i_meta[itr->i], meta_filter)) {
skip =
# 1520 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1520 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
if (itr->x->level == 0 || skip) {
if (preload && itr->x->level == 0 && skip) {
itr->i = itr->x->n;
} else if (itr->i < itr->x->n) {
return
# 1530 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1530 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
while (itr->i >= itr->x->n) {
itr->x = itr->x->parent;
if (itr->x ==
# 1535 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1535 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
return
# 1536 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1536 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->lvl--;
itr->i = itr->s[itr->lvl].i;
if (itr->i > 0) {
itr->pos.row -= itr->x->key[itr->i - 1].pos.row;
itr->pos.col = itr->s[itr->lvl].oldcol;
}
}
} else {
while (itr->x->level > 0) {
if (itr->i > 0) {
itr->s[itr->lvl].oldcol = itr->pos.col;
compose(&itr->pos, itr->x->key[itr->i - 1].pos);
}
if (oldbase && itr->i == 0) {
oldbase[itr->lvl + 1] = oldbase[itr->lvl];
}
itr->s[itr->lvl].i = itr->i;
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->x->s->i_ptr[itr->i]->parent == itr->x
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->x->s->i_ptr[itr->i]->parent == itr->x
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c"
"itr->x->ptr[itr->i]->parent == itr->x"
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1558, __extension__ __PRETTY_FUNCTION__); }))
# 1558 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
itr->lvl++;
itr->x = itr->x->s->i_ptr[itr->i];
if (preload && itr->x->level) {
itr->i = -1;
break;
}
itr->i = 0;
if (meta_filter && itr->x->level) {
if (!meta_has(itr->x->s->i_meta[0], meta_filter)) {
break;
}
}
}
}
return
# 1574 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1574 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
# 1577 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1577 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_get_filter(MarkTree *b, int32_t row, int col, int stop_row, int stop_col,
MetaFilter meta_filter, MarkTreeIter *itr)
{
if (!meta_has(b->meta_root, meta_filter)) {
return
# 1581 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1581 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (!marktree_itr_get_ext(b, ((MTPos){ .row = (row), .col = (col) }), itr,
# 1583 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1583 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1583 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1583 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1583 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1583 "/home/ubuntu/neovim/src/nvim/marktree.c"
, meta_filter)) {
return
# 1584 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1584 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
return marktree_itr_check_filter(b, itr, stop_row, stop_col, meta_filter);
}
# 1595 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1595 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_step_out_filter(MarkTree *b, MarkTreeIter *itr, MetaFilter meta_filter)
{
if (!meta_has(b->meta_root, meta_filter)) {
itr->x =
# 1598 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1598 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return
# 1599 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1599 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
while (itr->x && itr->x->parent) {
if (meta_has(itr->x->parent->s->i_meta[itr->x->p_idx], meta_filter)) {
return
# 1604 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1604 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->i = itr->x->n;
marktree_itr_next_skip(b, itr,
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1610 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
return itr->x;
}
# 1616 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1616 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_next_filter(MarkTree *b, MarkTreeIter *itr, int stop_row, int stop_col,
MetaFilter meta_filter)
{
if (!marktree_itr_next_skip(b, itr,
# 1619 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1619 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1619 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1619 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1619 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1619 "/home/ubuntu/neovim/src/nvim/marktree.c"
, meta_filter)) {
return
# 1620 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1620 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
return marktree_itr_check_filter(b, itr, stop_row, stop_col, meta_filter);
}
const uint32_t meta_map[4] = { (((uint16_t)1) << 12), (((uint16_t)1) << 11),
(((uint16_t)1) << 10), (((uint16_t)1) << 9) };
static
# 1628 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1628 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_check_filter(MarkTree *b, MarkTreeIter *itr, int stop_row, int stop_col,
MetaFilter meta_filter)
{
MTPos stop_pos = ((MTPos){ .row = (stop_row), .col = (stop_col) });
uint32_t key_filter = 0;
for (int m = 0; m < kMTMetaCount; m++) {
key_filter |= meta_map[m]&meta_filter[m];
}
while (
# 1638 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1638 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
if (pos_leq(stop_pos, marktree_itr_pos(itr))) {
itr->x =
# 1640 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1640 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return
# 1641 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1641 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
MTKey k = ((itr)->x->key[(itr)->i]);
if (!mt_end(k) && (k.flags & key_filter)) {
return
# 1646 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1646 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (!marktree_itr_next_skip(b, itr,
# 1650 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1650 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1650 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1650 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1650 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1650 "/home/ubuntu/neovim/src/nvim/marktree.c"
, meta_filter)) {
return
# 1651 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1651 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
}
# 1656 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1656 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_prev(MarkTree *b, MarkTreeIter *itr)
{
if (!itr->x) {
return
# 1659 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1659 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (itr->x->level == 0) {
itr->i--;
if (itr->i >= 0) {
return
# 1666 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1666 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
while (itr->i < 0) {
itr->x = itr->x->parent;
if (itr->x ==
# 1671 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1671 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
return
# 1672 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1672 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->lvl--;
itr->i = itr->s[itr->lvl].i - 1;
if (itr->i >= 0) {
itr->pos.row -= itr->x->key[itr->i].pos.row;
itr->pos.col = itr->s[itr->lvl].oldcol;
}
}
} else {
while (itr->x->level > 0) {
if (itr->i > 0) {
itr->s[itr->lvl].oldcol = itr->pos.col;
compose(&itr->pos, itr->x->key[itr->i - 1].pos);
}
itr->s[itr->lvl].i = itr->i;
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->x->s->i_ptr[itr->i]->parent == itr->x
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->x->s->i_ptr[itr->i]->parent == itr->x
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c"
"itr->x->ptr[itr->i]->parent == itr->x"
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1691, __extension__ __PRETTY_FUNCTION__); }))
# 1691 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
itr->x = itr->x->s->i_ptr[itr->i];
itr->i = itr->x->n;
itr->lvl++;
}
itr->i--;
}
return
# 1698 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1698 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
# 1701 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1701 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_node_done(MarkTreeIter *itr)
{
return !itr->x || itr->i == itr->x->n - 1;
}
MTPos marktree_itr_pos(MarkTreeIter *itr)
{
MTPos pos = ((itr)->x->key[(itr)->i]).pos;
unrelative(itr->pos, &pos);
return pos;
}
MTKey marktree_itr_current(MarkTreeIter *itr)
{
if (itr->x) {
MTKey key = ((itr)->x->key[(itr)->i]);
key.pos = marktree_itr_pos(itr);
return key;
}
return (MTKey) { { -1, -1 }, 0, 0, 0, { .hl = { 0, 0x1000, 0, 0 } } };
}
static
# 1723 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1723 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr_eq(MarkTreeIter *itr1, MarkTreeIter *itr2)
{
return (&((itr1)->x->key[(itr1)->i]) == &((itr2)->x->key[(itr2)->i]));
}
# 1744 "/home/ubuntu/neovim/src/nvim/marktree.c"
# 1744 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1744 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_get_overlap(MarkTree *b, int row, int col, MarkTreeIter *itr)
{
if (b->n_keys == 0) {
itr->x =
# 1747 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1747 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return
# 1748 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1748 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
itr->x = b->root;
itr->i = -1;
itr->lvl = 0;
itr->pos = ((MTPos){ .row = (0), .col = (0) });
itr->intersect_pos = ((MTPos){ .row = (row), .col = (col) });
itr->intersect_pos_x = ((MTPos){ .row = (row), .col = (col) });
itr->intersect_idx = 0;
return
# 1759 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1759 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
# 1770 "/home/ubuntu/neovim/src/nvim/marktree.c"
# 1770 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1770 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_itr_step_overlap(MarkTree *b, MarkTreeIter *itr, MTPair *pair)
{
while (itr->i == -1) {
if (itr->intersect_idx < ((itr->x->intersect).size)) {
uint64_t id = ((itr->x->intersect).items[(itr->intersect_idx++)]);
*pair = mtpair_from(marktree_lookup(b, id,
# 1780 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1780 "/home/ubuntu/neovim/src/nvim/marktree.c"
),
marktree_lookup(b, id|((uint64_t)1),
# 1781 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1781 "/home/ubuntu/neovim/src/nvim/marktree.c"
));
return
# 1782 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1782 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (itr->x->level == 0) {
itr->s[itr->lvl].i = itr->i = 0;
break;
}
MTKey k = { .pos = itr->intersect_pos_x, .flags = 0 };
itr->i = marktree_getp_aux(itr->x, k, 0) + 1;
itr->s[itr->lvl].i = itr->i;
itr->s[itr->lvl].oldcol = itr->pos.col;
if (itr->i > 0) {
compose(&itr->pos, itr->x->key[itr->i - 1].pos);
relative(itr->x->key[itr->i - 1].pos, &itr->intersect_pos_x);
}
itr->x = itr->x->s->i_ptr[itr->i];
itr->lvl++;
itr->i = -1;
itr->intersect_idx = 0;
}
while (itr->i < itr->x->n && pos_less(((itr)->x->key[(itr)->i]).pos, itr->intersect_pos_x)) {
MTKey k = itr->x->key[itr->i++];
itr->s[itr->lvl].i = itr->i;
if (mt_start(k)) {
MTKey end = marktree_lookup(b, mt_lookup_id(k.ns, k.id,
# 1812 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1812 "/home/ubuntu/neovim/src/nvim/marktree.c"
),
# 1812 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1812 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (pos_less(end.pos, itr->intersect_pos)) {
continue;
}
unrelative(itr->pos, &k.pos);
*pair = mtpair_from(k, end);
return
# 1819 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1819 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
while (itr->i < itr->x->n) {
MTKey k = itr->x->key[itr->i++];
if (mt_end(k)) {
uint64_t id = mt_lookup_id(k.ns, k.id,
# 1828 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1828 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (id2node(b, id) == itr->x) {
continue;
}
unrelative(itr->pos, &k.pos);
MTKey start = marktree_lookup(b, id,
# 1833 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1833 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (pos_leq(itr->intersect_pos, start.pos)) {
continue;
}
*pair = mtpair_from(start, k);
return
# 1838 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1838 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
itr->i = itr->s[itr->lvl].i;
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->i >= 0
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c"
itr->i >= 0
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c"
"itr->i >= 0"
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1846, __extension__ __PRETTY_FUNCTION__); }))
# 1846 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (itr->i >= itr->x->n) {
marktree_itr_next(b, itr);
}
return
# 1852 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1852 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
static void swap_keys(MarkTree *b, MarkTreeIter *itr1, MarkTreeIter *itr2, DamageList *damage)
{
if (itr1->x != itr2->x) {
if (mt_paired(((itr1)->x->key[(itr1)->i]))) {
(*((((*damage).size == (*damage).capacity) ? (((*damage).capacity = (((*damage).capacity << 1) > ((sizeof((*damage).init_array)/sizeof(((*damage).init_array)[0])) / ((size_t)(!(sizeof((*damage).init_array) % sizeof(((*damage).init_array)[0]))))) ? ((*damage).capacity << 1) : ((sizeof((*damage).init_array)/sizeof(((*damage).init_array)[0])) / ((size_t)(!(sizeof((*damage).init_array) % sizeof(((*damage).init_array)[0])))))), (*damage).items = ((*damage).capacity == ((sizeof((*damage).init_array)/sizeof(((*damage).init_array)[0])) / ((size_t)(!(sizeof((*damage).init_array) % sizeof(((*damage).init_array)[0]))))) ? ((*damage).items == (*damage).init_array ? (*damage).items : _memcpy_free((*damage).init_array, (*damage).items, (*damage).size * sizeof((*damage).items[0]))) : ((*damage).items == (*damage).init_array ? memcpy(xmalloc((*damage).capacity * sizeof((*damage).items[0])), (*damage).items, (*damage).size * sizeof((*damage).items[0])) : xrealloc((*damage).items, (*damage).capacity * sizeof((*damage).items[0]))))), 0) : 0), ((*damage).items + ((*damage).size++))) = (((Damage){ mt_lookup_key(((itr1)->x->key[(itr1)->i])), itr1->x, itr2->x, itr1->i, itr2->i })))
;
}
if (mt_paired(((itr2)->x->key[(itr2)->i]))) {
(*((((*damage).size == (*damage).capacity) ? (((*damage).capacity = (((*damage).capacity << 1) > ((sizeof((*damage).init_array)/sizeof(((*damage).init_array)[0])) / ((size_t)(!(sizeof((*damage).init_array) % sizeof(((*damage).init_array)[0]))))) ? ((*damage).capacity << 1) : ((sizeof((*damage).init_array)/sizeof(((*damage).init_array)[0])) / ((size_t)(!(sizeof((*damage).init_array) % sizeof(((*damage).init_array)[0])))))), (*damage).items = ((*damage).capacity == ((sizeof((*damage).init_array)/sizeof(((*damage).init_array)[0])) / ((size_t)(!(sizeof((*damage).init_array) % sizeof(((*damage).init_array)[0]))))) ? ((*damage).items == (*damage).init_array ? (*damage).items : _memcpy_free((*damage).init_array, (*damage).items, (*damage).size * sizeof((*damage).items[0]))) : ((*damage).items == (*damage).init_array ? memcpy(xmalloc((*damage).capacity * sizeof((*damage).items[0])), (*damage).items, (*damage).size * sizeof((*damage).items[0])) : xrealloc((*damage).items, (*damage).capacity * sizeof((*damage).items[0]))))), 0) : 0), ((*damage).items + ((*damage).size++))) = (((Damage){ mt_lookup_key(((itr2)->x->key[(itr2)->i])), itr2->x, itr1->x, itr2->i, itr1->i })))
;
}
uint32_t meta_inc_1[4];
meta_describe_key(meta_inc_1, ((itr1)->x->key[(itr1)->i]));
uint32_t meta_inc_2[4];
meta_describe_key(meta_inc_2, ((itr2)->x->key[(itr2)->i]));
if (memcmp(meta_inc_1, meta_inc_2, sizeof(meta_inc_1)) != 0) {
MTNode *x1 = itr1->x;
MTNode *x2 = itr2->x;
while (x1 != x2) {
if (x1->level <= x2->level) {
uint32_t *meta_node = x1->parent->s->i_meta[x1->p_idx];
for (int m = 0; m < kMTMetaCount; m++) {
meta_node[m] += meta_inc_2[m] - meta_inc_1[m];
}
x1 = x1->parent;
}
if (x2->level < x1->level) {
uint32_t *meta_node = x2->parent->s->i_meta[x2->p_idx];
for (int m = 0; m < kMTMetaCount; m++) {
meta_node[m] += meta_inc_1[m] - meta_inc_2[m];
}
x2 = x2->parent;
}
}
}
}
MTKey key1 = ((itr1)->x->key[(itr1)->i]);
MTKey key2 = ((itr2)->x->key[(itr2)->i]);
((itr1)->x->key[(itr1)->i]) = key2;
((itr1)->x->key[(itr1)->i]).pos = key1.pos;
((itr2)->x->key[(itr2)->i]) = key1;
((itr2)->x->key[(itr2)->i]).pos = key2.pos;
refkey(b, itr1->x, itr1->i);
refkey(b, itr2->x, itr2->i);
}
static int damage_cmp(const void *s1, const void *s2)
{
Damage *d1 = (Damage *)s1;
Damage *d2 = (Damage *)s2;
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c"
d1->id != d2->id
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c"
d1->id != d2->id
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c"
"d1->id != d2->id"
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1909, __extension__ __PRETTY_FUNCTION__); }))
# 1909 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return d1->id > d2->id ? 1 : -1;
}
# 1913 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1913 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_splice(MarkTree *b, int32_t start_line, int start_col, int old_extent_line,
int old_extent_col, int new_extent_line, int new_extent_col)
{
MTPos start = { start_line, start_col };
MTPos old_extent = { old_extent_line, old_extent_col };
MTPos new_extent = { new_extent_line, new_extent_col };
# 1920 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1920 "/home/ubuntu/neovim/src/nvim/marktree.c"
may_delete = (old_extent.row != 0 || old_extent.col != 0);
# 1921 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1921 "/home/ubuntu/neovim/src/nvim/marktree.c"
same_line = old_extent.row == 0 && new_extent.row == 0;
unrelative(start, &old_extent);
unrelative(start, &new_extent);
MarkTreeIter itr[1] = { 0 };
MarkTreeIter enditr[1] = { 0 };
MTPos oldbase[MT_MAX_DEPTH] = { 0 };
marktree_itr_get_ext(b, start, itr,
# 1929 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1929 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1929 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1929 "/home/ubuntu/neovim/src/nvim/marktree.c"
, oldbase,
# 1929 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1929 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
if (!itr->x) {
return
# 1932 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1932 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
MTPos delta = { new_extent.row - old_extent.row,
new_extent.col - old_extent.col };
if (may_delete) {
MTPos ipos = marktree_itr_pos(itr);
if (!pos_leq(old_extent, ipos)
|| (old_extent.row == ipos.row && old_extent.col == ipos.col
&& !mt_right(((itr)->x->key[(itr)->i])))) {
marktree_itr_get_ext(b, old_extent, enditr,
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1942 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c"
enditr->x
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c"
enditr->x
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c"
"enditr->x"
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 1943, __extension__ __PRETTY_FUNCTION__); }))
# 1943 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
} else {
may_delete =
# 1946 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1946 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
# 1950 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1950 "/home/ubuntu/neovim/src/nvim/marktree.c"
past_right =
# 1950 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1950 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 1951 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 1951 "/home/ubuntu/neovim/src/nvim/marktree.c"
moved =
# 1951 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1951 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
DamageList damage;
((damage).capacity = ((sizeof((damage).init_array)/sizeof(((damage).init_array)[0])) / ((size_t)(!(sizeof((damage).init_array) % sizeof(((damage).init_array)[0]))))), (damage).size = 0, (damage).items = (damage).init_array);
if (may_delete) {
while (itr->x && !past_right) {
MTPos loc_start = start;
MTPos loc_old = old_extent;
relative(itr->pos, &loc_start);
relative(oldbase[itr->lvl], &loc_old);
continue_same_node:
if (!pos_leq(((itr)->x->key[(itr)->i]).pos, loc_old)) {
break;
}
if (mt_right(((itr)->x->key[(itr)->i]))) {
while (!itr_eq(itr, enditr)
&& mt_right(((enditr)->x->key[(enditr)->i]))) {
marktree_itr_prev(b, enditr);
}
if (!mt_right(((enditr)->x->key[(enditr)->i]))) {
swap_keys(b, itr, enditr, &damage);
} else {
past_right =
# 1981 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1981 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
(void)past_right;
break;
}
}
if (itr_eq(itr, enditr)) {
past_right =
# 1989 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1989 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
moved =
# 1992 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 1992 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (itr->x->level) {
oldbase[itr->lvl + 1] = ((itr)->x->key[(itr)->i]).pos;
unrelative(oldbase[itr->lvl], &oldbase[itr->lvl + 1]);
((itr)->x->key[(itr)->i]).pos = loc_start;
marktree_itr_next_skip(b, itr,
# 1997 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1997 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 1997 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 1997 "/home/ubuntu/neovim/src/nvim/marktree.c"
, oldbase,
# 1997 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 1997 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
} else {
((itr)->x->key[(itr)->i]).pos = loc_start;
if (itr->i < itr->x->n - 1) {
itr->i++;
if (!past_right) {
goto continue_same_node;
}
} else {
marktree_itr_next(b, itr);
}
}
}
while (itr->x) {
MTPos loc_new = new_extent;
relative(itr->pos, &loc_new);
MTPos limit = old_extent;
relative(oldbase[itr->lvl], &limit);
past_continue_same_node:
if (pos_leq(limit, ((itr)->x->key[(itr)->i]).pos)) {
break;
}
MTPos oldpos = ((itr)->x->key[(itr)->i]).pos;
((itr)->x->key[(itr)->i]).pos = loc_new;
moved =
# 2025 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2025 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (itr->x->level) {
oldbase[itr->lvl + 1] = oldpos;
unrelative(oldbase[itr->lvl], &oldbase[itr->lvl + 1]);
marktree_itr_next_skip(b, itr,
# 2030 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2030 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2030 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2030 "/home/ubuntu/neovim/src/nvim/marktree.c"
, oldbase,
# 2030 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2030 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
} else {
if (itr->i < itr->x->n - 1) {
itr->i++;
goto past_continue_same_node;
} else {
marktree_itr_next(b, itr);
}
}
}
}
while (itr->x) {
unrelative(oldbase[itr->lvl], &((itr)->x->key[(itr)->i]).pos);
int realrow = ((itr)->x->key[(itr)->i]).pos.row;
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c"
realrow >= old_extent.row
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c"
realrow >= old_extent.row
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c"
"realrow >= old_extent.row"
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2045, __extension__ __PRETTY_FUNCTION__); }))
# 2045 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2046 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2046 "/home/ubuntu/neovim/src/nvim/marktree.c"
done =
# 2046 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2046 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (realrow == old_extent.row) {
if (delta.col) {
((itr)->x->key[(itr)->i]).pos.col += delta.col;
}
} else {
if (same_line) {
done =
# 2054 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2054 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
if (delta.row) {
((itr)->x->key[(itr)->i]).pos.row += delta.row;
moved =
# 2059 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2059 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
relative(itr->pos, &((itr)->x->key[(itr)->i]).pos);
if (done) {
break;
}
marktree_itr_next_skip(b, itr,
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2065 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
if (((damage).size)) {
qsort((void *)&((damage).items[(0)]), ((damage).size), sizeof(((damage).items[(0)])),
damage_cmp);
for (size_t i = 0; i < ((damage).size); i++) {
Damage d = ((damage).items[(i)]);
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c"
i == 0 || d.id > ((damage).items[(i - 1)]).id
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c"
i == 0 || d.id > ((damage).items[(i - 1)]).id
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c"
"i == 0 || d.id > kv_A(damage, i - 1).id"
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2077, __extension__ __PRETTY_FUNCTION__); }))
# 2077 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (!(d.id & ((uint64_t)1))) {
if (i + 1 < ((damage).size) && ((damage).items[(i + 1)]).id == (d.id | ((uint64_t)1))) {
Damage d2 = ((damage).items[(i + 1)]);
marktree_itr_set_node(b, itr, d.old, d.old_i);
marktree_itr_set_node(b, enditr, d2.old, d2.old_i);
marktree_intersect_pair(b, d.id, itr, enditr,
# 2085 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2085 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
marktree_itr_set_node(b, itr, d.new, d.new_i);
marktree_itr_set_node(b, enditr, d2.new, d2.new_i);
marktree_intersect_pair(b, d.id, itr, enditr,
# 2088 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2088 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
i++;
continue;
}
MarkTreeIter endpos[1];
marktree_lookup(b, d.id | ((uint64_t)1), endpos);
if (endpos->x) {
marktree_itr_set_node(b, itr, d.old, d.old_i);
*enditr = *endpos;
marktree_intersect_pair(b, d.id, itr, enditr,
# 2100 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2100 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
marktree_itr_set_node(b, itr, d.new, d.new_i);
*enditr = *endpos;
marktree_intersect_pair(b, d.id, itr, enditr,
# 2103 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2103 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
} else {
MarkTreeIter startpos[1];
uint64_t start_id = d.id & ~((uint64_t)1);
marktree_lookup(b, start_id, startpos);
if (startpos->x) {
*itr = *startpos;
marktree_itr_set_node(b, enditr, d.old, d.old_i);
marktree_intersect_pair(b, start_id, itr, enditr,
# 2114 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2114 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
*itr = *startpos;
marktree_itr_set_node(b, enditr, d.new, d.new_i);
marktree_intersect_pair(b, start_id, itr, enditr,
# 2117 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2117 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
}
}
do { if ((damage).items != (damage).init_array) { do { void **ptr_ = (void **)&((damage).items); xfree(*ptr_); *ptr_ =
# 2122 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2122 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } } while (0);
return moved;
}
void marktree_move_region(MarkTree *b, int start_row, colnr_T start_col, int extent_row,
colnr_T extent_col, int new_row, colnr_T new_col)
{
MTPos start = { start_row, start_col };
MTPos size = { extent_row, extent_col };
MTPos end = size;
unrelative(start, &end);
MarkTreeIter itr[1] = { 0 };
marktree_itr_get_ext(b, start, itr,
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2135 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
struct { size_t size; size_t capacity; MTKey *items; } saved = { .size = 0, .capacity = 0, .items =
# 2136 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2136 "/home/ubuntu/neovim/src/nvim/marktree.c"
};
while (itr->x) {
MTKey k = marktree_itr_current(itr);
if (!pos_leq(k.pos, end) || (k.pos.row == end.row && k.pos.col == end.col
&& mt_right(k))) {
break;
}
relative(start, &k.pos);
(*((((saved).size == (saved).capacity) ? (((saved).capacity = ((saved).capacity ? (saved).capacity << 1 : 8), (saved).items = xrealloc((saved).items, sizeof((saved).items[0]) * (saved).capacity)), 0) : 0), ((saved).items + ((saved).size++))) = (k));
marktree_del_itr(b, itr,
# 2145 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2145 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
marktree_splice(b, start.row, start.col, size.row, size.col, 0, 0);
MTPos new = { new_row, new_col };
marktree_splice(b, new.row, new.col,
0, 0, size.row, size.col);
for (size_t i = 0; i < ((saved).size); i++) {
MTKey item = ((saved).items[(i)]);
unrelative(new, &item.pos);
marktree_put_key(b, item);
if (mt_paired(item)) {
marktree_restore_pair(b, item);
}
}
do { xfree((saved).items); ((saved).size = (saved).capacity = 0, (saved).items = 0); } while (0);
}
MTKey marktree_lookup_ns(MarkTree *b, uint32_t ns, uint32_t id,
# 2166 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2166 "/home/ubuntu/neovim/src/nvim/marktree.c"
end, MarkTreeIter *itr)
{
return marktree_lookup(b, mt_lookup_id(ns, id, end), itr);
}
static uint64_t pseudo_index(MTNode *x, int i)
{
int off = MT_LOG2_BRANCH * x->level;
uint64_t index = 0;
while (x) {
index |= (uint64_t)(i + 1) << off;
off += MT_LOG2_BRANCH;
i = x->p_idx;
x = x->parent;
}
return index;
}
static uint64_t pseudo_index_for_id(MarkTree *b, uint64_t id,
# 2188 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2188 "/home/ubuntu/neovim/src/nvim/marktree.c"
sloppy)
{
MTNode *n = id2node(b, id);
if (n ==
# 2191 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2191 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
return 0;
}
int i = 0;
if (n->level || !sloppy) {
for (i = 0; i < n->n; i++) {
if (mt_lookup_key(n->key[i]) == id) {
break;
}
}
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c"
i < n->n
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c"
i < n->n
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c"
"i < n->n"
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2202, __extension__ __PRETTY_FUNCTION__); }))
# 2202 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (n->level) {
i += 1;
}
}
return pseudo_index(n, i);
}
MTKey marktree_lookup(MarkTree *b, uint64_t id, MarkTreeIter *itr)
{
MTNode *n = id2node(b, id);
if (n ==
# 2215 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2215 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
if (itr) {
itr->x =
# 2217 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2217 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
return (MTKey) { { -1, -1 }, 0, 0, 0, { .hl = { 0, 0x1000, 0, 0 } } };
}
int i = 0;
for (i = 0; i < n->n; i++) {
if (mt_lookup_key(n->key[i]) == id) {
return marktree_itr_set_node(b, itr, n, i);
}
}
abort();
}
MTKey marktree_itr_set_node(MarkTree *b, MarkTreeIter *itr, MTNode *n, int i)
{
MTKey key = n->key[i];
if (itr) {
itr->i = i;
itr->x = n;
itr->lvl = b->root->level - n->level;
}
while (n->parent !=
# 2239 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2239 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
MTNode *p = n->parent;
i = n->p_idx;
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[i] == n
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c"
p->s->i_ptr[i] == n
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c"
"p->ptr[i] == n"
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2242, __extension__ __PRETTY_FUNCTION__); }))
# 2242 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (itr) {
itr->s[b->root->level - p->level].i = i;
}
if (i > 0) {
unrelative(p->key[i - 1].pos, &key.pos);
}
n = p;
}
if (itr) {
marktree_itr_fix_pos(b, itr);
}
return key;
}
MTPos marktree_get_altpos(MarkTree *b, MTKey mark, MarkTreeIter *itr)
{
return marktree_get_alt(b, mark, itr).pos;
}
MTKey marktree_get_alt(MarkTree *b, MTKey mark, MarkTreeIter *itr)
{
return mt_paired(mark) ? marktree_lookup_ns(b, mark.ns, mark.id, !mt_end(mark), itr) : mark;
}
static void marktree_itr_fix_pos(MarkTree *b, MarkTreeIter *itr)
{
itr->pos = (MTPos){ 0, 0 };
MTNode *x = b->root;
for (int lvl = 0; lvl < itr->lvl; lvl++) {
itr->s[lvl].oldcol = itr->pos.col;
int i = itr->s[lvl].i;
if (i > 0) {
compose(&itr->pos, x->key[i - 1].pos);
}
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->level
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->level
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->level"
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2279, __extension__ __PRETTY_FUNCTION__); }))
# 2279 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
x = x->s->i_ptr[i];
}
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c"
x == itr->x
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c"
x == itr->x
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x == itr->x"
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2282, __extension__ __PRETTY_FUNCTION__); }))
# 2282 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
void marktree_put_test(MarkTree *b, uint32_t ns, uint32_t id, int row, int col,
# 2286 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2286 "/home/ubuntu/neovim/src/nvim/marktree.c"
right_gravity,
int end_row, int end_col,
# 2287 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2287 "/home/ubuntu/neovim/src/nvim/marktree.c"
end_right,
# 2287 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2287 "/home/ubuntu/neovim/src/nvim/marktree.c"
meta_inline)
{
uint16_t flags = mt_flags(right_gravity,
# 2289 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2289 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2289 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2289 "/home/ubuntu/neovim/src/nvim/marktree.c"
,
# 2289 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2289 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
flags |= meta_inline ? (((uint16_t)1) << 12) : 0;
MTKey key = { { row, col }, ns, id, flags, { .hl = { 0, 0x1000, 0, 0 } } };
marktree_put(b, key, end_row, end_col, end_right);
}
# 2298 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2298 "/home/ubuntu/neovim/src/nvim/marktree.c"
mt_right_test(MTKey key)
{
return mt_right(key);
}
void marktree_del_pair_test(MarkTree *b, uint32_t ns, uint32_t id)
{
MarkTreeIter itr[1];
marktree_lookup_ns(b, ns, id,
# 2307 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2307 "/home/ubuntu/neovim/src/nvim/marktree.c"
, itr);
uint64_t other = marktree_del_itr(b, itr,
# 2309 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2309 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c"
other
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c"
other
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c"
"other"
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2310, __extension__ __PRETTY_FUNCTION__); }))
# 2310 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
marktree_lookup(b, other, itr);
marktree_del_itr(b, itr,
# 2312 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2312 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
void marktree_check(MarkTree *b)
{
if (b->root ==
# 2318 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2318 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_keys == 0
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_keys == 0
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->n_keys == 0"
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2319, __extension__ __PRETTY_FUNCTION__); }))
# 2319 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_nodes == 0
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_nodes == 0
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->n_nodes == 0"
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2320, __extension__ __PRETTY_FUNCTION__); }))
# 2320 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->id2node ==
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c"
|| ((&(b->id2node)->set)->h.size) == 0
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->id2node ==
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c"
|| ((&(b->id2node)->set)->h.size) == 0
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->id2node == NULL || map_size(b->id2node) == 0"
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2321, __extension__ __PRETTY_FUNCTION__); }))
# 2321 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
return;
}
MTPos dummy;
# 2326 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2326 "/home/ubuntu/neovim/src/nvim/marktree.c"
last_right =
# 2326 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2326 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
size_t nkeys = marktree_check_node(b, b->root, &dummy, &last_right, b->meta_root);
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_keys == nkeys
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_keys == nkeys
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->n_keys == nkeys"
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2329, __extension__ __PRETTY_FUNCTION__); }))
# 2329 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_keys == ((&(b->id2node)->set)->h.size)
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c"
b->n_keys == ((&(b->id2node)->set)->h.size)
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c"
"b->n_keys == map_size(b->id2node)"
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2330, __extension__ __PRETTY_FUNCTION__); }))
# 2330 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
size_t marktree_check_node(MarkTree *b, MTNode *x, MTPos *last,
# 2338 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2338 "/home/ubuntu/neovim/src/nvim/marktree.c"
*last_right,
const uint32_t *meta_node_ref)
{
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->n <= 2 * MT_BRANCH_FACTOR - 1
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->n <= 2 * MT_BRANCH_FACTOR - 1
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->n <= 2 * T - 1"
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2341, __extension__ __PRETTY_FUNCTION__); }))
# 2341 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->n >= (x != b->root ? MT_BRANCH_FACTOR - 1 : 0)
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->n >= (x != b->root ? MT_BRANCH_FACTOR - 1 : 0)
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->n >= (x != b->root ? T - 1 : 0)"
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2343, __extension__ __PRETTY_FUNCTION__); }))
# 2343 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
size_t n_keys = (size_t)x->n;
for (int i = 0; i < x->n; i++) {
if (x->level) {
n_keys += marktree_check_node(b, x->s->i_ptr[i], last, last_right, x->s->i_meta[i]);
} else {
*last = (MTPos) { 0, 0 };
}
if (i > 0) {
unrelative(x->key[i - 1].pos, last);
}
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c"
pos_leq(*last, x->key[i].pos)
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c"
pos_leq(*last, x->key[i].pos)
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c"
"pos_leq(*last, x->key[i].pos)"
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2355, __extension__ __PRETTY_FUNCTION__); }))
# 2355 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
if (last->row == x->key[i].pos.row && last->col == x->key[i].pos.col) {
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c"
!*last_right || mt_right(x->key[i])
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c"
!*last_right || mt_right(x->key[i])
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c"
"!*last_right || mt_right(x->key[i])"
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2357, __extension__ __PRETTY_FUNCTION__); }))
# 2357 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
*last_right = mt_right(x->key[i]);
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->key[i].pos.col >= 0
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->key[i].pos.col >= 0
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->key[i].pos.col >= 0"
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2360, __extension__ __PRETTY_FUNCTION__); }))
# 2360 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c"
map_get_uint64_tptr_t(b->id2node, mt_lookup_key(x->key[i])) == x
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c"
map_get_uint64_tptr_t(b->id2node, mt_lookup_key(x->key[i])) == x
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c"
"pmap_get(uint64_t)(b->id2node, mt_lookup_key(x->key[i])) == x"
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2361, __extension__ __PRETTY_FUNCTION__); }))
# 2361 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
if (x->level) {
n_keys += marktree_check_node(b, x->s->i_ptr[x->n], last, last_right, x->s->i_meta[x->n]);
unrelative(x->key[x->n - 1].pos, last);
for (int i = 0; i < x->n + 1; i++) {
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i]->parent == x
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i]->parent == x
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->ptr[i]->parent == x"
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2369, __extension__ __PRETTY_FUNCTION__); }))
# 2369 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i]->p_idx == i
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i]->p_idx == i
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->ptr[i]->p_idx == i"
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2370, __extension__ __PRETTY_FUNCTION__); }))
# 2370 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i]->level == x->level - 1
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i]->level == x->level - 1
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->ptr[i]->level == x->level - 1"
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2371, __extension__ __PRETTY_FUNCTION__); }))
# 2371 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
for (int j = 0; j < i; j++) {
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i] != x->s->i_ptr[j]
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c"
x->s->i_ptr[i] != x->s->i_ptr[j]
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c"
"x->ptr[i] != x->ptr[j]"
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2374, __extension__ __PRETTY_FUNCTION__); }))
# 2374 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
} else if (x->n > 0) {
*last = x->key[x->n - 1].pos;
}
uint32_t meta_node[4];
meta_describe_node(meta_node, x);
for (int m = 0; m < kMTMetaCount; m++) {
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void) sizeof ((
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c"
meta_node_ref[m] == meta_node[m]
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ? 1 : 0), __extension__ ({ if (
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c"
meta_node_ref[m] == meta_node[m]
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
) ; else __assert_fail (
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c"
"meta_node_ref[m] == meta_node[m]"
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
, "/home/ubuntu/neovim/src/nvim/marktree.c", 2384, __extension__ __PRETTY_FUNCTION__); }))
# 2384 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
return n_keys;
}
# 2390 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2390 "/home/ubuntu/neovim/src/nvim/marktree.c"
marktree_check_intersections(MarkTree *b)
{
if (!b->root) {
return
# 2393 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2393 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
Map_ptr_tptr_t checked = { { { 0, 0, 0, 0, 0, 0,
# 2395 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2395 "/home/ubuntu/neovim/src/nvim/marktree.c"
},
# 2395 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2395 "/home/ubuntu/neovim/src/nvim/marktree.c"
},
# 2395 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2395 "/home/ubuntu/neovim/src/nvim/marktree.c"
};
mt_recurse_nodes(b->root, &checked);
MarkTreeIter itr[1];
marktree_itr_first(b, itr);
while (
# 2404 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2404 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
MTKey mark = marktree_itr_current(itr);
if (mark.pos.row < 0) {
break;
}
if (mt_start(mark)) {
MarkTreeIter start_itr[1];
MarkTreeIter end_itr[1];
uint64_t end_id = mt_lookup_id(mark.ns, mark.id,
# 2413 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2413 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
MTKey k = marktree_lookup(b, end_id, end_itr);
if (k.pos.row >= 0) {
*start_itr = *itr;
marktree_intersect_pair(b, mt_lookup_key(mark), start_itr, end_itr,
# 2417 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2417 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
}
}
marktree_itr_next(b, itr);
}
# 2426 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2426 "/home/ubuntu/neovim/src/nvim/marktree.c"
status = mt_recurse_nodes_compare(b->root, &checked);
uint64_t *val;
{ uint32_t __i; for (__i = 0; __i < (&checked)->set.h.n_keys; __i++) { (val) = (&checked)->values[__i]; { xfree(val); }; } }
;
do { do { xfree((&(&checked)->set)->keys); xfree((&(&checked)->set)->h.hash); *(&(&checked)->set) = (Set_ptr_t) { { 0, 0, 0, 0, 0, 0,
# 2432 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2432 "/home/ubuntu/neovim/src/nvim/marktree.c"
},
# 2432 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2432 "/home/ubuntu/neovim/src/nvim/marktree.c"
}; } while (0); do { void **ptr_ = (void **)&((&checked)->values); xfree(*ptr_); *ptr_ =
# 2432 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2432 "/home/ubuntu/neovim/src/nvim/marktree.c"
; (void)(*ptr_); } while (0); } while (0);
return status;
}
void mt_recurse_nodes(MTNode *x, Map_ptr_tptr_t *checked)
{
if (((x->intersect).size)) {
(*((((x->intersect).size == (x->intersect).capacity) ? (((x->intersect).capacity = (((x->intersect).capacity << 1) > ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0]))))) ? ((x->intersect).capacity << 1) : ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0])))))), (x->intersect).items = ((x->intersect).capacity == ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0]))))) ? ((x->intersect).items == (x->intersect).init_array ? (x->intersect).items : _memcpy_free((x->intersect).init_array, (x->intersect).items, (x->intersect).size * sizeof((x->intersect).items[0]))) : ((x->intersect).items == (x->intersect).init_array ? memcpy(xmalloc((x->intersect).capacity * sizeof((x->intersect).items[0])), (x->intersect).items, (x->intersect).size * sizeof((x->intersect).items[0])) : xrealloc((x->intersect).items, (x->intersect).capacity * sizeof((x->intersect).items[0]))))), 0) : 0), ((x->intersect).items + ((x->intersect).size++))) = ((uint64_t)-1));
uint64_t *val;
if (x->intersect.items == x->intersect.init_array) {
val = xmemdup(x->intersect.items, x->intersect.size * sizeof(*x->intersect.items));
} else {
val = x->intersect.items;
}
map_put_ptr_tptr_t(checked, x, val);
((x->intersect).capacity = ((sizeof((x->intersect).init_array)/sizeof(((x->intersect).init_array)[0])) / ((size_t)(!(sizeof((x->intersect).init_array) % sizeof(((x->intersect).init_array)[0]))))), (x->intersect).size = 0, (x->intersect).items = (x->intersect).init_array);
}
if (x->level) {
for (int i = 0; i < x->n + 1; i++) {
mt_recurse_nodes(x->s->i_ptr[i], checked);
}
}
}
# 2458 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2458 "/home/ubuntu/neovim/src/nvim/marktree.c"
mt_recurse_nodes_compare(MTNode *x, Map_ptr_tptr_t *checked)
{
uint64_t *ref = map_get_ptr_tptr_t(checked, x);
if (ref !=
# 2461 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2461 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
for (size_t i = 0;; i++) {
if (ref[i] == (uint64_t)-1) {
if (i != ((x->intersect).size)) {
return
# 2465 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2465 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
break;
} else {
if (((x->intersect).size) <= i || ref[i] != ((x->intersect).items[(i)])) {
return
# 2471 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2471 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
}
} else {
if (((x->intersect).size)) {
return
# 2477 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2477 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
if (x->level) {
for (int i = 0; i < x->n + 1; i++) {
if (!mt_recurse_nodes_compare(x->s->i_ptr[i], checked)) {
return
# 2484 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
0
# 2484 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
}
}
return
# 2489 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
1
# 2489 "/home/ubuntu/neovim/src/nvim/marktree.c"
;
}
# 2499 "/home/ubuntu/neovim/src/nvim/marktree.c"
String mt_inspect(MarkTree *b,
# 2499 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2499 "/home/ubuntu/neovim/src/nvim/marktree.c"
keys,
# 2499 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2499 "/home/ubuntu/neovim/src/nvim/marktree.c"
dot)
{
garray_T ga[1];
ga_init(ga, (int)sizeof(char), 80);
MTPos p = { 0, 0 };
if (b->root) {
if (dot) {
ga_concat(ga, (char *)("digraph D {\n\n"));
mt_inspect_dotfile_node(b, ga, b->root, p,
# 2507 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2507 "/home/ubuntu/neovim/src/nvim/marktree.c"
);
ga_concat(ga, (char *)("\n}"));
} else {
mt_inspect_node(b, ga, keys, b->root, p);
}
}
return ga_take_string(ga);
}
static inline uint64_t mt_dbg_id(uint64_t id)
{
return (id >> 1) & 0xffffffff;
}
static void mt_inspect_node(MarkTree *b, garray_T *ga,
# 2521 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
_Bool
# 2521 "/home/ubuntu/neovim/src/nvim/marktree.c"
keys, MTNode *n, MTPos off)
{
static char buf[1024];
ga_concat(ga, (char *)("["));
if (keys && ((n->intersect).size)) {
for (size_t i = 0; i < ((n->intersect).size); i++) {
ga_concat(ga, (char *)(i == 0 ? "{" : ";"));
snprintf(buf, sizeof(buf), "%"
# 2529 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
"l" "u"
# 2529 "/home/ubuntu/neovim/src/nvim/marktree.c"
, mt_dbg_id(((n->intersect).items[(i)]))); ga_concat(ga, (char *)(buf));;
}
ga_concat(ga, (char *)("},"));
}
if (n->level) {
mt_inspect_node(b, ga, keys, n->s->i_ptr[0], off);
}
for (int i = 0; i < n->n; i++) {
MTPos p = n->key[i].pos;
unrelative(off, &p);
snprintf(buf, sizeof(buf), "%d/%d", p.row, p.col); ga_concat(ga, (char *)(buf));;
if (keys) {
MTKey key = n->key[i];
ga_concat(ga, (char *)(":"));
if (mt_start(key)) {
ga_concat(ga, (char *)("<"));
}
snprintf(buf, sizeof(buf), "%"
# 2547 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
"u"
# 2547 "/home/ubuntu/neovim/src/nvim/marktree.c"
, key.id); ga_concat(ga, (char *)(buf));;
if (mt_end(key)) {
ga_concat(ga, (char *)(">"));
}
}
if (n->level) {
mt_inspect_node(b, ga, keys, n->s->i_ptr[i + 1], p);
} else {
ga_concat(ga, ",");
}
}
ga_concat(ga, "]");
}
static void mt_inspect_dotfile_node(MarkTree *b, garray_T *ga, MTNode *n, MTPos off, char *parent)
{
static char buf[1024];
char namebuf[64];
if (parent !=
# 2565 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
((void *)0)
# 2565 "/home/ubuntu/neovim/src/nvim/marktree.c"
) {
snprintf(namebuf, sizeof namebuf, "%s_%c%d", parent, 'a' + n->level, n->p_idx);
} else {
snprintf(namebuf, sizeof namebuf, "MTNode");
}
snprintf(buf, sizeof(buf), " %s[shape=plaintext, label=<\n", namebuf); ga_concat(ga, (char *)(buf));;
ga_concat(ga, (char *)(" <table border='0' cellborder='1' cellspacing='0'>\n"));
if (((n->intersect).size)) {
ga_concat(ga, (char *)(" <tr><td>"));
for (size_t i = 0; i < ((n->intersect).size); i++) {
if (i > 0) {
ga_concat(ga, (char *)(", "));
}
snprintf(buf, sizeof(buf), "%"
# 2579 "/home/ubuntu/neovim/src/nvim/marktree.c" 3 4
"l" "u"
# 2579 "/home/ubuntu/neovim/src/nvim/marktree.c"
, mt_dbg_id(((n->intersect).items[(i)]))); ga_concat(ga, (char *)(buf));;
}
ga_concat(ga, (char *)("</td></tr>\n"));
}
ga_concat(ga, (char *)(" <tr><td>"));
for (int i = 0; i < n->n; i++) {
MTKey k = n->key[i];
if (i > 0) {
ga_concat(ga, (char *)(", "));
}
snprintf(buf, sizeof(buf), "%d", k.id); ga_concat(ga, (char *)(buf));;
if (mt_paired(k)) {
ga_concat(ga, (char *)(mt_end(k) ? "e" : "s"));
}
}
ga_concat(ga, (char *)("</td></tr>\n"));
ga_concat(ga, (char *)(" </table>\n"));
ga_concat(ga, (char *)(">];\n"));
if (parent) {
snprintf(buf, sizeof(buf), " %s -> %s\n", parent, namebuf); ga_concat(ga, (char *)(buf));;
}
if (n->level) {
mt_inspect_dotfile_node(b, ga, n->s->i_ptr[0], off, namebuf);
}
for (int i = 0; i < n->n; i++) {
MTPos p = n->key[i].pos;
unrelative(off, &p);
if (n->level) {
mt_inspect_dotfile_node(b, ga, n->s->i_ptr[i + 1], p, namebuf);
}
}
}