Compare commits

..

No commits in common. "master" and "OpenHarmony_debug_20240717" have entirely different histories.

16 changed files with 23 additions and 54 deletions

View File

@ -61,7 +61,7 @@ static ssize_t MemMap(struct file *filep, LosVmMapRegion *region)
VADDR_T vaddr = region->range.base; VADDR_T vaddr = region->range.base;
LosVmSpace *space = LOS_SpaceGet(vaddr); LosVmSpace *space = LOS_SpaceGet(vaddr);
if (((paddr + size) >= SYS_MEM_BASE) && (paddr < SYS_MEM_END)) { if ((paddr >= SYS_MEM_BASE) && (paddr < SYS_MEM_END)) {
return -EINVAL; return -EINVAL;
} }

View File

@ -6340,7 +6340,7 @@ diff -Nupr old/fs/jffs2/summary.h new/fs/jffs2/summary.h
diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
--- old/fs/jffs2/super.c 2022-05-09 17:22:53.000000000 +0800 --- old/fs/jffs2/super.c 2022-05-09 17:22:53.000000000 +0800
+++ new/fs/jffs2/super.c 2022-05-09 20:09:32.170000000 +0800 +++ new/fs/jffs2/super.c 2022-05-09 20:09:32.170000000 +0800
@@ -9,434 +9,188 @@ @@ -9,433 +9,188 @@
* *
*/ */
@ -6418,7 +6418,6 @@ diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
+ c->cleanmarker_size = sizeof(struct jffs2_unknown_node); + c->cleanmarker_size = sizeof(struct jffs2_unknown_node);
- mutex_init(&f->sem); - mutex_init(&f->sem);
- f->target = NULL;
- inode_init_once(&f->vfs_inode); - inode_init_once(&f->vfs_inode);
-} -}
+ ret = jffs2_do_mount_fs(c); + ret = jffs2_do_mount_fs(c);

View File

@ -220,18 +220,14 @@ int epoll_close(int epfd)
{ {
struct epoll_head *epHead = NULL; struct epoll_head *epHead = NULL;
(VOID)pthread_mutex_lock(&g_epollMutex);
epHead = EpollGetDataBuff(epfd); epHead = EpollGetDataBuff(epfd);
if (epHead == NULL) { if (epHead == NULL) {
(VOID)pthread_mutex_unlock(&g_epollMutex);
set_errno(EBADF); set_errno(EBADF);
return -1; return -1;
} }
DoEpollClose(epHead); DoEpollClose(epHead);
int ret = EpollFreeSysFd(epfd); return EpollFreeSysFd(epfd);
(VOID)pthread_mutex_unlock(&g_epollMutex);
return ret;
} }
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev) int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
@ -240,16 +236,15 @@ int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
int i; int i;
int ret = -1; int ret = -1;
(VOID)pthread_mutex_lock(&g_epollMutex);
epHead = EpollGetDataBuff(epfd); epHead = EpollGetDataBuff(epfd);
if (epHead == NULL) { if (epHead == NULL) {
set_errno(EBADF); set_errno(EBADF);
goto OUT_RELEASE; return ret;
} }
if (ev == NULL) { if (ev == NULL) {
set_errno(EINVAL); set_errno(EINVAL);
goto OUT_RELEASE; return -1;
} }
switch (op) { switch (op) {
@ -257,19 +252,18 @@ int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
ret = CheckFdExist(epHead, fd); ret = CheckFdExist(epHead, fd);
if (ret == -1) { if (ret == -1) {
set_errno(EEXIST); set_errno(EEXIST);
goto OUT_RELEASE; return -1;
} }
if (epHead->nodeCount == EPOLL_DEFAULT_SIZE) { if (epHead->nodeCount == EPOLL_DEFAULT_SIZE) {
set_errno(ENOMEM); set_errno(ENOMEM);
goto OUT_RELEASE; return -1;
} }
epHead->evs[epHead->nodeCount].events = ev->events | POLLERR | POLLHUP; epHead->evs[epHead->nodeCount].events = ev->events | POLLERR | POLLHUP;
epHead->evs[epHead->nodeCount].data.fd = fd; epHead->evs[epHead->nodeCount].data.fd = fd;
epHead->nodeCount++; epHead->nodeCount++;
ret = 0; return 0;
break;
case EPOLL_CTL_DEL: case EPOLL_CTL_DEL:
for (i = 0; i < epHead->nodeCount; i++) { for (i = 0; i < epHead->nodeCount; i++) {
if (epHead->evs[i].data.fd != fd) { if (epHead->evs[i].data.fd != fd) {
@ -281,29 +275,23 @@ int epoll_ctl(int epfd, int op, int fd, struct epoll_event *ev)
epHead->nodeCount - i); epHead->nodeCount - i);
} }
epHead->nodeCount--; epHead->nodeCount--;
ret = 0; return 0;
goto OUT_RELEASE;
} }
set_errno(ENOENT); set_errno(ENOENT);
break; return -1;
case EPOLL_CTL_MOD: case EPOLL_CTL_MOD:
for (i = 0; i < epHead->nodeCount; i++) { for (i = 0; i < epHead->nodeCount; i++) {
if (epHead->evs[i].data.fd == fd) { if (epHead->evs[i].data.fd == fd) {
epHead->evs[i].events = ev->events | POLLERR | POLLHUP; epHead->evs[i].events = ev->events | POLLERR | POLLHUP;
ret = 0; return 0;
goto OUT_RELEASE;
} }
} }
set_errno(ENOENT); set_errno(ENOENT);
break; return -1;
default: default:
set_errno(EINVAL); set_errno(EINVAL);
break; return -1;
} }
OUT_RELEASE:
(VOID)pthread_mutex_unlock(&g_epollMutex);
return ret;
} }
int epoll_wait(int epfd, FAR struct epoll_event *evs, int maxevents, int timeout) int epoll_wait(int epfd, FAR struct epoll_event *evs, int maxevents, int timeout)
@ -338,7 +326,7 @@ int epoll_wait(int epfd, FAR struct epoll_event *evs, int maxevents, int timeout
return -1; return -1;
} }
for (i = 0; i < pollSize; i++) { for (i = 0; i < epHead->nodeCount; i++) {
pFd[i].fd = epHead->evs[i].data.fd; pFd[i].fd = epHead->evs[i].data.fd;
pFd[i].events = (short)epHead->evs[i].events; pFd[i].events = (short)epHead->evs[i].events;
} }

View File

@ -157,8 +157,7 @@ typedef struct VmSpace {
#define VM_MAP_REGION_FLAG_SHM (1<<16) #define VM_MAP_REGION_FLAG_SHM (1<<16)
#define VM_MAP_REGION_FLAG_FIXED (1<<17) #define VM_MAP_REGION_FLAG_FIXED (1<<17)
#define VM_MAP_REGION_FLAG_FIXED_NOREPLACE (1<<18) #define VM_MAP_REGION_FLAG_FIXED_NOREPLACE (1<<18)
#define VM_MAP_REGION_FLAG_LITEIPC (1<<19) #define VM_MAP_REGION_FLAG_INVALID (1<<19) /* indicates that flags are not specified */
#define VM_MAP_REGION_FLAG_INVALID (1<<20) /* indicates that flags are not specified */
STATIC INLINE UINT32 OsCvtProtFlagsToRegionFlags(unsigned long prot, unsigned long flags) STATIC INLINE UINT32 OsCvtProtFlagsToRegionFlags(unsigned long prot, unsigned long flags)
{ {

View File

@ -887,7 +887,7 @@ STATIC UINT32 OsMemPoolInit(VOID *pool, UINT32 size)
} }
#ifdef LOSCFG_MEM_MUL_POOL #ifdef LOSCFG_MEM_MUL_POOL
STATIC VOID OsMemPoolDeInit(const VOID *pool, UINT32 size) STATIC VOID OsMemPoolDeinit(const VOID *pool, UINT32 size)
{ {
#ifdef LOSCFG_KERNEL_LMS #ifdef LOSCFG_KERNEL_LMS
if (g_lms != NULL) { if (g_lms != NULL) {

View File

@ -379,7 +379,6 @@ LITE_OS_SEC_TEXT_MINOR UINT32 OsShellCmdTskInfoGet(UINT32 processID, VOID *seqBu
(VOID)memset_s(threadInfo, sizeof(ProcessThreadInfo), 0, sizeof(ProcessThreadInfo)); (VOID)memset_s(threadInfo, sizeof(ProcessThreadInfo), 0, sizeof(ProcessThreadInfo));
if (OsGetProcessThreadInfo(processID, threadInfo) != LOS_OK) { if (OsGetProcessThreadInfo(processID, threadInfo) != LOS_OK) {
(VOID)LOS_MemFree(m_aucSysMem1, threadInfo);
return LOS_NOK; return LOS_NOK;
} }

View File

@ -76,8 +76,6 @@ const CHAR *OsGetRegionNameOrFilePath(LosVmMapRegion *region)
return "MMAP"; return "MMAP";
} else if (region->regionFlags & VM_MAP_REGION_FLAG_SHM) { } else if (region->regionFlags & VM_MAP_REGION_FLAG_SHM) {
return "SHM"; return "SHM";
} else if (region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
return "LITEIPC";
} else { } else {
return ""; return "";
} }

View File

@ -261,7 +261,7 @@ STATIC UINT32 GetDirtySize(LosFilePage *fpage, struct Vnode *vnode)
STATIC INT32 OsFlushDirtyPage(LosFilePage *fpage) STATIC INT32 OsFlushDirtyPage(LosFilePage *fpage)
{ {
ssize_t ret; UINT32 ret;
size_t len; size_t len;
char *buff = NULL; char *buff = NULL;
struct Vnode *vnode = fpage->mapping->host; struct Vnode *vnode = fpage->mapping->host;

View File

@ -273,8 +273,6 @@ STATIC UINT32 OsInheritOldRegionName(UINT32 oldRegionFlags)
vmFlags |= VM_MAP_REGION_FLAG_MMAP; vmFlags |= VM_MAP_REGION_FLAG_MMAP;
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_SHM) { } else if (oldRegionFlags & VM_MAP_REGION_FLAG_SHM) {
vmFlags |= VM_MAP_REGION_FLAG_SHM; vmFlags |= VM_MAP_REGION_FLAG_SHM;
} else if (oldRegionFlags & VM_MAP_REGION_FLAG_LITEIPC) {
vmFlags |= VM_MAP_REGION_FLAG_LITEIPC;
} }
return vmFlags; return vmFlags;
@ -300,9 +298,7 @@ INT32 LOS_DoMprotect(VADDR_T vaddr, size_t len, unsigned long prot)
goto OUT_MPROTECT; goto OUT_MPROTECT;
} }
if ((region->regionFlags & VM_MAP_REGION_FLAG_VDSO) || if ((region->regionFlags & VM_MAP_REGION_FLAG_VDSO) || (region->regionFlags & VM_MAP_REGION_FLAG_HEAP)) {
(region->regionFlags & VM_MAP_REGION_FLAG_HEAP) ||
(region->regionFlags & VM_MAP_REGION_FLAG_LITEIPC)) {
ret = -EPERM; ret = -EPERM;
goto OUT_MPROTECT; goto OUT_MPROTECT;
} }

View File

@ -689,9 +689,6 @@ INT32 ShmCtl(INT32 shmid, INT32 cmd, struct shmid_ds *buf)
(shm_perm.mode & ACCESSPERMS); (shm_perm.mode & ACCESSPERMS);
seg->ds.shm_ctime = time(NULL); seg->ds.shm_ctime = time(NULL);
#ifdef LOSCFG_SHELL #ifdef LOSCFG_SHELL
if (OsProcessIDUserCheckInvalid(shm_perm.uid)) {
break;
}
(VOID)memcpy_s(seg->ownerName, OS_PCB_NAME_LEN, OS_PCB_FROM_PID(shm_perm.uid)->processName, (VOID)memcpy_s(seg->ownerName, OS_PCB_NAME_LEN, OS_PCB_FROM_PID(shm_perm.uid)->processName,
OS_PCB_NAME_LEN); OS_PCB_NAME_LEN);
#endif #endif

View File

@ -687,7 +687,7 @@ STATIC ssize_t ConsoleRead(struct file *filep, CHAR *buffer, size_t bufLen)
} }
if (userBuf) { if (userBuf) {
if (LOS_ArchCopyToUser(buffer, sbuffer, ret) != 0) { if (LOS_ArchCopyToUser(buffer, sbuffer, bufLen) != 0) {
ret = -EFAULT; ret = -EFAULT;
goto ERROUT; goto ERROUT;
} }

View File

@ -278,6 +278,7 @@ static void DumpFaultLog(void)
static void DumpMemData(struct MemDumpParam *param) static void DumpMemData(struct MemDumpParam *param)
{ {
PRINTK("\nDumpType: %d\n", param->type);
PRINTK("Unsupported now!\n"); PRINTK("Unsupported now!\n");
} }

View File

@ -239,7 +239,6 @@ LITE_OS_SEC_TEXT STATIC int LiteIpcMmap(struct file *filep, LosVmMapRegion *regi
goto ERROR_MAP_OUT; goto ERROR_MAP_OUT;
} }
ipcInfo->pool.poolSize = region->range.size; ipcInfo->pool.poolSize = region->range.size;
region->regionFlags |= VM_MAP_REGION_FLAG_LITEIPC;
return 0; return 0;
ERROR_MAP_OUT: ERROR_MAP_OUT:
LOS_VFree(ipcInfo->pool.kvaddr); LOS_VFree(ipcInfo->pool.kvaddr);
@ -758,10 +757,7 @@ LITE_OS_SEC_TEXT STATIC UINT32 HandlePtr(LosProcessCB *pcb, SpecialObj *obj, BOO
obj->content.ptr.buff = (VOID *)GetIpcUserAddr(pcb, (INTPTR)buf); obj->content.ptr.buff = (VOID *)GetIpcUserAddr(pcb, (INTPTR)buf);
EnableIpcNodeFreeByUser(pcb, (VOID *)buf); EnableIpcNodeFreeByUser(pcb, (VOID *)buf);
} else { } else {
buf = (VOID *)GetIpcKernelAddr(pcb, (INTPTR)obj->content.ptr.buff); (VOID)LiteIpcNodeFree(pcb, (VOID *)GetIpcKernelAddr(pcb, (INTPTR)obj->content.ptr.buff));
if (IsIpcNode(pcb, buf) == TRUE) {
(VOID)LiteIpcNodeFree(pcb, buf);
}
} }
return LOS_OK; return LOS_OK;
} }

View File

@ -488,7 +488,7 @@ UINT32 OsDevLimitWriteDeny(ProcLimitSet *plimit, const CHAR *buf, UINT32 size)
STATIC VOID DevLimitItemSetAccess(CHAR *accArray, INT16 access) STATIC VOID DevLimitItemSetAccess(CHAR *accArray, INT16 access)
{ {
INT32 index = 0; INT32 index = 0;
(VOID)memset_s(accArray, ACCLEN, 0, ACCLEN); (VOID)memset_s(acc, ACCLEN, 0, ACCLEN);
if (access & DEVLIMIT_ACC_READ) { if (access & DEVLIMIT_ACC_READ) {
accArray[index] = 'r'; accArray[index] = 'r';
index++; index++;

View File

@ -154,6 +154,7 @@ INT32 CmdLog(INT32 argc, const CHAR **argv)
PRINTK("not support yet\n"); PRINTK("not support yet\n");
} }
} else if (!strncmp(argv[0], "path", strlen(argv[0]) + 1)) { } else if (!strncmp(argv[0], "path", strlen(argv[0]) + 1)) {
OsLkLogFileSet(argv[1]);
PRINTK("not support yet\n"); PRINTK("not support yet\n");
} else { } else {
PRINTK("Usage: log level <num>\n"); PRINTK("Usage: log level <num>\n");

View File

@ -124,11 +124,6 @@ LITEOS_BASELIB += -lcommon
LIB_SUBDIRS += kernel/common LIB_SUBDIRS += kernel/common
LITEOS_KERNEL_INCLUDE += -I $(LITEOSTOPDIR)/kernel/common LITEOS_KERNEL_INCLUDE += -I $(LITEOSTOPDIR)/kernel/common
ifeq ($(LOSCFG_KERNEL_CONTAINER), y)
LITEOS_BASELIB += -lcontainer
LIB_SUBDIRS += kernel/extended/container
endif
ifeq ($(LOSCFG_KERNEL_CPPSUPPORT), y) ifeq ($(LOSCFG_KERNEL_CPPSUPPORT), y)
LITEOS_BASELIB += -lcppsupport LITEOS_BASELIB += -lcppsupport
LIB_SUBDIRS += kernel/extended/cppsupport LIB_SUBDIRS += kernel/extended/cppsupport