devnum.go (823B)
1 // +build linux,cgo 2 3 package udev 4 5 /* 6 #cgo LDFLAGS: -ludev 7 #include <libudev.h> 8 #include <linux/types.h> 9 #include <stdlib.h> 10 #include <linux/kdev_t.h> 11 12 int go_udev_major(dev_t d) { 13 return MAJOR(d); 14 } 15 int go_udev_minor(dev_t d) { 16 return MINOR(d); 17 } 18 dev_t go_udev_mkdev(int major, int minor) { 19 return MKDEV(major, minor); 20 } 21 */ 22 import "C" 23 24 // Devnum is a kernel device number 25 type Devnum struct { 26 d C.dev_t 27 } 28 29 // Major returns the major part of a Devnum 30 func (d Devnum) Major() int { 31 return int(C.go_udev_major(d.d)) 32 } 33 34 // Minor returns the minor part of a Devnum 35 func (d Devnum) Minor() int { 36 return int(C.go_udev_minor(d.d)) 37 } 38 39 // MkDev creates a Devnum from a major and minor number 40 func MkDev(major, minor int) Devnum { 41 return Devnum{C.go_udev_mkdev((C.int)(major), (C.int)(minor))} 42 }