github.com/SagerNet/gvisor@v0.0.0-20210707092255-7731c139d75c/pkg/ring0/entry_arm64.go (about) 1 // Copyright 2019 The gVisor Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // +build arm64 16 17 package ring0 18 19 // This is an assembly function. 20 // 21 // The sysenter function is invoked in two situations: 22 // 23 // (1) The guest kernel has executed a system call. 24 // (2) The guest application has executed a system call. 25 // 26 // The interrupt flag is examined to determine whether the system call was 27 // executed from kernel mode or not and the appropriate stub is called. 28 29 func El1_sync_invalid() 30 func El1_irq_invalid() 31 func El1_fiq_invalid() 32 func El1_error_invalid() 33 34 func El1_sync() 35 func El1_irq() 36 func El1_fiq() 37 func El1_error() 38 39 func El0_sync() 40 func El0_irq() 41 func El0_fiq() 42 func El0_error() 43 44 func El0_sync_invalid() 45 func El0_irq_invalid() 46 func El0_fiq_invalid() 47 func El0_error_invalid() 48 49 func Vectors() 50 51 // Start is the CPU entrypoint. 52 // 53 // The CPU state will be set to c.Registers(). 54 func Start() 55 func kernelExitToEl1() 56 57 func kernelExitToEl0() 58 59 // Shutdown execution 60 func Shutdown()