116c4d154dca43c662571129af31b27433b919a32Adam Lesinski/*
216c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Copyright (C) 2005 The Android Open Source Project
316c4d154dca43c662571129af31b27433b919a32Adam Lesinski *
416c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
516c4d154dca43c662571129af31b27433b919a32Adam Lesinski * you may not use this file except in compliance with the License.
616c4d154dca43c662571129af31b27433b919a32Adam Lesinski * You may obtain a copy of the License at
716c4d154dca43c662571129af31b27433b919a32Adam Lesinski *
816c4d154dca43c662571129af31b27433b919a32Adam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
916c4d154dca43c662571129af31b27433b919a32Adam Lesinski *
1016c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Unless required by applicable law or agreed to in writing, software
1116c4d154dca43c662571129af31b27433b919a32Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
1216c4d154dca43c662571129af31b27433b919a32Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1316c4d154dca43c662571129af31b27433b919a32Adam Lesinski * See the License for the specific language governing permissions and
1416c4d154dca43c662571129af31b27433b919a32Adam Lesinski * limitations under the License.
1516c4d154dca43c662571129af31b27433b919a32Adam Lesinski */
1616c4d154dca43c662571129af31b27433b919a32Adam Lesinski
1716c4d154dca43c662571129af31b27433b919a32Adam Lesinski#include <sys/types.h>
1816c4d154dca43c662571129af31b27433b919a32Adam Lesinski
1916c4d154dca43c662571129af31b27433b919a32Adam Lesinski//
2016c4d154dca43c662571129af31b27433b919a32Adam Lesinski// Handy utility functions and portability code.
2116c4d154dca43c662571129af31b27433b919a32Adam Lesinski//
2216c4d154dca43c662571129af31b27433b919a32Adam Lesinski#ifndef _LIBS_ANDROID_FW_MISC_H
2316c4d154dca43c662571129af31b27433b919a32Adam Lesinski#define _LIBS_ANDROID_FW_MISC_H
2416c4d154dca43c662571129af31b27433b919a32Adam Lesinski
2516c4d154dca43c662571129af31b27433b919a32Adam Lesinskinamespace android {
2616c4d154dca43c662571129af31b27433b919a32Adam Lesinski
2716c4d154dca43c662571129af31b27433b919a32Adam Lesinski/*
2816c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Some utility functions for working with files.  These could be made
2916c4d154dca43c662571129af31b27433b919a32Adam Lesinski * part of a "File" class.
3016c4d154dca43c662571129af31b27433b919a32Adam Lesinski */
3116c4d154dca43c662571129af31b27433b919a32Adam Lesinskitypedef enum FileType {
3216c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeUnknown = 0,
3316c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeNonexistent,       // i.e. ENOENT
3416c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeRegular,
3516c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeDirectory,
3616c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeCharDev,
3716c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeBlockDev,
3816c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeFifo,
3916c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeSymlink,
4016c4d154dca43c662571129af31b27433b919a32Adam Lesinski    kFileTypeSocket,
4116c4d154dca43c662571129af31b27433b919a32Adam Lesinski} FileType;
4216c4d154dca43c662571129af31b27433b919a32Adam Lesinski/* get the file's type; follows symlinks */
4316c4d154dca43c662571129af31b27433b919a32Adam LesinskiFileType getFileType(const char* fileName);
4416c4d154dca43c662571129af31b27433b919a32Adam Lesinski/* get the file's modification date; returns -1 w/errno set on failure */
4516c4d154dca43c662571129af31b27433b919a32Adam Lesinskitime_t getFileModDate(const char* fileName);
4616c4d154dca43c662571129af31b27433b919a32Adam Lesinski
4716c4d154dca43c662571129af31b27433b919a32Adam Lesinski}; // namespace android
4816c4d154dca43c662571129af31b27433b919a32Adam Lesinski
4916c4d154dca43c662571129af31b27433b919a32Adam Lesinski#endif // _LIBS_ANDROID_FW_MISC_H
50