OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "nacl_io/kernel_proxy.h" | 5 #include "nacl_io/kernel_proxy.h" |
6 | 6 |
7 #include <assert.h> | 7 #include <assert.h> |
8 #include <errno.h> | 8 #include <errno.h> |
9 #include <fcntl.h> | 9 #include <fcntl.h> |
10 #include <limits.h> | 10 #include <limits.h> |
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
792 | 792 |
793 error = fs->Remove(rel); | 793 error = fs->Remove(rel); |
794 if (error) { | 794 if (error) { |
795 errno = error; | 795 errno = error; |
796 return -1; | 796 return -1; |
797 } | 797 } |
798 | 798 |
799 return 0; | 799 return 0; |
800 } | 800 } |
801 | 801 |
802 // TODO(noelallen): Needs implementation. | 802 int KernelProxy::fchmod(int fd, mode_t mode) { |
803 int KernelProxy::fchmod(int fd, int mode) { | |
804 ScopedKernelHandle handle; | 803 ScopedKernelHandle handle; |
805 Error error = AcquireHandle(fd, &handle); | 804 Error error = AcquireHandle(fd, &handle); |
806 if (error) { | 805 if (error) { |
807 errno = error; | 806 errno = error; |
808 return -1; | 807 return -1; |
809 } | 808 } |
810 | 809 |
| 810 error = handle->node()->Fchmod(mode); |
| 811 if (error) { |
| 812 errno = error; |
| 813 return -1; |
| 814 } |
| 815 |
811 return 0; | 816 return 0; |
812 } | 817 } |
813 | 818 |
814 int KernelProxy::fcntl(int fd, int request, va_list args) { | 819 int KernelProxy::fcntl(int fd, int request, va_list args) { |
815 Error error = 0; | 820 Error error = 0; |
816 | 821 |
817 // F_GETFD and F_SETFD are descriptor specific flags that | 822 // F_GETFD and F_SETFD are descriptor specific flags that |
818 // are stored in the KernelObject's decriptor map unlike | 823 // are stored in the KernelObject's decriptor map unlike |
819 // F_GETFL and F_SETFL which are handle specific. | 824 // F_GETFL and F_SETFL which are handle specific. |
820 switch (request) { | 825 switch (request) { |
(...skipping 913 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1734 errno = ENOTSOCK; | 1739 errno = ENOTSOCK; |
1735 return -1; | 1740 return -1; |
1736 } | 1741 } |
1737 | 1742 |
1738 return 0; | 1743 return 0; |
1739 } | 1744 } |
1740 | 1745 |
1741 #endif // PROVIDES_SOCKET_API | 1746 #endif // PROVIDES_SOCKET_API |
1742 | 1747 |
1743 } // namespace_nacl_io | 1748 } // namespace_nacl_io |
OLD | NEW |