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