1// +build linux,cgo 2 3package loopback // import "github.com/docker/docker/pkg/loopback" 4 5/* 6#include <linux/loop.h> // FIXME: present only for defines, maybe we can remove it? 7 8#ifndef LOOP_CTL_GET_FREE 9 #define LOOP_CTL_GET_FREE 0x4C82 10#endif 11 12#ifndef LO_FLAGS_PARTSCAN 13 #define LO_FLAGS_PARTSCAN 8 14#endif 15 16*/ 17import "C" 18 19type loopInfo64 struct { 20 loDevice uint64 /* ioctl r/o */ 21 loInode uint64 /* ioctl r/o */ 22 loRdevice uint64 /* ioctl r/o */ 23 loOffset uint64 24 loSizelimit uint64 /* bytes, 0 == max available */ 25 loNumber uint32 /* ioctl r/o */ 26 loEncryptType uint32 27 loEncryptKeySize uint32 /* ioctl w/o */ 28 loFlags uint32 /* ioctl r/o */ 29 loFileName [LoNameSize]uint8 30 loCryptName [LoNameSize]uint8 31 loEncryptKey [LoKeySize]uint8 /* ioctl w/o */ 32 loInit [2]uint64 33} 34 35// IOCTL consts 36const ( 37 LoopSetFd = C.LOOP_SET_FD 38 LoopCtlGetFree = C.LOOP_CTL_GET_FREE 39 LoopGetStatus64 = C.LOOP_GET_STATUS64 40 LoopSetStatus64 = C.LOOP_SET_STATUS64 41 LoopClrFd = C.LOOP_CLR_FD 42 LoopSetCapacity = C.LOOP_SET_CAPACITY 43) 44 45// LOOP consts. 46const ( 47 LoFlagsAutoClear = C.LO_FLAGS_AUTOCLEAR 48 LoFlagsReadOnly = C.LO_FLAGS_READ_ONLY 49 LoFlagsPartScan = C.LO_FLAGS_PARTSCAN 50 LoKeySize = C.LO_KEY_SIZE 51 LoNameSize = C.LO_NAME_SIZE 52) 53