dev_zos.go raw

   1  // Copyright 2020 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 zos && s390x
   6  
   7  // Functions to access/create device major and minor numbers matching the
   8  // encoding used by z/OS.
   9  //
  10  // The information below is extracted and adapted from <sys/stat.h> macros.
  11  
  12  package unix
  13  
  14  // Major returns the major component of a z/OS device number.
  15  func Major(dev uint64) uint32 {
  16  	return uint32((dev >> 16) & 0x0000FFFF)
  17  }
  18  
  19  // Minor returns the minor component of a z/OS device number.
  20  func Minor(dev uint64) uint32 {
  21  	return uint32(dev & 0x0000FFFF)
  22  }
  23  
  24  // Mkdev returns a z/OS device number generated from the given major and minor
  25  // components.
  26  func Mkdev(major, minor uint32) uint64 {
  27  	return (uint64(major) << 16) | uint64(minor)
  28  }
  29