Lines Matching defs:fi

718 	struct finfo *fi;
965 fi = forward_register(bd->su_xid, caller, fd, ma.m_uaddr);
966 if (fi == NULL) {
978 if (fi->flag & FINFO_ACTIVE) {
990 fi->flag |= FINFO_ACTIVE;
992 call_msg.rm_xid = fi->forward_xid;
1001 forward_destroy(fi);
1017 forward_destroy(fi);
1028 forward_destroy(fi);
1051 forward_destroy(fi);
1061 forward_destroy(fi);
1071 forward_destroy(fi);
1084 forward_destroy(fi);
1103 forward_destroy(fi);
1113 forward_destroy(fi);
1139 while (fi->reply_data == NULL &&
1140 cond_timedwait(&fi->cv, &finfo_lock, &to) != ETIME)
1143 if (fi->reply_data == NULL) {
1144 forward_destroy(fi);
1155 if (fi->reply_error.re_status != RPC_SUCCESS) {
1156 forward_destroy(fi);
1164 clnt_sperrno(fi->reply_error.re_status));
1176 if (sscanf(fi->uaddr, "%d.%d.%d.%d.%d.%d",
1181 result.res.res_len = fi->res_len;
1182 result.res.res_val = fi->res_val;
1193 result.addr = fi->uaddr;
1194 result.results.results_len = fi->res_len;
1195 result.results.results_val = fi->res_val;
1203 forward_destroy(fi);
1227 struct finfo *fi;
1245 for (fi = fihead; fi != NULL; fi = fi->next) {
1246 if (fi->caller_xid == caller_xid &&
1247 netbufcmp(fi->caller_addr, caller_addr)) {
1248 assert(fi->flag & FINFO_ACTIVE);
1249 return (fi);
1253 fi = malloc(sizeof (*fi));
1254 if (fi == NULL) {
1259 if ((fi->caller_addr = netbufdup(caller_addr)) == NULL) {
1261 free(fi);
1275 fi->prev = NULL;
1276 fi->next = fihead;
1278 fihead->prev = fi;
1279 fihead = fi;
1281 fitail = fi;
1283 fi->flag = 0;
1284 fi->caller_xid = caller_xid;
1286 fi->forward_xid = lastxid;
1287 fi->forward_fd = forward_fd;
1293 fi->uaddr = uaddr;
1295 fi->reply_data = NULL;
1296 (void) cond_init(&fi->cv, USYNC_THREAD, NULL);
1300 assert(fitail != fi);
1304 return (fi);
1308 forward_destroy(struct finfo *fi)
1311 assert(fi->flag & FINFO_ACTIVE);
1313 if (fihead == fi) {
1314 assert(fi->prev == NULL);
1315 fihead = fi->next;
1317 fi->prev->next = fi->next;
1320 if (fitail == fi) {
1321 assert(fi->next == NULL);
1322 fitail = fi->prev;
1324 fi->next->prev = fi->prev;
1327 netbuffree(fi->caller_addr);
1328 free(fi->uaddr);
1329 if (fi->reply_data != NULL)
1330 t_free((char *)fi->reply_data, T_UNITDATA);
1331 (void) cond_destroy(&fi->cv);
1333 free(fi);
1345 struct finfo *fi;
1349 for (fi = fihead; fi != NULL; fi = fi->next) {
1350 if (fi->forward_xid == reply_xid &&
1351 strcmp(fi->uaddr, uaddr) == 0)
1352 return (fi);
1401 struct finfo *fi;
1469 fi = forward_find(reply_msg.rm_xid, uaddr);
1470 if (fi == NULL) {
1475 fi->reply_data = tr_data;
1478 __seterr_reply(&reply_msg, &fi->reply_error);
1480 fi->res_len = len;
1481 fi->res_val = &buffer[pos];
1483 (void) cond_signal(&fi->cv);