10e98b08fSopenharmony_ci/* 20e98b08fSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 30e98b08fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 40e98b08fSopenharmony_ci * you may not use this file except in compliance with the License. 50e98b08fSopenharmony_ci * You may obtain a copy of the License at 60e98b08fSopenharmony_ci * 70e98b08fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 80e98b08fSopenharmony_ci * 90e98b08fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 100e98b08fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 110e98b08fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 120e98b08fSopenharmony_ci * See the License for the specific language governing permissions and 130e98b08fSopenharmony_ci * limitations under the License. 140e98b08fSopenharmony_ci */ 150e98b08fSopenharmony_ci#include <fcntl.h> 160e98b08fSopenharmony_ci#include <unistd.h> 170e98b08fSopenharmony_ci#include <sys/stat.h> 180e98b08fSopenharmony_ci 190e98b08fSopenharmony_ci#include "hal_file.h" 200e98b08fSopenharmony_ci 210e98b08fSopenharmony_ciint HalFileOpen(const char *path, int oflag, int mode) 220e98b08fSopenharmony_ci{ 230e98b08fSopenharmony_ci (void)mode; 240e98b08fSopenharmony_ci return open(path, oflag); 250e98b08fSopenharmony_ci} 260e98b08fSopenharmony_ci 270e98b08fSopenharmony_ciint HalFileClose(int fd) 280e98b08fSopenharmony_ci{ 290e98b08fSopenharmony_ci return close(fd); 300e98b08fSopenharmony_ci} 310e98b08fSopenharmony_ci 320e98b08fSopenharmony_ciint HalFileRead(int fd, char *buf, unsigned int len) 330e98b08fSopenharmony_ci{ 340e98b08fSopenharmony_ci return read(fd, buf, len); 350e98b08fSopenharmony_ci} 360e98b08fSopenharmony_ci 370e98b08fSopenharmony_ciint HalFileWrite(int fd, const char *buf, unsigned int len) 380e98b08fSopenharmony_ci{ 390e98b08fSopenharmony_ci return write(fd, buf, len); 400e98b08fSopenharmony_ci} 410e98b08fSopenharmony_ci 420e98b08fSopenharmony_ciint HalFileDelete(const char *path) 430e98b08fSopenharmony_ci{ 440e98b08fSopenharmony_ci return unlink(path); 450e98b08fSopenharmony_ci} 460e98b08fSopenharmony_ci 470e98b08fSopenharmony_ciint HalFileStat(const char *path, unsigned int *fileSize) 480e98b08fSopenharmony_ci{ 490e98b08fSopenharmony_ci struct stat info = { 0 }; 500e98b08fSopenharmony_ci int ret = stat(path, &info); 510e98b08fSopenharmony_ci if (ret < 0) { 520e98b08fSopenharmony_ci return ret; 530e98b08fSopenharmony_ci } else { 540e98b08fSopenharmony_ci return info.st_size; 550e98b08fSopenharmony_ci } 560e98b08fSopenharmony_ci} 570e98b08fSopenharmony_ci 580e98b08fSopenharmony_ciint HalFileSeek(int fd, int offset, unsigned int whence) 590e98b08fSopenharmony_ci{ 600e98b08fSopenharmony_ci return lseek(fd, offset, whence); 610e98b08fSopenharmony_ci}