---
name: "hsi_async"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/hsi_async"
---

# hsi\_async(9)

Submit an HSI transfer to the controller

## NAME

hsi\_async - Submit an HSI transfer to the controller

## SYNOPSIS

**int hsi\_async(struct hsi\_client \*** *cl***, struct hsi\_msg \*** *msg***);**

## ARGUMENTS

*cl*

HSI client sending the transfer

*msg*

The HSI transfer passed to controller

## DESCRIPTION

The HSI message must have the channel, ttype, complete and destructor fields set beforehand. If nents \> 0 then the client has to initialize also the scatterlists to point to the buffers to write to or read from.

HSI controllers relay on pre-allocated buffers from their clients and they do not allocate buffers on their own.

Once the HSI message transfer finishes, the HSI controller calls the complete callback with the status and actual\_len fields of the HSI message updated. The complete callback can be called before returning from hsi\_async.

Returns -errno on failure or 0 on success

## COPYRIGHT
