function GPT( options ) {

  if( !(this instanceof GPT) ) {
    return new GPT( options )
  }

  options = options != null ? options : {}

  /** @type {Number} Storage device's block size in bytes */
  this.blockSize = options.blockSize || 512

  /** @type {String} GUID of the GUID Partition Table */
  this.guid = options.guid || GPT.GUID.ZERO
  /** @type {Number} GPT format revision (?) */
  this.revision = options.revision || 0
  /** @type {Number} Size of the GPT header in bytes */
  this.headerSize = options.headerSize || GPT.HEADER_SIZE
  /** @type {Number} GPT header's CRC32 checksum */
  this.headerChecksum = 0

  /** @type {Number} Logical block address of *this* GPT */
  this.currentLBA = options.currentLBA || 1
  /** @type {Number} Logical block address of the secondary GPT */
  this.backupLBA = options.backupLBA || 0
  /** @type {Number} Address of the first user-space usable logical block */
  this.firstLBA = options.firstLBA || 34
  /** @type {Number} Address of the last user-space usable logical block */
  this.lastLBA = options.lastLBA || 0

  /** @type {Number} LBA of partition table */
  this.tableOffset = options.tableOffset || GPT.TABLE_OFFSET
  /** @type {Number} Number of partition table entries */
  this.entries = options.entries || GPT.TABLE_ENTRIES
  /** @type {Number} Partition entry's size in bytes */
  this.entrySize = options.entrySize || GPT.TABLE_ENTRY_SIZE
  /** @type {Number} Partition table's CRC32 checksum */
  this.tableChecksum = 0

  // Array of partition entries
  this.partitions = []

}
function GPT( options ) {

  if( !(this instanceof GPT) ) {
    return new GPT( options )
  }

  options = options != null ? options : {}

  /** @type {Number} Storage device's block size in bytes */
  this.blockSize = options.blockSize || 512

  /** @type {String} GUID of the GUID Partition Table */
  this.guid = options.guid || GPT.GUID.ZERO
  /** @type {Number} GPT format revision (?) */
  this.revision = options.revision || 0
  /** @type {Number} Size of the GPT header in bytes */
  this.headerSize = options.headerSize || GPT.HEADER_SIZE
  /** @type {Number} GPT header's CRC32 checksum */
  this.headerChecksum = 0

  /** @type {Number} Logical block address of *this* GPT */
  this.currentLBA = options.currentLBA || 1
  /** @type {Number} Logical block address of the secondary GPT */
  this.backupLBA = options.backupLBA || 0
  /** @type {Number} Address of the first user-space usable logical block */
  this.firstLBA = options.firstLBA || 34
  /** @type {Number} Address of the last user-space usable logical block */
  this.lastLBA = options.lastLBA || 0

  /** @type {Number} LBA of partition table */
  this.tableOffset = options.tableOffset || GPT.TABLE_OFFSET
  /** @type {Number} Number of partition table entries */
  this.entries = options.entries || GPT.TABLE_ENTRIES
  /** @type {Number} Partition entry's size in bytes */
  this.entrySize = options.entrySize || GPT.TABLE_ENTRY_SIZE
  /** @type {Number} Partition table's CRC32 checksum */
  this.tableChecksum = 0

  // Array of partition entries
  this.partitions = []

}
function GPT ( options ) { if ( ! ( this instanceof GPT ) ) { return new GPT ( options ) } options = options != null ? options : { } /** @type {Number} Storage device's block size in bytes */ this . blockSize = options . blockSize || 512 /** @type {String} GUID of the GUID Partition Table */ this . guid = options . guid || GPT . GUID . ZERO /** @type {Number} GPT format revision (?) */ this . revision = options . revision || 0 /** @type {Number} Size of the GPT header in bytes */ this . headerSize = options . headerSize || GPT . HEADER_SIZE /** @type {Number} GPT header's CRC32 checksum */ this . headerChecksum = 0 /** @type {Number} Logical block address of *this* GPT */ this . currentLBA = options . currentLBA || 1 /** @type {Number} Logical block address of the secondary GPT */ this . backupLBA = options . backupLBA || 0 /** @type {Number} Address of the first user-space usable logical block */ this . firstLBA = options . firstLBA || 34 /** @type {Number} Address of the last user-space usable logical block */ this . lastLBA = options . lastLBA || 0 /** @type {Number} LBA of partition table */ this . tableOffset = options . tableOffset || GPT . TABLE_OFFSET /** @type {Number} Number of partition table entries */ this . entries = options . entries || GPT . TABLE_ENTRIES /** @type {Number} Partition entry's size in bytes */ this . entrySize = options . entrySize || GPT . TABLE_ENTRY_SIZE /** @type {Number} Partition table's CRC32 checksum */ this . tableChecksum = 0 // Array of partition entries this . partitions = [ ] }
GUID Partition Table
@constructor
@param {Object} [options]
@param {Number} [options.blockSize=512]
@returns {GPT}
GUID Partition Table