title: Unknown type name uint32/uint16
body: <p>In this header file, I am getting error: unknown type name uint32, uint16. I am new to Objective-C and I am trying to import a project in Xcode. Build is failing due to the above issues. Google didn't help.Tried adding <code>/stdint/stdint.h</code> in header search path ( <a href="https://stackoverflow.com/q/7897268/602524">xcode unknown type name</a>,  <a href="https://stackoverflow.com/q/8953274/602524">unknown type name &#39;uint8_t&#39;, MinGW</a>, <a href="https://stackoverflow.com/q/2093069/602524">Xcode - how to include c library and header file to cocoa project?</a>). Build still failing.</p>
  
  <pre><code>   /*-------------------------------------------------------------------------
       *
       * block.h
       *    POSTGRES disk block definitions.
       *
       *
       * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
       * Portions Copyright (c) 1994, Regents of the University of California
       *
       * $PostgreSQL: pgsql/src/include/storage/block.h,v 1.26 2010/01/02 16:58:08 momjian Exp $
       *
       *-------------------------------------------------------------------------
       */
      #ifndef BLOCK_H
      #define BLOCK_H
  
      /*
       * BlockNumber:
       *
       * each data file (heap or index) is divided into postgres disk blocks
       * (which may be thought of as the unit of i/o -- a postgres buffer
       * contains exactly one disk block).  the blocks are numbered
       * sequentially, 0 to 0xFFFFFFFE.
       *
       * InvalidBlockNumber is the same thing as P_NEW in buf.h.
       *
       * the access methods, the buffer manager and the storage manager are
       * more or less the only pieces of code that should be accessing disk
       * blocks directly.
       */
      typedef uint32 BlockNumber;
  
      #define InvalidBlockNumber      ((BlockNumber) 0xFFFFFFFF)
  
      #define MaxBlockNumber          ((BlockNumber) 0xFFFFFFFE)
  
      /*
       * BlockId:
       *
       * this is a storage type for BlockNumber.  in other words, this type
       * is used for on-disk structures (e.g., in HeapTupleData) whereas
       * BlockNumber is the type on which calculations are performed (e.g.,
       * in access method code).
       *
       * there doesn't appear to be any reason to have separate types except
       * for the fact that BlockIds can be SHORTALIGN'd (and therefore any
       * structures that contains them, such as ItemPointerData, can also be
       * SHORTALIGN'd).  this is an important consideration for reducing the
       * space requirements of the line pointer (ItemIdData) array on each
       * page and the header of each heap or index tuple, so it doesn't seem
       * wise to change this without good reason.
       */
      typedef struct BlockIdData
      {
          uint16      bi_hi;
          uint16      bi_lo;
      } BlockIdData;
  </code></pre>