open_session
crypto_open_session_t open_session;
open_session.os_provider_id = pslot->sl_provider_id;
open_session.os_flags = flags;
while ((r = ioctl(kernel_fd, CRYPTO_OPEN_SESSION, &open_session)) < 0) {
rv = crypto2pkcs11_error_number(open_session.os_return_value);
new_sp->k_session = open_session.os_session;
crypto_open_session_t open_session;
if (copyin(arg, &open_session, sizeof (open_session)) != 0)
rv = crypto_open_session(dev, open_session.os_flags,
&session, open_session.os_provider_id);
open_session.os_return_value = rv;
if (copyout(&open_session, arg, sizeof (open_session)) != 0) {
open_session.os_session = session;
open_session.os_return_value = CRYPTO_SUCCESS;
if (copyout(&open_session, arg, sizeof (open_session)) != 0) {
return (open_session(dev, ARG, mode, rval));