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}