auto import from //depot/cupcake/@135843
diff --git a/simulator/wrapsim/BitVector.h b/simulator/wrapsim/BitVector.h
new file mode 100644
index 0000000..048cf91
--- /dev/null
+++ b/simulator/wrapsim/BitVector.h
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2007 The Android Open Source Project
+ *
+ * Simple bit vector.
+ */
+#ifndef _WRAPSIM_BITVECTOR_H
+#define _WRAPSIM_BITVECTOR_H
+
+#include <stdint.h>
+
+/*
+ * Expanding bitmap, used for tracking resources.  Bits are numbered starting
+ * from zero.
+ */
+typedef struct BitVector {
+    int         isExpandable;   /* expand bitmap if we run out? */
+    int         storageSize;    /* current size, in 32-bit words */
+    uint32_t*   storage;
+} BitVector;
+
+/* allocate a bit vector with enough space to hold "startBits" bits */
+BitVector* wsAllocBitVector(int startBits, int isExpandable);
+void wsFreeBitVector(BitVector* pBits);
+
+/*
+ * Set/clear a single bit; assumes external synchronization.
+ *
+ * We always allocate the first possible bit.  If we run out of space in
+ * the bitmap, and it's not marked expandable, dvmAllocBit returns -1.
+ */
+int wsAllocBit(BitVector* pBits);
+void wsFreeBit(BitVector* pBits, int num);
+
+#endif /*_WRAPSIM_BITVECTOR_H*/