CXL_AFU_OPEN_DEV(3)

NAME
cxl_afu_open_dev - open an AFU by device name

SYNOPSIS
#include <libcxl.h>

struct cxl_afu_h cxl_afu_open_dev(char *path);

DESCRIPTION
cxl_afu_open_dev() opens the device path and returns an AFU handle.

A dedicated process mode AFU only has one context and only allows the device to be opened once. An AFU directed mode AFU can have many contexts, the device can be opened once for each context that is available.

RETURN VALUE
On success, an AFU handle is returned. On error, NULL is returned, and errno is set appropriately.

ERRORS

ENODEV
    Kernel does not support CXL devices, or device is not an AFU.

ENOENT
    Device does not exist.

ENOMEM
    Insufficient memory.

ENOSPC
    No AFU context available.

EPROTO
    Unsupported kernel CXL API version.

FILES

/dev/cxl/afu<i>.<j>d
    AFU device in dedicated process mode.

/dev/cxl/afu<i>.<j>m
    AFU device in AFU directed mode, master context.

/dev/cxl/afu<i>.<j>s
    AFU device in AFU directed mode, slave context.

SEE ALSO
cxl(3), cxl_afu_attach(3), cxl_afu_attach_full(3), cxl_afu_attach_work(3), cxl_afu_dev_name(3), cxl_afu_fd(3), cxl_afu_fd_to_h(3), cxl_afu_free(3), cxl_afu_get_process_element(3), cxl_afu_open_h(3), cxl_afu_opened(3), cxl_get_api_version(3), cxl_get_api_version_compatible(3), cxl_get_cr_class(3), cxl_get_cr_device(3), cxl_get_cr_vendor(3), cxl_get_mode(3), cxl_get_modes_supported(3), cxl_read_event(3), cxl_read_expected_event(3), cxl_set_mode(3), open(2)