 }
 
 
+//------------------------------------------------------------------------------
+// MARK: GLOBAL PRIVATE PROPERTIES
+//------------------------------------------------------------------------------
+
+
+// As defined in <mach/tash_info.h>
+
+private let HOST_BASIC_INFO_COUNT         : mach_msg_type_number_t =
+                      UInt32(sizeof(host_basic_info_data_t) / sizeof(integer_t))
+private let HOST_LOAD_INFO_COUNT          : mach_msg_type_number_t =
+                       UInt32(sizeof(host_load_info_data_t) / sizeof(integer_t))
+private let HOST_CPU_LOAD_INFO_COUNT      : mach_msg_type_number_t =
+                   UInt32(sizeof(host_cpu_load_info_data_t) / sizeof(integer_t))
+private let HOST_VM_INFO_COUNT            : mach_msg_type_number_t =
+                        UInt32(sizeof(vm_statistics_data_t) / sizeof(integer_t))
+private let HOST_VM_INFO64_COUNT          : mach_msg_type_number_t =
+                      UInt32(sizeof(vm_statistics64_data_t) / sizeof(integer_t))
+private let HOST_SCHED_INFO_COUNT         : mach_msg_type_number_t =
+                      UInt32(sizeof(host_sched_info_data_t) / sizeof(integer_t))
+private let PROCESSOR_SET_LOAD_INFO_COUNT : mach_msg_type_number_t =
+              UInt32(sizeof(processor_set_load_info_data_t) / sizeof(natural_t))
+private let TASK_BASIC_INFO_64_COUNT      : mach_msg_type_number_t =
+                   UInt32(sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
+private let TASK_EVENTS_INFO_COUNT		  : mach_msg_type_number_t =
+                     UInt32(sizeof(task_events_info_data_t) / sizeof(natural_t))
+private let TASK_KERNELMEMORY_INFO_COUNT  : mach_msg_type_number_t =
+               UInt32(sizeof(task_kernelmemory_info_data_t) / sizeof(natural_t))
+private let TASK_POWER_INFO_COUNT         : mach_msg_type_number_t =
+                      UInt32(sizeof(task_power_info_data_t) / sizeof(natural_t))
+private let TASK_POWER_INFO_V2_COUNT	  : mach_msg_type_number_t =
+                   UInt32(sizeof(task_power_info_v2_data_t) / sizeof(natural_t))
+private let TASK_VM_INFO_COUNT            : mach_msg_type_number_t =
+                         UInt32(sizeof(task_vm_info_data_t) / sizeof(natural_t))
+private let THREAD_BASIC_INFO_COUNT       : mach_msg_type_number_t =
+                    UInt32(sizeof(thread_basic_info_data_t) / sizeof(natural_t))
+
+
+
 /**
 CPU, Memory, Load, Task, Thread.
 */

    
    
    //--------------------------------------------------------------------------
    // MARK: PUBLIC PROPERTIES
    //--------------------------------------------------------------------------
    
    
    /**
    System page size.
    
    - Can check this via pagesize shell command as well
    - C lib function getpagesize()
    - host_page_size()
    
    - This page size var was added starting 10.9/iOS 7, same as Swift's
      aval, thus we can use it
    */
    public let PAGE_SIZE = vm_kernel_page_size

    
    //--------------------------------------------------------------------------
    // MARK: PRIVATE PROPERTIES
    //--------------------------------------------------------------------------
    
    
    // Swift can't handle complex macros, thus we import these manually
    
    private let HOST_BASIC_INFO_COUNT         : mach_msg_type_number_t =
                      UInt32(sizeof(host_basic_info_data_t) / sizeof(integer_t))
    private let HOST_LOAD_INFO_COUNT          : mach_msg_type_number_t =
                       UInt32(sizeof(host_load_info_data_t) / sizeof(integer_t))
    private let HOST_CPU_LOAD_INFO_COUNT      : mach_msg_type_number_t =
                   UInt32(sizeof(host_cpu_load_info_data_t) / sizeof(integer_t))
    private let HOST_VM_INFO_COUNT            : mach_msg_type_number_t =
                        UInt32(sizeof(vm_statistics_data_t) / sizeof(integer_t))
    private let HOST_VM_INFO64_COUNT          : mach_msg_type_number_t =
                      UInt32(sizeof(vm_statistics64_data_t) / sizeof(integer_t))
    private let HOST_SCHED_INFO_COUNT         : mach_msg_type_number_t =
                      UInt32(sizeof(host_sched_info_data_t) / sizeof(integer_t))
    private let PROCESSOR_SET_LOAD_INFO_COUNT : mach_msg_type_number_t =
              UInt32(sizeof(processor_set_load_info_data_t) / sizeof(natural_t))
    private let TASK_BASIC_INFO_64_COUNT      : mach_msg_type_number_t =
                   UInt32(sizeof(task_basic_info_64_data_t) / sizeof(natural_t))
    private let TASK_EVENTS_INFO_COUNT		  : mach_msg_type_number_t =
                     UInt32(sizeof(task_events_info_data_t) / sizeof(natural_t))
    private let TASK_KERNELMEMORY_INFO_COUNT  : mach_msg_type_number_t =
               UInt32(sizeof(task_kernelmemory_info_data_t) / sizeof(natural_t))
    private let TASK_POWER_INFO_COUNT         : mach_msg_type_number_t =
                      UInt32(sizeof(task_power_info_data_t) / sizeof(natural_t))
    private let TASK_POWER_INFO_V2_COUNT	  : mach_msg_type_number_t =
                   UInt32(sizeof(task_power_info_v2_data_t) / sizeof(natural_t))
    private let TASK_VM_INFO_COUNT            : mach_msg_type_number_t =
                         UInt32(sizeof(task_vm_info_data_t) / sizeof(natural_t))
    private let THREAD_BASIC_INFO_COUNT       : mach_msg_type_number_t =
                    UInt32(sizeof(thread_basic_info_data_t) / sizeof(natural_t))
    
    
    /**

    var began    : UInt64 = 0
    var previous : UInt64 = 0
}


/*
* Process sample information.
