Lines Matching defs:ks

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