#include "include/core/SkString.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkTFitsIn.h"
#include "include/private/base/SkTemplates.h"
#include "src/core/SkOSFile.h"
#include <dirent.h>
#include <new>
#include <stdio.h>
#include <string.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#ifdef SK_BUILD_FOR_IOS
#include "src/ports/SkOSFile_ios.h"
#endif
void sk_fsync(FILE* f) { … }
bool sk_exists(const char *path, SkFILE_Flags flags) { … }
SkFILEID;
static bool sk_ino(FILE* a, SkFILEID* id) { … }
bool sk_fidentical(FILE* a, FILE* b) { … }
void sk_fmunmap(const void* addr, size_t length) { … }
void* sk_fdmmap(int fd, size_t* size) { … }
int sk_fileno(FILE* f) { … }
void* sk_fmmap(FILE* f, size_t* size) { … }
size_t sk_qread(FILE* file, void* buffer, size_t count, size_t offset) { … }
struct SkOSFileIterData { … };
static_assert …;
SkOSFile::Iter::Iter() { … }
SkOSFile::Iter::Iter(const char path[], const char suffix[]) { … }
SkOSFile::Iter::~Iter() { … }
void SkOSFile::Iter::reset(const char path[], const char suffix[]) { … }
static bool issuffixfor(const SkString& suffix, const char str[]) { … }
bool SkOSFile::Iter::next(SkString* name, bool getDir) { … }