-#define PF_PASS 0
-#define PF_DROP 1
-#define PF_SCRUB 2
-#define PF_NOSCRUB 3
-#define PF_NAT 4
-#define PF_NONAT 5
-#define PF_BINAT 6
-#define PF_NOBINAT 7
-#define PF_RDR 8
-#define PF_NORDR 9
-#define PF_SYNPROXY_DROP 10
-#if defined(__FreeBSD__)
-#define PF_DEFER 11
-#elif defined(__OpenBSD__)
-#define PF_DEFER 11
-#define PF_MATCH 12
-#define PF_DIVERT 13
-#define PF_RT 14
-#define PF_AFRT 15
-#elif defined(__APPLE__)
-#define PF_DUMMYNET 11
-#define PF_NODUMMYNET 12
-#define PF_NAT64 13
-#define PF_NONAT64 14
-#endif
-
-static const struct tok pf_actions[] = {
- { PF_PASS, "pass" },
- { PF_DROP, "block" },
- { PF_SCRUB, "scrub" },
- { PF_NAT, "nat" },
- { PF_NONAT, "nonat" },
- { PF_BINAT, "binat" },
- { PF_NOBINAT, "nobinat" },
- { PF_RDR, "rdr" },
- { PF_NORDR, "nordr" },
- { PF_SYNPROXY_DROP, "synproxy-drop" },
-#if defined(__FreeBSD__)
- { PF_DEFER, "defer" },
-#elif defined(__OpenBSD__)
- { PF_DEFER, "defer" },
- { PF_MATCH, "match" },
- { PF_DIVERT, "divert" },
- { PF_RT, "rt" },
- { PF_AFRT, "afrt" },
-#elif defined(__APPLE__)
- { PF_DUMMYNET, "dummynet" },
- { PF_NODUMMYNET, "nodummynet" },
- { PF_NAT64, "nat64" },
- { PF_NONAT64, "nonat64" },
-#endif
+#define PFACT_PASS 0
+#define PFACT_DROP 1
+#define PFACT_SCRUB 2
+#define PFACT_NOSCRUB 3
+#define PFACT_NAT 4
+#define PFACT_NONAT 5
+#define PFACT_BINAT 6
+#define PFACT_NOBINAT 7
+#define PFACT_RDR 8
+#define PFACT_NORDR 9
+#define PFACT_SYNPROXY_DROP 10
+
+/* FreeBSD and OpenBSD */
+#define PFACT_DEFER 11
+
+/* FreeBSD */
+#define PFACT_MATCH 12
+
+/* OpenBSD */
+#define PFACT_MATCH 12
+#define PFACT_DIVERT 13
+#define PFACT_RT 14
+#define PFACT_AFRT 15
+
+/* Darwin */
+#define PFACT_DUMMYNET 11
+#define PFACT_NODUMMYNET 12
+#define PFACT_NAT64 13
+#define PFACT_NONAT64 14
+
+static const struct tok pf_actions_freebsd[] = {
+ { PFACT_PASS, "pass" },
+ { PFACT_DROP, "block" },
+ { PFACT_SCRUB, "scrub" },
+ { PFACT_NOSCRUB, "noscrub" },
+ { PFACT_NAT, "nat" },
+ { PFACT_NONAT, "nonat" },
+ { PFACT_BINAT, "binat" },
+ { PFACT_NOBINAT, "nobinat" },
+ { PFACT_RDR, "rdr" },
+ { PFACT_NORDR, "nordr" },
+ { PFACT_SYNPROXY_DROP, "synproxy-drop" },
+ { PFACT_DEFER, "defer" },
+ { PFACT_MATCH, "match" },
+ { 0, NULL }
+};
+
+static const struct tok pf_actions_openbsd[] = {
+ { PFACT_PASS, "pass" },
+ { PFACT_DROP, "block" },
+ { PFACT_SCRUB, "scrub" },
+ { PFACT_NOSCRUB, "noscrub" },
+ { PFACT_NAT, "nat" },
+ { PFACT_NONAT, "nonat" },
+ { PFACT_BINAT, "binat" },
+ { PFACT_NOBINAT, "nobinat" },
+ { PFACT_RDR, "rdr" },
+ { PFACT_NORDR, "nordr" },
+ { PFACT_SYNPROXY_DROP, "synproxy-drop" },
+ { PFACT_DEFER, "defer" },
+ { PFACT_MATCH, "match" },
+ { PFACT_DIVERT, "divert" },
+ { PFACT_RT, "rt" },
+ { PFACT_AFRT, "afrt" },
+ { 0, NULL }
+};
+
+static const struct tok pf_actions_darwin[] = {
+ { PFACT_PASS, "pass" },
+ { PFACT_DROP, "block" },
+ { PFACT_SCRUB, "scrub" },
+ { PFACT_NOSCRUB, "noscrub" },
+ { PFACT_NAT, "nat" },
+ { PFACT_NONAT, "nonat" },
+ { PFACT_BINAT, "binat" },
+ { PFACT_NOBINAT, "nobinat" },
+ { PFACT_RDR, "rdr" },
+ { PFACT_NORDR, "nordr" },
+ { PFACT_SYNPROXY_DROP, "synproxy-drop" },
+ { PFACT_DUMMYNET, "dummynet (Darwin)" },
+ { PFACT_NODUMMYNET, "nodummynet (Darwin)" },
+ { PFACT_NAT64, "nat64 (Darwin)" },
+ { PFACT_NONAT64, "nonat64 (Darwin)" },