1// Copyright 2021 Tobias Klauser. 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//go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd 6// +build darwin dragonfly freebsd linux netbsd openbsd 7 8package sysconf 9 10import "os" 11 12func sysconfGeneric(name int) (int64, error) { 13 // POSIX default values 14 if sc, err := sysconfPOSIX(name); err == nil { 15 return sc, nil 16 } 17 18 switch name { 19 case SC_BC_BASE_MAX: 20 return _BC_BASE_MAX, nil 21 case SC_BC_DIM_MAX: 22 return _BC_DIM_MAX, nil 23 case SC_BC_SCALE_MAX: 24 return _BC_SCALE_MAX, nil 25 case SC_BC_STRING_MAX: 26 return _BC_STRING_MAX, nil 27 case SC_COLL_WEIGHTS_MAX: 28 return _COLL_WEIGHTS_MAX, nil 29 case SC_EXPR_NEST_MAX: 30 return _EXPR_NEST_MAX, nil 31 case SC_HOST_NAME_MAX: 32 return _HOST_NAME_MAX, nil 33 case SC_LINE_MAX: 34 return _LINE_MAX, nil 35 case SC_LOGIN_NAME_MAX: 36 return _LOGIN_NAME_MAX, nil 37 case SC_PAGESIZE: // same as SC_PAGE_SIZE 38 return int64(os.Getpagesize()), nil 39 case SC_RE_DUP_MAX: 40 return _RE_DUP_MAX, nil 41 case SC_SYMLOOP_MAX: 42 return _SYMLOOP_MAX, nil 43 } 44 45 return -1, errInvalid 46} 47