Lines Matching refs:ks
324 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_param_get() local
325 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_param_get()
342 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_param_set() local
343 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_param_set()
478 keysock_t *ks; in keysock_close() local
529 ks = (keysock_t *)ptr; in keysock_close()
530 keystack = ks->keysock_keystack; in keysock_close()
534 if ((ks->keysock_flags & KEYSOCK_EXTENDED) != 0) in keysock_close()
538 *(ks->keysock_ptpn) = ks->keysock_next; in keysock_close()
539 if (ks->keysock_next != NULL) in keysock_close()
540 ks->keysock_next->keysock_ptpn = ks->keysock_ptpn; in keysock_close()
542 mutex_destroy(&ks->keysock_lock); in keysock_close()
543 vmem_free(keysock_vmem, (void *)(uintptr_t)ks->keysock_serial, in keysock_close()
545 netstack_rele(ks->keysock_keystack->keystack_netstack); in keysock_close()
559 keysock_t *ks; in keysock_open() local
655 ks = kmem_zalloc(sizeof (keysock_t), KM_NOSLEEP); in keysock_open()
656 if (ks == NULL) { in keysock_open()
662 mutex_init(&ks->keysock_lock, NULL, MUTEX_DEFAULT, 0); in keysock_open()
663 ks->keysock_rq = q; in keysock_open()
664 ks->keysock_wq = WR(q); in keysock_open()
665 ks->keysock_state = TS_UNBND; in keysock_open()
666 ks->keysock_serial = ksminor; in keysock_open()
668 q->q_ptr = ks; in keysock_open()
669 WR(q)->q_ptr = ks; in keysock_open()
670 ks->keysock_keystack = keystack; in keysock_open()
695 ks->keysock_next = keystack->keystack_list; in keysock_open()
696 ks->keysock_ptpn = &keystack->keystack_list; in keysock_open()
699 &ks->keysock_next; in keysock_open()
701 keystack->keystack_list = ks; in keysock_open()
728 keysock_copy_info(struct T_info_ack *tap, keysock_t *ks) in keysock_copy_info() argument
731 tap->CURRENT_state = ks->keysock_state; in keysock_copy_info()
744 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_capability_req() local
759 keysock_copy_info(&tcap->INFO_ack, ks); in keysock_capability_req()
805 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_opt_get() local
809 mutex_enter(&ks->keysock_lock); in keysock_opt_get()
815 *i1 = (int)(!((ks->keysock_flags & KEYSOCK_NOLOOP) == in keysock_opt_get()
829 mutex_exit(&ks->keysock_lock); in keysock_opt_get()
847 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_opt_set() local
848 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_opt_set()
852 mutex_enter(&ks->keysock_lock); in keysock_opt_set()
856 ks->keysock_flags |= KEYSOCK_NOLOOP; in keysock_opt_set()
857 else ks->keysock_flags &= ~KEYSOCK_NOLOOP; in keysock_opt_set()
875 mutex_exit(&ks->keysock_lock); in keysock_opt_set()
966 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_wput_other() local
967 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_wput_other()
1076 keysock_error(keysock_t *ks, mblk_t *mp, int error, int diagnostic) in keysock_error() argument
1079 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_error()
1096 keysock_passup(mp, samsg, ks->keysock_serial, NULL, B_FALSE, keystack); in keysock_error()
1104 keysock_passdown(keysock_t *ks, mblk_t *mp, uint8_t satype, sadb_ext_t *extv[], in keysock_passdown() argument
1111 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_passdown()
1153 ksi->ks_in_serial = ks->keysock_serial; in keysock_passdown()
1163 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_UNKNOWN_SATYPE); in keysock_passdown()
1378 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_do_flushdump() local
1381 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_do_flushdump()
1396 keysock_error(ks, mp, ENOMEM, SADB_X_DIAGNOSTIC_NONE); in keysock_do_flushdump()
1446 keysock_error(ks, mp, ENOMEM, in keysock_do_flushdump()
1463 keysock_passdown(ks, mp1, i, extv, B_TRUE); in keysock_do_flushdump()
1470 keysock_error(ks, mp, EINVAL, in keysock_do_flushdump()
1482 keysock_error(ks, mp, ESRCH, SADB_X_DIAGNOSTIC_NO_SADBS); in keysock_do_flushdump()
1577 keysock_t *ks) in keysock_inverse_acquire() argument
1580 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_inverse_acquire()
1586 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_MISSING_SRC); in keysock_inverse_acquire()
1590 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_MISSING_DST); in keysock_inverse_acquire()
1596 keysock_error(ks, mp, EINVAL, in keysock_inverse_acquire()
1603 keysock_error(ks, mp, EINVAL, in keysock_inverse_acquire()
1614 ks->keysock_serial, NULL, B_FALSE, keystack); in keysock_inverse_acquire()
1616 keysock_error(ks, mp, samsg->sadb_msg_errno, in keysock_inverse_acquire()
1625 keysock_extended_register(keysock_t *ks, mblk_t *mp, sadb_ext_t *extv[]) in keysock_extended_register() argument
1631 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_extended_register()
1633 if (ks->keysock_registered[0] != 0 || ks->keysock_registered[1] != 0 || in keysock_extended_register()
1634 ks->keysock_registered[2] != 0 || ks->keysock_registered[3] != 0) { in keysock_extended_register()
1635 keysock_error(ks, mp, EBUSY, 0); in keysock_extended_register()
1638 ks->keysock_flags |= KEYSOCK_EXTENDED; in keysock_extended_register()
1640 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_SATYPE_NEEDED); in keysock_extended_register()
1648 keysock_error(ks, mp, ENOMEM, 0); in keysock_extended_register()
1657 keysock_passdown(ks, downmp, *satypes, downextv, in keysock_extended_register()
1671 keysock_delpair_all(keysock_t *ks, mblk_t *mp, sadb_ext_t *extv[]) in keysock_delpair_all() argument
1675 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_delpair_all()
1684 keysock_error(ks, mp, ENOMEM, in keysock_delpair_all()
1688 keysock_passdown(ks, mp1, i, extv, B_FALSE); in keysock_delpair_all()
1701 keysock_t *ks = (keysock_t *)q->q_ptr; in keysock_parse() local
1704 keysock_stack_t *keystack = ks->keysock_keystack; in keysock_parse()
1727 keysock_error(ks, mp, EMSGSIZE, SADB_X_DIAGNOSTIC_NONE); in keysock_parse()
1750 keysock_error(ks, mp, EINVAL, in keysock_parse()
1757 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_UNKNOWN_EXT); in keysock_parse()
1764 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_BAD_EXTLEN); in keysock_parse()
1771 keysock_error(ks, mp, EINVAL, in keysock_parse()
1785 tcpsig_sa_handler(ks, mp, samsg, extv); in keysock_parse()
1801 keysock_extended_register(ks, mp, extv); in keysock_parse()
1803 } else if (ks->keysock_flags & KEYSOCK_EXTENDED) { in keysock_parse()
1804 keysock_error(ks, mp, EBUSY, 0); in keysock_parse()
1819 keysock_passdown(ks, mp, samsg->sadb_msg_satype, extv, in keysock_parse()
1822 keysock_error(ks, mp, EINVAL, in keysock_parse()
1828 keysock_delpair_all(ks, mp, extv); in keysock_parse()
1830 keysock_passdown(ks, mp, samsg->sadb_msg_satype, extv, in keysock_parse()
1847 if (!(ks->keysock_flags & KEYSOCK_EXTENDED)) { in keysock_parse()
1848 keysock_error(ks, mp, EINVAL, in keysock_parse()
1857 if (KEYSOCK_ISREG(ks, satype)) in keysock_parse()
1862 keysock_error(ks, mp, EBUSY, 0); in keysock_parse()
1866 keysock_passdown(ks, mp, satype, extv, B_FALSE); in keysock_parse()
1869 keysock_error(ks, mp, EINVAL, in keysock_parse()
1903 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_NO_EXT); in keysock_parse()
1915 keysock_error(ks, mp, EINVAL, in keysock_parse()
1926 ks->keysock_flags &= ~KEYSOCK_PROMISC; in keysock_parse()
1928 ks->keysock_flags |= KEYSOCK_PROMISC; in keysock_parse()
1929 keysock_passup(mp, samsg, ks->keysock_serial, NULL, B_FALSE, in keysock_parse()
1933 keysock_inverse_acquire(mp, samsg, extv, ks); in keysock_parse()
1938 keysock_error(ks, mp, EINVAL, SADB_X_DIAGNOSTIC_UNKNOWN_MSG); in keysock_parse()
1944 keysock_error(ks, mp, EOPNOTSUPP, SADB_X_DIAGNOSTIC_NONE); in keysock_parse()
1958 keysock_t *ks; in keysock_wput() local
1976 ks = (keysock_t *)q->q_ptr; in keysock_wput()
1977 keystack = ks->keysock_keystack; in keysock_wput()
2028 keysock_t *ks; in keysock_link_consumer() local
2054 for (ks = keystack->keystack_list; ks != NULL; in keysock_link_consumer()
2055 ks = ks->keysock_next) { in keysock_link_consumer()
2056 if (KEYSOCK_ISREG(ks, satype)) { in keysock_link_consumer()
2063 "new consumer.\n", ks->keysock_serial)); in keysock_link_consumer()
2125 keysock_t *ks; in keysock_passup() local
2238 for (ks = keystack->keystack_list; ks != NULL; ks = ks->keysock_next) { in keysock_passup()
2245 if (setalg && serial == ks->keysock_serial) { in keysock_passup()
2248 KEYSOCK_SETREG(ks, satype); in keysock_passup()
2255 if (ks->keysock_flags & KEYSOCK_NOLOOP) in keysock_passup()
2267 if (serial != ks->keysock_serial && in keysock_passup()
2269 !(ks->keysock_flags & KEYSOCK_PROMISC) && in keysock_passup()
2270 !((ks->keysock_flags & KEYSOCK_EXTENDED) ? in keysock_passup()
2272 KEYSOCK_ISREG(ks, kc->kc_sa_type))) in keysock_passup()
2295 if (!canputnext(ks->keysock_rq)) { in keysock_passup()
2297 if (putq(ks->keysock_rq, mp1) == 0) { in keysock_passup()
2309 ("Putting to serial %d.\n", ks->keysock_serial)); in keysock_passup()
2315 putnext(ks->keysock_rq, mp1); in keysock_passup()