Merge remote-tracking branch 'goog/tcpdump'

* goog/tcpdump: (3066 commits)
  Remove old version. Getting ready for new tcpdump 4.5
  Support -Q for setting the capture direction.
  Clean up the TLV processing loop.
  With -A and -AA, don't send CRs to the standard output.
  Use the new libpcap <pcap/nflog.h> for NFLOG definitions and declarations.
  Do our own isascii(), isprint(), isgraph(), and toascii().
  Fix a compiler warning.
  Don't use the __attribute__((packed)) on most platforms.
  The interval in an AODV HELLO extension is not aligned on a 4-byte boundary.
  As with memcpy, so with memcmp.
  More UNALIGNED_MEM{CPY,CMP} on IP addresses.
  Another case where UNALIGNED_MEMCPY() is probably necessary.
  No need for casting back and forth.
  Only do the unaligned_mem{cpy,cmp} hack if necessary.
  No need to declare unaligned_mem{cpy,cmp} in netdissect.h *and* interface.h.
  More possibly-unaligned memcpy()s and assignments - use unaligned_memcpy().
  Check for compiling for IPv6; don't check whether we can create an IPv6 socket.
  Use unaligned_memcmp() to compare with IPv{4,6} addresses in a packet.
  Use EXTRACT_nBITS even when just testing against zero.
  Fix some more unaligned accesses.
  ...

Change-Id: I9e98707d30c989b9e32dcd5af798bd0746ab4434
diff --git a/cpack.h b/cpack.h
index 14ed376..383927f 100644
--- a/cpack.h
+++ b/cpack.h
@@ -43,9 +43,14 @@
 int cpack_uint32(struct cpack_state *, u_int32_t *);
 int cpack_uint64(struct cpack_state *, u_int64_t *);
 
+u_int8_t *cpack_next_boundary(u_int8_t *buf, u_int8_t *p, size_t alignment);
+u_int8_t *cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize);
+
 #define cpack_int8(__s, __p)	cpack_uint8((__s),  (u_int8_t*)(__p))
 #define cpack_int16(__s, __p)	cpack_uint16((__s), (u_int16_t*)(__p))
 #define cpack_int32(__s, __p)	cpack_uint32((__s), (u_int32_t*)(__p))
 #define cpack_int64(__s, __p)	cpack_uint64((__s), (u_int64_t*)(__p))
 
+extern int cpack_advance(struct cpack_state *, const size_t);
+
 #endif /* _CPACK_H */