[roll] Roll fuchsia [kernel] Ensure is_copy_allowed static_assert in user_ptr is always checked This adds a static_assert into the class definition for user_ptr. Previously this was only asserted inside the method definitions. That meant that a new type could be added and used in syscall API signatures without a violation of the is_copy_allowed constraints being caught at build time. It's only when the implementation code for the syscall went in and actually used the copy in/out methods that the violation would be caught with a build error. That was safely before it mattered in the usual development flow, but not as safe as we'd like. For reasons of isolating API review from implementation review, it often makes sense to first land a new API along with all its documentation and type definitions and then later land its implementation code. When the implementation is complex and takes time to land, it's possible that user code targeting the new API would start to be built, making any churn in the public API details later more of a hassle. So it's desirable to catch any mechanical problems with the API types as soon as they are declared. In the places that define syscall API wrappers, it's now necessary to ensure that all of the API types are complete rather than dangling forward references (by including the syscalls/*.h headers). For good measure, a static_assert is also added in the main SafeSyscallArgument template class. This enforces the same formal constraints on types used as direct arguments rather than via pointers in syscall APIs. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1140272 Original-Revision: 36be9e8d43073fa05d8df7f8e5ec13b2c563ef44 GitOrigin-RevId: ad4eb031e70ea2f349d7a4c5293d7a1bedbf3f75 Change-Id: I8d5d26f12122d92154b0809092c74d544c069160
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.