Lines Matching refs:ks
325 keysock_t *ks = (keysock_t *)q->q_ptr; local
326 keysock_stack_t *keystack = ks->keysock_keystack;
348 keysock_t *ks = (keysock_t *)q->q_ptr; local
349 keysock_stack_t *keystack = ks->keysock_keystack;
483 keysock_t *ks; in keysock_close() local
534 ks = (keysock_t *)ptr; in keysock_close()
535 keystack = ks->keysock_keystack; in keysock_close()
539 if ((ks->keysock_flags & KEYSOCK_EXTENDED) != 0) in keysock_close()
543 *(ks->keysock_ptpn) = ks->keysock_next; in keysock_close()
544 if (ks->keysock_next != NULL) in keysock_close()
545 ks->keysock_next->keysock_ptpn = ks->keysock_ptpn; in keysock_close()
547 mutex_destroy(&ks->keysock_lock); in keysock_close()
548 vmem_free(keysock_vmem, (void *)(uintptr_t)ks->keysock_serial, in keysock_close()
550 netstack_rele(ks->keysock_keystack->keystack_netstack); in keysock_close()
564 keysock_t *ks; in keysock_open() local
660 ks = kmem_zalloc(sizeof (keysock_t), KM_NOSLEEP); in keysock_open()
661 if (ks == NULL) { in keysock_open()
667 mutex_init(&ks->keysock_lock, NULL, MUTEX_DEFAULT, 0); in keysock_open()
668 ks->keysock_rq = q; in keysock_open()
669 ks->keysock_wq = WR(q); in keysock_open()
670 ks->keysock_state = TS_UNBND; in keysock_open()
671 ks->keysock_serial = ksminor; in keysock_open()
673 q->q_ptr = ks; in keysock_open()
674 WR(q)->q_ptr = ks; in keysock_open()
675 ks->keysock_keystack = keystack; in keysock_open()
700 ks->keysock_next = keystack->keystack_list; in keysock_open()
701 ks->keysock_ptpn = &keystack->keystack_list; in keysock_open()
704 &ks->keysock_next; in keysock_open()
706 keystack->keystack_list = ks; in keysock_open()
733 keysock_copy_info(struct T_info_ack *tap, keysock_t *ks) in keysock_copy_info() argument
736 tap->CURRENT_state = ks->keysock_state; in keysock_copy_info()
749 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_capability_req() local
764 keysock_copy_info(&tcap->INFO_ack, ks); in keysock_capability_req()
816 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_opt_get() local
820 mutex_enter(&ks->keysock_lock); in keysock_opt_get()
826 *i1 = (int)(!((ks->keysock_flags & KEYSOCK_NOLOOP) == in keysock_opt_get()
840 mutex_exit(&ks->keysock_lock); in keysock_opt_get()
858 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_opt_set() local
859 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_opt_set()
863 mutex_enter(&ks->keysock_lock); in keysock_opt_set()
867 ks->keysock_flags |= KEYSOCK_NOLOOP; in keysock_opt_set()
868 else ks->keysock_flags &= ~KEYSOCK_NOLOOP; in keysock_opt_set()
886 mutex_exit(&ks->keysock_lock); in keysock_opt_set()
902 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_wput_other() local
903 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_wput_other()
999 keysock_error(keysock_t *ks, mblk_t *mp, int error, int diagnostic) in keysock_error() argument
1002 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_error()
1019 keysock_passup(mp, samsg, ks->keysock_serial, NULL, B_FALSE, keystack); in keysock_error()
1027 keysock_passdown(keysock_t *ks, mblk_t *mp, uint8_t satype, sadb_ext_t *extv[], in keysock_passdown() argument
1034 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_passdown()
1069 ksi->ks_in_serial = ks->keysock_serial; in keysock_passdown()
1079 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_UNKNOWN_SATYPE); in keysock_passdown()
1285 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_do_flushdump() local
1288 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_do_flushdump()
1303 keysock_error(ks, mp, ENOMEM, SADB_X_DIAGNOSTIC_NONE); in keysock_do_flushdump()
1353 keysock_error(ks, mp, ENOMEM, in keysock_do_flushdump()
1370 keysock_passdown(ks, mp1, i, extv, B_TRUE); in keysock_do_flushdump()
1377 keysock_error(ks, mp, EINVAL, in keysock_do_flushdump()
1389 keysock_error(ks, mp, ESRCH, SADB_X_DIAGNOSTIC_NO_SADBS); in keysock_do_flushdump()
1478 keysock_t *ks) in keysock_inverse_acquire() argument
1481 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_inverse_acquire()
1487 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_MISSING_SRC); in keysock_inverse_acquire()
1491 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_MISSING_DST); in keysock_inverse_acquire()
1497 keysock_error(ks, mp, EINVAL, in keysock_inverse_acquire()
1504 keysock_error(ks, mp, EINVAL, in keysock_inverse_acquire()
1515 ks->keysock_serial, NULL, B_FALSE, keystack); in keysock_inverse_acquire()
1517 keysock_error(ks, mp, samsg->sadb_msg_errno, in keysock_inverse_acquire()
1526 keysock_extended_register(keysock_t *ks, mblk_t *mp, sadb_ext_t *extv[]) in keysock_extended_register() argument
1532 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_extended_register()
1534 if (ks->keysock_registered[0] != 0 || ks->keysock_registered[1] != 0 || in keysock_extended_register()
1535 ks->keysock_registered[2] != 0 || ks->keysock_registered[3] != 0) { in keysock_extended_register()
1536 keysock_error(ks, mp, EBUSY, 0); in keysock_extended_register()
1539 ks->keysock_flags |= KEYSOCK_EXTENDED; in keysock_extended_register()
1541 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_SATYPE_NEEDED); in keysock_extended_register()
1549 keysock_error(ks, mp, ENOMEM, 0); in keysock_extended_register()
1558 keysock_passdown(ks, downmp, *satypes, downextv, in keysock_extended_register()
1572 keysock_delpair_all(keysock_t *ks, mblk_t *mp, sadb_ext_t *extv[]) in keysock_delpair_all() argument
1576 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_delpair_all()
1585 keysock_error(ks, mp, ENOMEM, in keysock_delpair_all()
1589 keysock_passdown(ks, mp1, i, extv, B_FALSE); in keysock_delpair_all()
1602 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_parse() local
1605 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_parse()
1628 keysock_error(ks, mp, EMSGSIZE, SADB_X_DIAGNOSTIC_NONE); in keysock_parse()
1651 keysock_error(ks, mp, EINVAL, in keysock_parse()
1658 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_UNKNOWN_EXT); in keysock_parse()
1665 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_BAD_EXTLEN); in keysock_parse()
1672 keysock_error(ks, mp, EINVAL, in keysock_parse()
1692 keysock_extended_register(ks, mp, extv); in keysock_parse()
1694 } else if (ks->keysock_flags & KEYSOCK_EXTENDED) { in keysock_parse()
1695 keysock_error(ks, mp, EBUSY, 0); in keysock_parse()
1710 keysock_passdown(ks, mp, samsg->sadb_msg_satype, extv, in keysock_parse()
1712 else keysock_error(ks, mp, EINVAL, in keysock_parse()
1717 keysock_delpair_all(ks, mp, extv); in keysock_parse()
1719 keysock_passdown(ks, mp, samsg->sadb_msg_satype, extv, in keysock_parse()
1736 if (!(ks->keysock_flags & KEYSOCK_EXTENDED)) { in keysock_parse()
1737 keysock_error(ks, mp, EINVAL, in keysock_parse()
1746 if (KEYSOCK_ISREG(ks, satype)) in keysock_parse()
1751 keysock_error(ks, mp, EBUSY, 0); in keysock_parse()
1755 keysock_passdown(ks, mp, satype, extv, B_FALSE); in keysock_parse()
1758 keysock_error(ks, mp, EINVAL, in keysock_parse()
1792 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_NO_EXT); in keysock_parse()
1804 keysock_error(ks, mp, EINVAL, in keysock_parse()
1815 ks->keysock_flags &= ~KEYSOCK_PROMISC; in keysock_parse()
1817 ks->keysock_flags |= KEYSOCK_PROMISC; in keysock_parse()
1818 keysock_passup(mp, samsg, ks->keysock_serial, NULL, B_FALSE, in keysock_parse()
1822 keysock_inverse_acquire(mp, samsg, extv, ks); in keysock_parse()
1827 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_UNKNOWN_MSG); in keysock_parse()
1833 keysock_error(ks, mp, EOPNOTSUPP, SADB_X_DIAGNOSTIC_NONE); in keysock_parse()
1847 keysock_t *ks; in keysock_wput() local
1865 ks = (keysock_t *)q->q_ptr; in keysock_wput()
1866 keystack = ks->keysock_keystack; in keysock_wput()
1916 keysock_t *ks; in keysock_link_consumer() local
1942 for (ks = keystack->keystack_list; ks != NULL; in keysock_link_consumer()
1943 ks = ks->keysock_next) { in keysock_link_consumer()
1944 if (KEYSOCK_ISREG(ks, satype)) { in keysock_link_consumer()
1951 "new consumer.\n", ks->keysock_serial)); in keysock_link_consumer()
2013 keysock_t *ks; in keysock_passup() local
2126 for (ks = keystack->keystack_list; ks != NULL; ks = ks->keysock_next) { in keysock_passup()
2133 if (setalg && serial == ks->keysock_serial) { in keysock_passup()
2136 KEYSOCK_SETREG(ks, satype); in keysock_passup()
2143 if (ks->keysock_flags & KEYSOCK_NOLOOP) in keysock_passup()
2155 if (serial != ks->keysock_serial && in keysock_passup()
2157 !(ks->keysock_flags & KEYSOCK_PROMISC) && in keysock_passup()
2158 !((ks->keysock_flags & KEYSOCK_EXTENDED) ? in keysock_passup()
2160 KEYSOCK_ISREG(ks, kc->kc_sa_type))) in keysock_passup()
2183 if (!canputnext(ks->keysock_rq)) { in keysock_passup()
2185 if (putq(ks->keysock_rq, mp1) == 0) { in keysock_passup()
2197 ("Putting to serial %d.\n", ks->keysock_serial)); in keysock_passup()
2203 putnext(ks->keysock_rq, mp1); in keysock_passup()