blob: 8b401244c419c3e77c0164cced93dba0fa910818 [file] [log] [blame]
Don Newton98fd8812019-09-23 15:15:02 -04001// 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
5// +build aix
6// +build ppc64
7
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}