blob: 8fc08ad0aae26641284718acde7827950757fedc [file] [log] [blame]
Holger Hildebrandtfa074992020-03-27 15:42:06 +00001// Copyright 2018 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
khenaidoo7d3c5582021-08-11 18:09:44 -04005//go:build aix && ppc64
6// +build aix,ppc64
Holger Hildebrandtfa074992020-03-27 15:42:06 +00007
8// Functions to access/create device major and minor numbers matching the
9// encoding used AIX.
10
11package unix
12
13// Major returns the major component of a Linux device number.
14func Major(dev uint64) uint32 {
15 return uint32((dev & 0x3fffffff00000000) >> 32)
16}
17
18// Minor returns the minor component of a Linux device number.
19func Minor(dev uint64) uint32 {
20 return uint32((dev & 0x00000000ffffffff) >> 0)
21}
22
23// Mkdev returns a Linux device number generated from the given major and minor
24// components.
25func Mkdev(major, minor uint32) uint64 {
26 var DEVNO64 uint64
27 DEVNO64 = 0x8000000000000000
28 return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
29}