118092ddc866425598abf4521d9ed4eda9573fdaaKenny Root/* 218092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * Copyright (C) 2010 The Android Open Source Project 318092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * 418092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 518092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * you may not use this file except in compliance with the License. 618092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * You may obtain a copy of the License at 718092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * 818092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * http://www.apache.org/licenses/LICENSE-2.0 918092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * 1018092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * Unless required by applicable law or agreed to in writing, software 1118092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * distributed under the License is distributed on an "AS IS" BASIS, 1218092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1318092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * See the License for the specific language governing permissions and 1418092ddc866425598abf4521d9ed4eda9573fdaaKenny Root * limitations under the License. 1518092ddc866425598abf4521d9ed4eda9573fdaaKenny Root */ 1618092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 1718092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#ifndef __LIB_UTILS_COMPAT_H 1818092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#define __LIB_UTILS_COMPAT_H 1918092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 2018092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#include <unistd.h> 2118092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 2218092ddc866425598abf4521d9ed4eda9573fdaaKenny Root/* Compatibility definitions for non-Linux (i.e., BSD-based) hosts. */ 2318092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#ifndef HAVE_OFF64_T 2418092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#if _FILE_OFFSET_BITS < 64 2518092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#error "_FILE_OFFSET_BITS < 64; large files are not supported on this platform" 2618092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#endif /* _FILE_OFFSET_BITS < 64 */ 2718092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 2818092ddc866425598abf4521d9ed4eda9573fdaaKenny Roottypedef off_t off64_t; 2918092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 3018092ddc866425598abf4521d9ed4eda9573fdaaKenny Rootstatic inline off64_t lseek64(int fd, off64_t offset, int whence) { 3118092ddc866425598abf4521d9ed4eda9573fdaaKenny Root return lseek(fd, offset, whence); 3218092ddc866425598abf4521d9ed4eda9573fdaaKenny Root} 3318092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 3418092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#ifdef HAVE_PREAD 3518092ddc866425598abf4521d9ed4eda9573fdaaKenny Rootstatic inline ssize_t pread64(int fd, void* buf, size_t nbytes, off64_t offset) { 3618092ddc866425598abf4521d9ed4eda9573fdaaKenny Root return pread(fd, buf, nbytes, offset); 3718092ddc866425598abf4521d9ed4eda9573fdaaKenny Root} 3818092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#endif 3918092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 4018092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#endif /* !HAVE_OFF64_T */ 4118092ddc866425598abf4521d9ed4eda9573fdaaKenny Root 4218092ddc866425598abf4521d9ed4eda9573fdaaKenny Root#endif /* __LIB_UTILS_COMPAT_H */ 43