xm_maxmap Kernel Service

Purpose

Determines the maximum permissible count value for a subsequent call to xm_mapin.

Syntax

#include <sys/adspace.h>

int xm_maxmap (dp, uaddr, len)
	struct xmem *dp;
	void *uaddr;
	size_t *len;

Parameters

Item Description
dp Points to the cross memory descriptor.
uaddr Points to the virtual buffer.
len Points to where the maximum permissible count is returned.

Description

The xm_maxmap kernel service determines the maximum permissible count value (in bytes) for a subsequent xm_mapin call. The value is determined based on the input cross-memory descriptor dp and the starting address uaddr, and it is returned in the len parameter. There is no guarantee that xm_mapin will succeed; however, it is guaranteed that uaddr + *len - 1 is in the same segment as uaddr, and therefore xm_mapin will not return EAGAIN.

Execution Environment

The xm_maxmap interface can be called from the process or interrupt environment.

Return Values

Item Description
XMEM_SUCC Successful (Reference parameter len contains the maximum permissible value for a subsequent xm_mapin call)
XMEM_FAIL Invalid cross memory descriptor.
EAGAIN Segment boundary crossing encountered. Caller should make separate xm_mapin calls to map each segment's worth.