patch 8.2.0875: getting attributes for directory entries is slow

Problem:    Getting attributes for directory entries is slow.
Solution:   Add readdirex(). (Ken Takata, closes #5619)
diff --git a/src/proto/fileio.pro b/src/proto/fileio.pro
index c7b66ed..2171e6b 100644
--- a/src/proto/fileio.pro
+++ b/src/proto/fileio.pro
@@ -31,7 +31,7 @@
 void buf_reload(buf_T *buf, int orig_mode);
 void buf_store_time(buf_T *buf, stat_T *st, char_u *fname);
 void write_lnum_adjust(linenr_T offset);
-int readdir_core(garray_T *gap, char_u *path, void *context, int (*checkitem)(void *context, char_u *name));
+int readdir_core(garray_T *gap, char_u *path, int withattr, void *context, int (*checkitem)(void *context, void *item));
 int delete_recursive(char_u *name);
 void vim_deltempdir(void);
 char_u *vim_tempname(int extra_char, int keep);
diff --git a/src/proto/filepath.pro b/src/proto/filepath.pro
index bfb3ffb..b0a6de9 100644
--- a/src/proto/filepath.pro
+++ b/src/proto/filepath.pro
@@ -10,9 +10,11 @@
 void f_findfile(typval_T *argvars, typval_T *rettv);
 void f_fnamemodify(typval_T *argvars, typval_T *rettv);
 void f_getcwd(typval_T *argvars, typval_T *rettv);
+char_u *getfpermst(stat_T *st, char_u *perm);
 void f_getfperm(typval_T *argvars, typval_T *rettv);
 void f_getfsize(typval_T *argvars, typval_T *rettv);
 void f_getftime(typval_T *argvars, typval_T *rettv);
+char_u *getftypest(stat_T *st);
 void f_getftype(typval_T *argvars, typval_T *rettv);
 void f_glob(typval_T *argvars, typval_T *rettv);
 void f_glob2regpat(typval_T *argvars, typval_T *rettv);
@@ -21,6 +23,7 @@
 void f_mkdir(typval_T *argvars, typval_T *rettv);
 void f_pathshorten(typval_T *argvars, typval_T *rettv);
 void f_readdir(typval_T *argvars, typval_T *rettv);
+void f_readdirex(typval_T *argvars, typval_T *rettv);
 void f_readfile(typval_T *argvars, typval_T *rettv);
 void f_resolve(typval_T *argvars, typval_T *rettv);
 void f_tempname(typval_T *argvars, typval_T *rettv);