Fix issues encountered in google3 roll.

We need to avoid accidental G3 path rewrites, and ensure that our
types are always properly forward-declared (in a C friendly way).

Change-Id: Ic81087bc6f99636b441c35351844aa7df10dc7b2
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/774816
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
diff --git a/skcms_internal.h b/skcms_internal.h
index 5ad2581..f230564 100644
--- a/skcms_internal.h
+++ b/skcms_internal.h
@@ -10,4 +10,4 @@
 // skcms_internal.h contains APIs shared by skcms' internals and its test tools.
 // Please don't use this header from outside the skcms repo.
 
-#include "src/skcms_internals.h"
+#include "src/skcms_internals.h"  // NO_G3_REWRITE
diff --git a/src/skcms_internals.h b/src/skcms_internals.h
index 626fb3f..48a7461 100644
--- a/src/skcms_internals.h
+++ b/src/skcms_internals.h
@@ -71,6 +71,10 @@
     const uint8_t* buf;
 } skcms_ICCTag;
 
+typedef struct skcms_ICCProfile skcms_ICCProfile;
+typedef struct skcms_TransferFunction skcms_TransferFunction;
+typedef union skcms_Curve skcms_Curve;
+
 void skcms_GetTagByIndex    (const skcms_ICCProfile*, uint32_t idx, skcms_ICCTag*);
 bool skcms_GetTagBySignature(const skcms_ICCProfile*, uint32_t sig, skcms_ICCTag*);