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