2017-03-29 20:55:42 -04:00
|
|
|
// +build linux,cgo
|
2015-12-14 17:16:34 -05:00
|
|
|
|
|
|
|
package loopback
|
|
|
|
|
|
|
|
/*
|
|
|
|
#include <linux/loop.h> // FIXME: present only for defines, maybe we can remove it?
|
|
|
|
|
|
|
|
#ifndef LOOP_CTL_GET_FREE
|
|
|
|
#define LOOP_CTL_GET_FREE 0x4C82
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef LO_FLAGS_PARTSCAN
|
|
|
|
#define LO_FLAGS_PARTSCAN 8
|
|
|
|
#endif
|
|
|
|
|
|
|
|
*/
|
|
|
|
import "C"
|
|
|
|
|
|
|
|
type loopInfo64 struct {
|
|
|
|
loDevice uint64 /* ioctl r/o */
|
|
|
|
loInode uint64 /* ioctl r/o */
|
|
|
|
loRdevice uint64 /* ioctl r/o */
|
|
|
|
loOffset uint64
|
|
|
|
loSizelimit uint64 /* bytes, 0 == max available */
|
|
|
|
loNumber uint32 /* ioctl r/o */
|
|
|
|
loEncryptType uint32
|
|
|
|
loEncryptKeySize uint32 /* ioctl w/o */
|
|
|
|
loFlags uint32 /* ioctl r/o */
|
|
|
|
loFileName [LoNameSize]uint8
|
|
|
|
loCryptName [LoNameSize]uint8
|
|
|
|
loEncryptKey [LoKeySize]uint8 /* ioctl w/o */
|
|
|
|
loInit [2]uint64
|
|
|
|
}
|
|
|
|
|
|
|
|
// IOCTL consts
|
|
|
|
const (
|
|
|
|
LoopSetFd = C.LOOP_SET_FD
|
|
|
|
LoopCtlGetFree = C.LOOP_CTL_GET_FREE
|
|
|
|
LoopGetStatus64 = C.LOOP_GET_STATUS64
|
|
|
|
LoopSetStatus64 = C.LOOP_SET_STATUS64
|
|
|
|
LoopClrFd = C.LOOP_CLR_FD
|
|
|
|
LoopSetCapacity = C.LOOP_SET_CAPACITY
|
|
|
|
)
|
|
|
|
|
|
|
|
// LOOP consts.
|
|
|
|
const (
|
|
|
|
LoFlagsAutoClear = C.LO_FLAGS_AUTOCLEAR
|
|
|
|
LoFlagsReadOnly = C.LO_FLAGS_READ_ONLY
|
|
|
|
LoFlagsPartScan = C.LO_FLAGS_PARTSCAN
|
|
|
|
LoKeySize = C.LO_KEY_SIZE
|
|
|
|
LoNameSize = C.LO_NAME_SIZE
|
|
|
|
)
|