|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383 |
- /**
- * Copyright 2019-2020 Huawei Technologies Co., Ltd
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- #include "mmpa/mmpa_api.h"
-
- #include "common/types.h"
- #include "common/util.h"
-
- using namespace domi;
-
- INT32 mmOpen(const CHAR *path_name, INT32 flags) {
- INT32 fd = HANDLE_INVALID_VALUE;
-
- if (NULL == path_name) {
- syslog(LOG_ERR, "The path name pointer is null.\r\n");
- return EN_INVALID_PARAM;
- }
- if (0 == (flags & (O_RDONLY | O_WRONLY | O_RDWR | O_CREAT))) {
- syslog(LOG_ERR, "The file open mode is error.\r\n");
- return EN_INVALID_PARAM;
- }
-
- fd = open(path_name, flags);
- if (fd < MMPA_ZERO) {
- syslog(LOG_ERR, "Open file failed, errno is %s.\r\n", strerror(errno));
- return EN_ERROR;
- }
- return fd;
- }
-
- INT32 mmOpen2(const CHAR *path_name, INT32 flags, MODE mode) {
- INT32 fd = HANDLE_INVALID_VALUE;
-
- if (NULL == path_name) {
- syslog(LOG_ERR, "The path name pointer is null.\r\n");
- return EN_INVALID_PARAM;
- }
- if (MMPA_ZERO == (flags & (O_RDONLY | O_WRONLY | O_RDWR | O_CREAT))) {
- syslog(LOG_ERR, "The file open mode is error.\r\n");
- return EN_INVALID_PARAM;
- }
- if ((MMPA_ZERO == (mode & (S_IRUSR | S_IREAD))) && (MMPA_ZERO == (mode & (S_IWUSR | S_IWRITE)))) {
- syslog(LOG_ERR, "The permission mode of the file is error.\r\n");
- return EN_INVALID_PARAM;
- }
-
- fd = open(path_name, flags, mode);
- if (fd < MMPA_ZERO) {
- syslog(LOG_ERR, "Open file failed, errno is %s.\r\n", strerror(errno));
- return EN_ERROR;
- }
- return fd;
- }
-
- INT32 mmClose(INT32 fd) {
- INT32 result = EN_OK;
-
- if (fd < MMPA_ZERO) {
- syslog(LOG_ERR, "The file fd is invalid.\r\n");
- return EN_INVALID_PARAM;
- }
-
- result = close(fd);
- if (EN_OK != result) {
- syslog(LOG_ERR, "Close the file failed, errno is %s.\r\n", strerror(errno));
- return EN_ERROR;
- }
- return EN_OK;
- }
-
- mmSsize_t mmWrite(INT32 fd, VOID *mm_buf, UINT32 mm_count) {
- mmSsize_t result = MMPA_ZERO;
-
- if ((fd < MMPA_ZERO) || (NULL == mm_buf)) {
- syslog(LOG_ERR, "Input parameter invalid.\r\n");
- return EN_INVALID_PARAM;
- }
-
- result = write(fd, mm_buf, (size_t)mm_count);
- if (result < MMPA_ZERO) {
- syslog(LOG_ERR, "Write buf to file failed, errno is %s.\r\n", strerror(errno));
- return EN_ERROR;
- }
- return result;
- }
-
- mmSsize_t mmRead(INT32 fd, VOID *mm_buf, UINT32 mm_count) {
- mmSsize_t result = MMPA_ZERO;
-
- if ((fd < MMPA_ZERO) || (NULL == mm_buf)) {
- syslog(LOG_ERR, "Input parameter invalid.\r\n");
- return EN_INVALID_PARAM;
- }
-
- result = read(fd, mm_buf, (size_t)mm_count);
- if (result < MMPA_ZERO) {
- syslog(LOG_ERR, "Read file to buf failed, errno is %s.\r\n", strerror(errno));
- return EN_ERROR;
- }
- return result;
- }
-
- INT32 mmMkdir(const CHAR *lp_path_name, mmMode_t mode) {
- INT32 t_mode = mode;
- INT32 ret = EN_OK;
-
- if (NULL == lp_path_name) {
- syslog(LOG_ERR, "The input path is null.\r\n");
- return EN_INVALID_PARAM;
- }
-
- if (t_mode < MMPA_ZERO) {
- syslog(LOG_ERR, "The input mode is wrong.\r\n");
- return EN_INVALID_PARAM;
- }
-
- ret = mkdir(lp_path_name, mode);
-
- if (EN_OK != ret) {
- syslog(LOG_ERR, "Failed to create the directory, the ret is %s.\r\n", strerror(errno));
- return EN_ERROR;
- }
- return EN_OK;
- }
-
- void *memCpyS(void *dest, const void *src, UINT32 count) {
- char *tmp = (char *)dest;
- char *s = (char *)src;
-
- if (MMPA_ZERO == count) {
- return dest;
- }
-
- while (count--) {
- *tmp++ = *s++;
- }
- return dest;
- }
-
- INT32 mmRmdir(const CHAR *lp_path_name) { return rmdir(lp_path_name); }
-
- mmTimespec mmGetTickCount() {
- mmTimespec rts;
- struct timespec ts = {0};
- (void)clock_gettime(CLOCK_MONOTONIC_RAW, &ts);
- rts.tv_sec = ts.tv_sec;
- rts.tv_nsec = ts.tv_nsec;
- return rts;
- }
-
- INT32 mmGetTid() {
- INT32 ret = (INT32)syscall(SYS_gettid);
-
- if (ret < MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return ret;
- }
-
- INT32 mmAccess(const CHAR *path_name) {
- if (path_name == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = access(path_name, F_OK);
- if (ret != EN_OK) {
- return EN_ERROR;
- }
- return EN_OK;
- }
-
- INT32 mmStatGet(const CHAR *path, mmStat_t *buffer) {
- if ((path == NULL) || (buffer == NULL)) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = stat(path, buffer);
- if (ret != EN_OK) {
- return EN_ERROR;
- }
- return EN_OK;
- }
-
- INT32 mmGetFileSize(const CHAR *file_name, ULONGLONG *length) {
- if ((file_name == NULL) || (length == NULL)) {
- return EN_INVALID_PARAM;
- }
- struct stat file_stat;
- (void)memset_s(&file_stat, sizeof(file_stat), 0, sizeof(file_stat)); // unsafe_function_ignore: memset
- INT32 ret = lstat(file_name, &file_stat);
- if (ret < MMPA_ZERO) {
- return EN_ERROR;
- }
- *length = (ULONGLONG)file_stat.st_size;
- return EN_OK;
- }
-
- INT32 mmScandir(const CHAR *path, mmDirent ***entryList, mmFilter filterFunc, mmSort sort)
- {
- return 0;
- }
-
- VOID mmScandirFree(mmDirent **entryList, INT32 count)
- {
- }
-
- INT32 mmAccess2(const CHAR *pathName, INT32 mode)
- {
- if (pathName == NULL) {
- return EN_INVALID_PARAM;
- }
- INT32 ret = access(pathName, mode);
- if (ret != EN_OK) {
- return EN_ERROR;
- }
- return 0;
- }
-
- INT32 mmGetTimeOfDay(mmTimeval *timeVal, mmTimezone *timeZone)
- {
- return 0;
- }
-
- INT32 mmRealPath(const CHAR *path, CHAR *realPath, INT32 realPathLen)
- {
- INT32 ret = EN_OK;
- if (path == nullptr || realPath == nullptr || realPathLen < MMPA_MAX_PATH) {
- return EN_INVALID_PARAM;
- }
-
- char *ptr = realpath(path, realPath);
- if (ptr == nullptr) {
- ret = EN_ERROR;
- }
- return ret;
- }
-
- INT32 mmRWLockInit(mmRWLock_t *rwLock)
- {
- if (rwLock == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = pthread_rwlock_init(rwLock, NULL);
- if (ret != MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return EN_OK;
- }
-
- INT32 mmRWLockRDLock(mmRWLock_t *rwLock)
- {
- if (rwLock == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = pthread_rwlock_rdlock(rwLock);
- if (ret != MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return EN_OK;
- }
-
- INT32 mmRWLockWRLock(mmRWLock_t *rwLock)
- {
- if (rwLock == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = pthread_rwlock_wrlock(rwLock);
- if (ret != MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return EN_OK;
- }
-
- INT32 mmRDLockUnLock(mmRWLock_t *rwLock)
- {
- if (rwLock == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = pthread_rwlock_unlock(rwLock);
- if (ret != MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return EN_OK;
- }
-
- INT32 mmWRLockUnLock(mmRWLock_t *rwLock)
- {
- if (rwLock == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = pthread_rwlock_unlock(rwLock);
- if (ret != MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return EN_OK;
- }
-
- INT32 mmRWLockDestroy(mmRWLock_t *rwLock)
- {
- if (rwLock == NULL) {
- return EN_INVALID_PARAM;
- }
-
- INT32 ret = pthread_rwlock_destroy(rwLock);
- if (ret != MMPA_ZERO) {
- return EN_ERROR;
- }
-
- return EN_OK;
- }
-
- INT32 mmGetErrorCode()
- {
- return 0;
- }
-
- INT32 mmIsDir(const CHAR *fileName)
- {
- return 0;
- }
-
- INT32 mmGetEnv(const CHAR *name, CHAR *value, UINT32 len)
- {
- const char *env = getenv(name);
- if (env != nullptr) {
- strcpy(value, env);
- }
- return 0;
- }
-
- INT32 mmDlclose(VOID *handle)
- {
- return 0;
- }
-
- CHAR *mmDlerror()
- {
- return dlerror();
- }
-
- INT32 mmDladdr(VOID *addr, mmDlInfo *info)
- {
- return -1;
- }
-
- VOID *mmDlopen(const CHAR *fileName, INT32 mode)
- {
- return NULL;
- }
-
- VOID *mmDlsym(VOID *handle, const CHAR *funcName)
- {
- return NULL;
- }
-
- INT32 mmGetPid()
- {
- return (INT32)getpid();
- }
|