+2018-06-01  Alan Hayward  <alan.hayward@arm.com>
+
+       * aarch64-tdep.c (aarch64_read_description): Use uint64_t for VQ.
+       * aarch64-tdep.h (aarch64_read_description): Likewise.
+       * arch/aarch64.c (aarch64_create_target_description): Likewise.
+       * arch/aarch64.h (aarch64_create_target_description): Likewise.
+       * features/aarch64-sve.c (create_feature_aarch64_sve): Likewise.
+       * nat/aarch64-sve-linux-ptrace.c(aarch64_sve_get_vq): Likewise.
+       * nat/aarch64-sve-linux-ptrace.h (aarch64_sve_get_vq): Likewise.
+
 2018-06-02  Simon Marchi  <simon.marchi@ericsson.com>
 
        * value.c (value_fetch_lazy_bitfield): New.
 
    (It is not possible to set VQ to zero on an SVE system).  */
 
 const target_desc *
-aarch64_read_description (long vq)
+aarch64_read_description (uint64_t vq)
 {
   if (vq > AARCH64_MAX_SVE_VQ)
-    error (_("VQ is %ld, maximum supported value is %d"), vq,
+    error (_("VQ is %" PRIu64 ", maximum supported value is %d"), vq,
           AARCH64_MAX_SVE_VQ);
 
   struct target_desc *tdesc = tdesc_aarch64_list[vq];
 
   int (*aarch64_syscall_record) (struct regcache *regcache, unsigned long svc_number);
 };
 
-const target_desc *aarch64_read_description (long vq);
+const target_desc *aarch64_read_description (uint64_t vq);
 
 extern int aarch64_process_record (struct gdbarch *gdbarch,
                                struct regcache *regcache, CORE_ADDR addr);
 
 /* See arch/aarch64.h.  */
 
 target_desc *
-aarch64_create_target_description (long vq)
+aarch64_create_target_description (uint64_t vq)
 {
   target_desc *tdesc = allocate_target_description ();
 
 
    the presence of SVE and the Vector Quotient - the number of 128bit chunks in
    an SVE Z register.  */
 
-target_desc *aarch64_create_target_description (long vq);
+target_desc *aarch64_create_target_description (uint64_t vq);
 
 /* Register numbers of various important registers.
    Note that on SVE, the Z registers reuse the V register numbers and the V
 
 
 static int
 create_feature_aarch64_sve (struct target_desc *result, long regnum,
-                           int scale)
+                           uint64_t scale)
 {
   struct tdesc_feature *feature;
   tdesc_type *element_type, *field_type;
 
 
 /* See nat/aarch64-sve-linux-ptrace.h.  */
 
-unsigned long
+uint64_t
 aarch64_sve_get_vq (int tid)
 {
   struct iovec iovec;
 
 /* Read VQ for the given tid using ptrace.  If SVE is not supported then zero
    is returned (on a system that supports SVE, then VQ cannot be zero).  */
 
-extern unsigned long aarch64_sve_get_vq (int tid);
+uint64_t aarch64_sve_get_vq (int tid);
 
 /* Structures and defines taken from sigcontext.h.  */