// // PacketTunnel-Bridging-Header.h // 暴露内核控制 (kern_control) 类型给 Swift。 // // iOS SDK 不发布 / (macOS 才有), // 但 sockaddr_ctl / ctl_info 是稳定的内核 ABI(WireGuard / Tailscale 的 iOS 端 // 同样手动声明)。PangolinPlatformInterface.tunFd() 扫描 utun 控制 fd 需要它们。 // 字段布局与 XNU bsd/sys/kern_control.h 一致,勿改。 // #ifndef PacketTunnel_Bridging_Header_h #define PacketTunnel_Bridging_Header_h #include #include #include #define PANGOLIN_MAX_KCTL_NAME 96 struct ctl_info { u_int32_t ctl_id; char ctl_name[PANGOLIN_MAX_KCTL_NAME]; }; struct sockaddr_ctl { u_char sc_len; u_char sc_family; u_int16_t ss_sysaddr; u_int32_t sc_id; u_int32_t sc_unit; u_int32_t sc_reserved[5]; }; #endif /* PacketTunnel_Bridging_Header_h */