@@ -1998,6 +1998,16 @@ static inline abi_long host_to_target_cmsg(struct target_msghdr *target_msgh,
(void *) &errh->offender, sizeof(errh->offender));
break;
}
+ case IP_PKTINFO:
+ {
+ struct in_pktinfo *pkti = data;
+ struct target_in_pktinfo *target_pi = target_data;
+
+ __put_user(pkti->ipi_ifindex, &target_pi->ipi_ifindex);
+ target_pi->ipi_spec_dst.s_addr = pkti->ipi_spec_dst.s_addr;
+ target_pi->ipi_addr.s_addr = pkti->ipi_addr.s_addr;
+ break;
+ }
default:
goto unimplemented;
}
@@ -2622,6 +2622,12 @@ struct target_ucred {
abi_uint gid;
};
+struct target_in_pktinfo {
+ abi_int ipi_ifindex;
+ struct target_in_addr ipi_spec_dst;
+ struct target_in_addr ipi_addr;
+};
+
typedef abi_int target_timer_t;
#define TARGET_SIGEV_MAX_SIZE 64