+#define PFTOK_PROCNAME_LEN 64
+#pragma pack(1)
+struct pfioc_token {
+ u_int64_t token_value;
+ u_int64_t timestamp;
+ pid_t pid;
+ char proc_name[PFTOK_PROCNAME_LEN];
+};
+#pragma pack()
+
+struct pfioc_kernel_token {
+ SLIST_ENTRY(pfioc_kernel_token) next;
+ struct pfioc_token token;
+};
+
+struct pfioc_remove_token {
+ u_int64_t token_value;
+ u_int64_t refcount;
+};
+
+struct pfioc_tokens {
+ int size;
+ union {
+ caddr_t pgtu_buf;
+ struct pfioc_token *pgtu_tokens;
+ } pgt_u __attribute__((aligned(8)));
+#define pgt_buf pgt_u.pgtu_buf
+#define pgt_tokens pgt_u.pgtu_tokens
+};
+
+#ifdef KERNEL
+struct pfioc_tokens_32 {
+ int size;
+ union {
+ user32_addr_t pgtu_buf;
+ user32_addr_t pgtu_tokens;
+ } pgt_u __attribute__((aligned(8)));
+};
+
+struct pfioc_tokens_64 {
+ int size;
+ union {
+ user64_addr_t pgtu_buf;
+ user64_addr_t pgtu_tokens;
+ } pgt_u __attribute__((aligned(8)));
+};
+#endif /* KERNEL */
+
+