Lines Matching defs:klip
2065 free_lofi_ioctl(struct lofi_ioctl *klip)
2068 bzero(klip->li_key, sizeof (klip->li_key));
2069 kmem_free(klip, sizeof (struct lofi_ioctl));
2080 struct lofi_ioctl *klip;
2083 klip = *klipp = kmem_alloc(sizeof (struct lofi_ioctl), KM_SLEEP);
2084 error = ddi_copyin(ulip, klip, sizeof (struct lofi_ioctl), flag);
2089 klip->li_filename[MAXPATHLEN-1] = '\0';
2090 klip->li_devpath[MAXPATHLEN-1] = '\0';
2091 klip->li_algorithm[MAXALGLEN-1] = '\0';
2092 klip->li_cipher[CRYPTO_MAX_MECH_NAME-1] = '\0';
2093 klip->li_iv_cipher[CRYPTO_MAX_MECH_NAME-1] = '\0';
2095 if (klip->li_id > L_MAXMIN32) {
2103 free_lofi_ioctl(klip);
2108 copy_out_lofi_ioctl(const struct lofi_ioctl *klip, struct lofi_ioctl *ulip,
2126 error = ddi_copyout(klip, ulip, sizeof (struct lofi_ioctl), flag);
2432 lofi_init_crypto(struct lofi_state *lsp, struct lofi_ioctl *klip)
2442 if (!klip->li_crypto_enabled)
2448 if (klip->li_iv_len > CRYPTO_BITS2BYTES(512))
2451 if (CRYPTO_BITS2BYTES(klip->li_key_len) > sizeof (klip->li_key))
2454 lsp->ls_crypto_enabled = klip->li_crypto_enabled;
2458 lsp->ls_mech.cm_type = crypto_mech2id(klip->li_cipher);
2461 klip->li_cipher, klip->li_filename);
2469 lsp->ls_iv_type = klip->li_iv_type;
2470 lsp->ls_iv_mech.cm_type = crypto_mech2id(klip->li_iv_cipher);
2473 " for %s", klip->li_iv_cipher, klip->li_filename);
2480 lsp->ls_iv_len = klip->li_iv_len;
2487 lsp->ls_key.ck_length = klip->li_key_len;
2490 bcopy(klip->li_key, lsp->ls_key.ck_data,
2496 "%s on file %s (0x%x)", klip->li_cipher,
2497 klip->li_filename, ret);
2683 lofi_create_dev(struct lofi_ioctl *klip)
2694 if ((error = lofi_alloc_id((int *)&klip->li_id)))
2698 klip->li_id);
2706 (pnode_t)DEVI_SID_NODEID, klip->li_id);
2708 "instance", klip->li_id)) != DDI_PROP_SUCCESS)
2711 if (klip->li_labeled == B_TRUE) {
2722 id_free(lofi_id, klip->li_id);
2732 id_free(lofi_id, klip->li_id);
2758 lofi_copy_devpath(struct lofi_ioctl *klip)
2765 if (klip->li_labeled == B_TRUE)
2766 klip->li_devpath[0] = '\0';
2769 (void) snprintf(klip->li_devpath, sizeof (klip->li_devpath),
2770 "/dev/" LOFI_CHAR_NAME "/%d", klip->li_id);
2774 (void) snprintf(namebuf, sizeof (namebuf), "%d", klip->li_id);
2788 (void) strlcpy(klip->li_devpath, str,
2789 sizeof (klip->li_devpath));
2804 struct lofi_ioctl *klip;
2811 error = copy_in_lofi_ioctl(ulip, &klip, ioctl_flag);
2817 if (file_to_lofi_nocheck(klip->li_filename, klip->li_readonly,
2824 error = vn_open(klip->li_filename, UIO_SYSSPACE, flag, 0, &vp, 0, 0);
2828 error = vn_open(klip->li_filename, UIO_SYSSPACE, flag, 0,
2851 klip->li_id = (uint32_t)-1;
2853 if ((error = lofi_create_dev(klip)) != 0)
2856 id = klip->li_id;
2902 lsp->ls_readonly = klip->li_readonly;
2912 if ((error = lofi_init_crypto(lsp, klip)) != 0)
2943 lofi_copy_devpath(klip);
2947 (void) copy_out_lofi_ioctl(klip, ulip, ioctl_flag);
2948 free_lofi_ioctl(klip);
2963 free_lofi_ioctl(klip);
2975 struct lofi_ioctl *klip;
2981 err = copy_in_lofi_ioctl(ulip, &klip, ioctl_flag);
2987 if ((err = file_to_lofi(klip->li_filename, klip->li_readonly,
2992 } else if (klip->li_id == 0) {
2994 free_lofi_ioctl(klip);
2997 lsp = ddi_get_soft_state(lofi_statep, klip->li_id);
3002 free_lofi_ioctl(klip);
3006 klip->li_id = LOFI_MINOR2ID(getminor(lsp->ls_dev));
3031 if (klip->li_force) {
3041 } else if (klip->li_cleanup) {
3044 free_lofi_ioctl(klip);
3049 free_lofi_ioctl(klip);
3065 (void) snprintf(name, sizeof (name), "%d", klip->li_id);
3076 (void) copy_out_lofi_ioctl(klip, ulip, ioctl_flag);
3077 free_lofi_ioctl(klip);
3090 struct lofi_ioctl *klip;
3094 error = copy_in_lofi_ioctl(ulip, &klip, ioctl_flag);
3100 if (klip->li_id == 0) {
3101 free_lofi_ioctl(klip);
3106 lsp = ddi_get_soft_state(lofi_statep, klip->li_id);
3109 free_lofi_ioctl(klip);
3117 if (vnodetopath(NULL, lsp->ls_stacked_vp, klip->li_filename,
3118 sizeof (klip->li_filename), CRED()) != 0) {
3119 (void) strlcpy(klip->li_filename, "?",
3120 sizeof (klip->li_filename));
3123 klip->li_readonly = lsp->ls_readonly;
3124 klip->li_labeled = lsp->ls_cmlbhandle != NULL;
3126 (void) strlcpy(klip->li_algorithm, lsp->ls_comp_algorithm,
3127 sizeof (klip->li_algorithm));
3128 klip->li_crypto_enabled = lsp->ls_crypto_enabled;
3131 lofi_copy_devpath(klip);
3132 error = copy_out_lofi_ioctl(klip, ulip, ioctl_flag);
3133 free_lofi_ioctl(klip);
3137 error = file_to_lofi(klip->li_filename,
3138 klip->li_readonly, &lsp);
3141 free_lofi_ioctl(klip);
3144 klip->li_id = LOFI_MINOR2ID(getminor(lsp->ls_dev));
3146 klip->li_readonly = lsp->ls_readonly;
3147 klip->li_labeled = lsp->ls_cmlbhandle != NULL;
3150 lofi_copy_devpath(klip);
3151 error = copy_out_lofi_ioctl(klip, ulip, ioctl_flag);
3153 free_lofi_ioctl(klip);
3157 error = file_to_lofi(klip->li_filename,
3158 klip->li_readonly, &lsp);
3161 free_lofi_ioctl(klip);
3165 klip->li_id = LOFI_MINOR2ID(getminor(lsp->ls_dev));
3166 (void) strlcpy(klip->li_algorithm, lsp->ls_comp_algorithm,
3167 sizeof (klip->li_algorithm));
3170 error = copy_out_lofi_ioctl(klip, ulip, ioctl_flag);
3171 free_lofi_ioctl(klip);
3174 free_lofi_ioctl(klip);