Lines Matching defs:pdd
104 privdoor_data_hold(struct privdoor_data *pdd)
106 atomic_inc_32(&pdd->pd_refcnt);
110 privdoor_data_rele(struct privdoor_data *pdd)
112 if (atomic_dec_32_nv(&pdd->pd_refcnt) == 0)
113 free(pdd);
233 struct privdoor_data *pdd = malloc(sizeof (*pdd));
235 if (pdd == NULL) {
241 pdd->pd_dfd = d;
242 pdd->pd_uniqid = di.di_uniquifier;
243 pdd->pd_refcnt = 1; /* prevent free during xcreate_n */
244 pdd->pd_crf = crf;
245 pdd->pd_crcookie = crcookie;
246 pdd->pd_setupf = setupf;
248 if (!door_xcreate_n(&di, pdd, nthread)) {
252 privdoor_data_rele(pdd);
256 privdoor_data_rele(pdd);
337 struct privdoor_data *pdd;
346 if (rv == 0 && (pdd = pthread_getspecific(privdoor_key)) != NULL) {
348 privdoor_data_rele(pdd);
492 struct privdoor_data *pdd;
518 struct privdoor_data *pdd = xssp->pdd;
521 privdoor_data_hold(pdd);
522 if (pthread_setspecific(privdoor_key, (const void *)pdd) != 0) {
524 privdoor_data_rele(pdd);
528 if (pdd->pd_setupf != NULL) {
529 (pdd->pd_setupf)(pdd->pd_crcookie);
535 if (door_bind(pdd->pd_dfd) == 0)
579 door_xcreate_n(door_info_t *dip, struct privdoor_data *pdd, int n)
599 if (pdd == NULL) {
601 if ((pdd = pthread_getspecific(privdoor_key)) == NULL)
632 xssp->pdd = pdd;
641 switch ((pdd->pd_crf)(dip, door_xcreate_startf,
642 (void *)&xsp[i], pdd->pd_crcookie)) {