implement asynchronous operation mode
commita1edb107863e9a696487c93f7ecbe75134dd30c8
authorPhil Sutter <phil.sutter@viprinet.com>
Thu, 21 Oct 2010 16:26:06 +0000 (21 18:26 +0200)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sat, 23 Oct 2010 17:00:47 +0000 (23 19:00 +0200)
treef537b15853ec1e273db48e9b7bbd575eff6d4f73
parent8761954fe6accba15c6450ee51fa830cbc023654
implement asynchronous operation mode

In order to submit a job for asynchronous completion, one uses the ioctl
CIOCASYNCCRYPT, which is syntactically equal to CIOCCRYPT.  But, the
former will return immediately, the result has to be fetched later using
CIOCASYNCFETCH (which will always return the first completed job, asking
for a specific one is not possible).

These ioctls can return -EBUSY in case there are either no free slots
left for enqueueing a new job or there are no completed jobs waiting,
depending on the ioctl's direction.

For now, the number of slots (i.e. maximum length of the job queue) is
limited to 16 items, defined in DEF_COP_RINGSIZE.

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
cryptodev.h
cryptodev_int.h
cryptodev_main.c