@@ -548,20 +548,23 @@ syscall_(chdir, char *s) {
548548}
549549
550550syscall_ (fcntl , int fd , int cmd , uint64_t arg ) {
551- if (fd < 0 || cmd < 0 )
551+ if (fd < 0 || cmd < 0 ) {
552552 return SYSCALL_FAULT_ (EINVAL );
553+ }
553554 fd_t * handle = get_fd (get_current_task ()-> process -> fdts , fd );
554- if (handle == NULL )
555+ if (handle == NULL ) {
555556 return SYSCALL_FAULT_ (EBADF );
557+ }
556558
557559 switch (cmd ) {
558560 case F_GETFD :
559- return ( handle -> flags & O_CLOEXEC ) ? 1 : 0 ;
561+ return handle -> flags & O_CLOEXEC ? 1 : 0 ;
560562 case F_SETFD :
561- if (arg & 1 )
563+ if (arg & 1 ) {
562564 handle -> flags |= O_CLOEXEC ;
563- else
565+ } else {
564566 handle -> flags &= ~O_CLOEXEC ;
567+ }
565568 return EOK ;
566569 case F_DUPFD_CLOEXEC :
567570 return dup_with_minfd (handle , (int )arg , true);
@@ -570,7 +573,7 @@ syscall_(fcntl, int fd, int cmd, uint64_t arg) {
570573 case F_GETFL :
571574 return handle -> flags ;
572575 case F_SETFL :;
573- uint32_t valid_flags = O_APPEND | O_DIRECT | O_NOATIME | O_NONBLOCK ;
576+ const uint32_t valid_flags = O_APPEND | O_DIRECT | O_NOATIME | O_NONBLOCK ;
574577 handle -> flags &= ~valid_flags ;
575578 handle -> flags |= arg & valid_flags ;
576579 handle -> node -> flags &= ~valid_flags ;
@@ -587,8 +590,8 @@ syscall_(mount, char *dev_name, char *dir_name, char *type, uint64_t flags, void
587590 return SYSCALL_FAULT_ (EINVAL );
588591 }
589592
590- char * ndir_name = vfs_cwd_path_build (dir_name );
591- vfs_node_t dir = vfs_open (ndir_name );
593+ char * ndir_name = vfs_cwd_path_build (dir_name );
594+ const vfs_node_t dir = vfs_open (ndir_name );
592595 if (!dir ) {
593596 free (ndir_name );
594597 return SYSCALL_FAULT_ (ENOENT );
@@ -599,35 +602,39 @@ syscall_(mount, char *dev_name, char *dir_name, char *type, uint64_t flags, void
599602 free (ndir_name );
600603 return SYSCALL_FAULT_ (EINVAL );
601604 }
602- char * old_root_p = vfs_cwd_path_build (dev_name );
603- vfs_node_t old_root = vfs_open (old_root_p );
605+ char * old_root_p = vfs_cwd_path_build (dev_name );
606+ const vfs_node_t old_root = vfs_open (old_root_p );
604607 free (old_root_p );
605- if (old_root == NULL || !old_root -> is_mount )
608+ if (old_root == NULL || !old_root -> is_mount ) {
606609 return SYSCALL_FAULT_ (EINVAL );
607- if (dir != rootdir )
610+ }
611+ if (dir != rootdir ) {
608612 list_append (dir -> parent -> child , old_root );
613+ }
609614 char * nb = old_root -> name ;
610615 old_root -> name = dir -> name ;
611616 dir -> name = nb ;
612617 list_append (old_root -> parent -> child , dir );
613618
614619 list_delete (old_root -> parent -> child , old_root );
615- if (dir != rootdir )
620+ if (dir != rootdir ) {
616621 list_delete (dir -> parent -> child , dir );
617- else
622+ } else {
618623 rootdir = old_root ;
624+ }
619625
620- vfs_node_t parent = dir -> parent ;
621- dir -> parent = old_root -> parent ;
622- old_root -> parent = parent ;
626+ const vfs_node_t parent = dir -> parent ;
627+ dir -> parent = old_root -> parent ;
628+ old_root -> parent = parent ;
623629
624630 vfs_close (old_root );
625631 vfs_close (dir );
626632 return EOK ;
627633 }
628634
629- if (type == NULL )
635+ if (type == NULL ) {
630636 return SYSCALL_FAULT_ (EINVAL );
637+ }
631638
632639 char * ndev_name = vfs_cwd_path_build (dev_name );
633640 errno_t mret = EOK ;
@@ -636,8 +643,9 @@ syscall_(mount, char *dev_name, char *dir_name, char *type, uint64_t flags, void
636643 if (mret != EOK ) {
637644 free (ndir_name );
638645 free (ndev_name );
639- if (mret < 0 )
646+ if (mret < 0 ) {
640647 return (uint64_t )mret ;
648+ }
641649 return SYSCALL_FAULT_ (EIO );
642650 }
643651 free (ndir_name );
@@ -647,12 +655,10 @@ syscall_(mount, char *dev_name, char *dir_name, char *type, uint64_t flags, void
647655
648656syscall_ (poll , struct pollfd * fds_user , size_t nfds , size_t timeout ) {
649657 int ready = 0 ;
650- uint64_t start_time = nano_time ();
658+ const uint64_t start_time = nano_time ();
651659 bool sigexit = false;
652- tcb_t current = get_current_task ();
653- fdt_t * fdt = current -> process -> fdts ;
654-
655- extern vfs_callback_t fs_callbacks [256 ];
660+ const tcb_t current = get_current_task ();
661+ const fdt_t * fdt = current -> process -> fdts ;
656662
657663 do {
658664 ready = 0 ;
@@ -663,7 +669,8 @@ syscall_(poll, struct pollfd *fds_user, size_t nfds, size_t timeout) {
663669
664670 // 检查每个文件描述符
665671 for (size_t i = 0 ; i < nfds ; i ++ ) {
666- fd_t * handle = get_fd (fdt , fds_user [i ].fd );
672+ extern vfs_callback_t fs_callbacks [256 ];
673+ const fd_t * handle = get_fd (fdt , fds_user [i ].fd );
667674 if (handle == NULL ) {
668675 fds_user [i ].revents = POLLNVAL ;
669676 ready ++ ;
0 commit comments