usb-ks

USB Killswitch
git clone git://git.laack.co/usb-ks.git
Log | Files | Refs | README | LICENSE

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 }