2021-08-23 09:14:53 -04:00
|
|
|
//go:build linux && cgo && !static_build && !libdm_dlsym_deferred_remove && !libdm_no_deferred_remove
|
|
|
|
// +build linux,cgo,!static_build,!libdm_dlsym_deferred_remove,!libdm_no_deferred_remove
|
2015-04-21 18:14:59 -04:00
|
|
|
|
2018-02-05 16:05:59 -05:00
|
|
|
package devicemapper // import "github.com/docker/docker/pkg/devicemapper"
|
2015-04-21 18:14:59 -04:00
|
|
|
|
2017-11-16 01:09:16 -05:00
|
|
|
/*
|
|
|
|
#include <libdevmapper.h>
|
|
|
|
*/
|
2015-04-21 18:14:59 -04:00
|
|
|
import "C"
|
|
|
|
|
2017-11-16 01:09:16 -05:00
|
|
|
// LibraryDeferredRemovalSupport tells if the feature is supported by the
|
|
|
|
// current Docker invocation.
|
2015-04-21 18:14:59 -04:00
|
|
|
const LibraryDeferredRemovalSupport = true
|
|
|
|
|
2015-09-09 09:57:17 -04:00
|
|
|
func dmTaskDeferredRemoveFct(task *cdmTask) int {
|
2015-04-21 18:14:59 -04:00
|
|
|
return int(C.dm_task_deferred_remove((*C.struct_dm_task)(task)))
|
|
|
|
}
|
2015-04-21 18:14:59 -04:00
|
|
|
|
2015-09-09 09:57:17 -04:00
|
|
|
func dmTaskGetInfoWithDeferredFct(task *cdmTask, info *Info) int {
|
2015-04-21 18:14:59 -04:00
|
|
|
Cinfo := C.struct_dm_info{}
|
|
|
|
defer func() {
|
|
|
|
info.Exists = int(Cinfo.exists)
|
|
|
|
info.Suspended = int(Cinfo.suspended)
|
|
|
|
info.LiveTable = int(Cinfo.live_table)
|
|
|
|
info.InactiveTable = int(Cinfo.inactive_table)
|
|
|
|
info.OpenCount = int32(Cinfo.open_count)
|
|
|
|
info.EventNr = uint32(Cinfo.event_nr)
|
|
|
|
info.Major = uint32(Cinfo.major)
|
|
|
|
info.Minor = uint32(Cinfo.minor)
|
|
|
|
info.ReadOnly = int(Cinfo.read_only)
|
|
|
|
info.TargetCount = int32(Cinfo.target_count)
|
|
|
|
info.DeferredRemove = int(Cinfo.deferred_remove)
|
|
|
|
}()
|
|
|
|
return int(C.dm_task_get_info((*C.struct_dm_task)(task), &Cinfo))
|
|
|
|
}
|