gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

stack.go (881B)


      1 // Copyright 2011 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package objabi
      6 
      7 // For the linkers. Must match Go definitions.
      8 
      9 const (
     10 	STACKSYSTEM = 0
     11 	StackSystem = STACKSYSTEM
     12 	StackBig    = 4096
     13 	StackSmall  = 128
     14 )
     15 
     16 const (
     17 	StackPreempt = -1314 // 0xfff...fade
     18 )
     19 
     20 // Initialize StackGuard and StackLimit according to target system.
     21 var StackGuard = 928*stackGuardMultiplier() + StackSystem
     22 var StackLimit = StackGuard - StackSystem - StackSmall
     23 
     24 // stackGuardMultiplier returns a multiplier to apply to the default
     25 // stack guard size. Larger multipliers are used for non-optimized
     26 // builds that have larger stack frames or for specific targets.
     27 func stackGuardMultiplier() int {
     28 	// On AIX, a larger stack is needed for syscalls.
     29 	if GOOS == "aix" {
     30 		return 2
     31 	}
     32 	return 1
     33 }