当前位置: 首页>>代码示例>>Golang>>正文


Golang C.virTypedParamsFree函数代码示例

本文整理汇总了Golang中C.virTypedParamsFree函数的典型用法代码示例。如果您正苦于以下问题:Golang virTypedParamsFree函数的具体用法?Golang virTypedParamsFree怎么用?Golang virTypedParamsFree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了virTypedParamsFree函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: BlockStatsFlags

func (d *VirDomain) BlockStatsFlags(disk string, params *VirTypedParameters, nParams int, flags uint32) (int, error) {
	var cParams C.virTypedParameterPtr
	cDisk := C.CString(disk)
	defer C.free(unsafe.Pointer(cDisk))

	cParamsLen := C.int(nParams)

	if params != nil && nParams > 0 {
		cParams = (C.virTypedParameterPtr)(C.calloc(C.size_t(nParams), C.size_t(unsafe.Sizeof(C.struct__virTypedParameter{}))))
		defer C.virTypedParamsFree(cParams, cParamsLen)
	} else {
		cParams = nil
	}

	result := int(C.virDomainBlockStatsFlags(d.ptr, cDisk, (C.virTypedParameterPtr)(cParams), &cParamsLen, C.uint(flags)))
	if result == -1 {
		return result, GetLastError()
	}

	if cParamsLen > 0 && params != nil {
		params.loadFromCPtr(cParams, nParams)
	}

	return int(cParamsLen), nil
}
开发者ID:rgbkrk,项目名称:libvirt-go,代码行数:25,代码来源:domain.go

示例2: GetCPUStats

func (d *VirDomain) GetCPUStats(params *VirTypedParameters, nParams int, startCpu int, nCpus uint32, flags uint32) (int, error) {
	var cParams C.virTypedParameterPtr
	var cParamsLen int

	cParamsLen = int(nCpus) * nParams

	if params != nil && cParamsLen > 0 {
		cParams = (C.virTypedParameterPtr)(C.calloc(C.size_t(cParamsLen), C.size_t(unsafe.Sizeof(C.struct__virTypedParameter{}))))
		defer C.virTypedParamsFree(cParams, C.int(cParamsLen))
	} else {
		cParamsLen = 0
		cParams = nil
	}

	result := int(C.virDomainGetCPUStats(d.ptr, (C.virTypedParameterPtr)(cParams), C.uint(nParams), C.int(startCpu), C.uint(nCpus), C.uint(flags)))
	if result == -1 {
		return result, GetLastError()
	}

	if cParamsLen > 0 {
		params.loadFromCPtr(cParams, cParamsLen)
	}

	return result, nil
}
开发者ID:rgbkrk,项目名称:libvirt-go,代码行数:25,代码来源:domain.go

示例3: BlockCopy

func (d *VirDomain) BlockCopy(disk string, destXML string, params VirTypedParameters, flags uint32) error {

	cDisk := C.CString(disk)
	defer C.free(unsafe.Pointer(cDisk))
	cDestXML := C.CString(destXML)
	defer C.free(unsafe.Pointer(cDestXML))
	if cParams, cnParams, err := params.loadToCPtr(); err != nil {
		C.virTypedParamsFree(cParams, cnParams)
		return err
	} else {
		defer C.virTypedParamsFree(cParams, cnParams)

		result := int(C.virDomainBlockCopy(d.ptr, cDisk, cDestXML, cParams, cnParams, C.uint(flags)))
		if result == -1 {
			return GetLastError()
		}
	}
	return nil
}
开发者ID:rgbkrk,项目名称:libvirt-go,代码行数:19,代码来源:domain_1.2.14.go

示例4: NewTypedParameters

func NewTypedParameters(nparams int) *TypedParameters {
	t := new(TypedParameters)
	if nparams > 0 {
		t.cptr = C.virTypedParameterAllocate(C.int(nparams))
		t.capacity = C.int(nparams)
	}
	runtime.SetFinalizer(t, func(t *TypedParameters) {
		if t.cptr != nil {
			C.virTypedParamsFree(t.cptr, t.length)
		}
	})
	return t
}
开发者ID:hooklift,项目名称:golibvirt,代码行数:13,代码来源:typed_parameter.go

示例5: GetInterfaceParameters

// Warning: No test written for this function
func (d *VirDomain) GetInterfaceParameters(device string, params *VirTypedParameters, nParams *int, flags uint32) (int, error) {
	var cParams C.virTypedParameterPtr

	if params != nil && *nParams > 0 {
		cParams = (C.virTypedParameterPtr)(C.calloc(C.size_t(*nParams), C.size_t(unsafe.Sizeof(C.struct__virTypedParameter{}))))
		defer C.virTypedParamsFree(cParams, C.int(*nParams))
	} else {
		cParams = nil
	}

	result := int(C.virDomainGetInterfaceParameters(d.ptr, C.CString(device), (C.virTypedParameterPtr)(cParams), (*C.int)(unsafe.Pointer(nParams)), C.uint(flags)))
	if result == -1 {
		return result, GetLastError()
	}

	if params != nil && *nParams > 0 {
		params.loadFromCPtr(cParams, *nParams)
	}

	return result, nil
}
开发者ID:juito,项目名称:hyper,代码行数:22,代码来源:domain.go


注:本文中的C.virTypedParamsFree函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。