github.com/lovishpuri/go-40569/src@v0.0.0-20230519171745-f8623e7c56cf/os/user/cgo_lookup_syscall.go (about)

     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  //go:build !osusergo && darwin
     6  
     7  package user
     8  
     9  import (
    10  	"internal/syscall/unix"
    11  	"syscall"
    12  )
    13  
    14  type _C_char = byte
    15  type _C_int = int32
    16  type _C_gid_t = uint32
    17  type _C_uid_t = uint32
    18  type _C_size_t = uintptr
    19  type _C_struct_group = unix.Group
    20  type _C_struct_passwd = unix.Passwd
    21  type _C_long = int64
    22  
    23  func _C_pw_uid(p *_C_struct_passwd) _C_uid_t   { return p.Uid }
    24  func _C_pw_uidp(p *_C_struct_passwd) *_C_uid_t { return &p.Uid }
    25  func _C_pw_gid(p *_C_struct_passwd) _C_gid_t   { return p.Gid }
    26  func _C_pw_gidp(p *_C_struct_passwd) *_C_gid_t { return &p.Gid }
    27  func _C_pw_name(p *_C_struct_passwd) *_C_char  { return p.Name }
    28  func _C_pw_gecos(p *_C_struct_passwd) *_C_char { return p.Gecos }
    29  func _C_pw_dir(p *_C_struct_passwd) *_C_char   { return p.Dir }
    30  
    31  func _C_gr_gid(g *_C_struct_group) _C_gid_t  { return g.Gid }
    32  func _C_gr_name(g *_C_struct_group) *_C_char { return g.Name }
    33  
    34  func _C_GoString(p *_C_char) string { return unix.GoString(p) }
    35  
    36  func _C_getpwnam_r(name *_C_char, buf *_C_char, size _C_size_t) (pwd _C_struct_passwd, found bool, errno syscall.Errno) {
    37  	var result *_C_struct_passwd
    38  	errno = unix.Getpwnam(name, &pwd, buf, size, &result)
    39  	return pwd, result != nil, errno
    40  }
    41  
    42  func _C_getpwuid_r(uid _C_uid_t, buf *_C_char, size _C_size_t) (pwd _C_struct_passwd, found bool, errno syscall.Errno) {
    43  	var result *_C_struct_passwd
    44  	errno = unix.Getpwuid(uid, &pwd, buf, size, &result)
    45  	return pwd, result != nil, errno
    46  }
    47  
    48  func _C_getgrnam_r(name *_C_char, buf *_C_char, size _C_size_t) (grp _C_struct_group, found bool, errno syscall.Errno) {
    49  	var result *_C_struct_group
    50  	errno = unix.Getgrnam(name, &grp, buf, size, &result)
    51  	return grp, result != nil, errno
    52  }
    53  
    54  func _C_getgrgid_r(gid _C_gid_t, buf *_C_char, size _C_size_t) (grp _C_struct_group, found bool, errno syscall.Errno) {
    55  	var result *_C_struct_group
    56  	errno = unix.Getgrgid(gid, &grp, buf, size, &result)
    57  	return grp, result != nil, errno
    58  }
    59  
    60  const (
    61  	_C__SC_GETPW_R_SIZE_MAX = unix.SC_GETPW_R_SIZE_MAX
    62  	_C__SC_GETGR_R_SIZE_MAX = unix.SC_GETGR_R_SIZE_MAX
    63  )
    64  
    65  func _C_sysconf(key _C_int) _C_long { return unix.Sysconf(key) }