code: def memory_zones(self):
          
          count = self.num_memory_zones()
          if count == 0:
              return list()
  
          buf = (structs.JLinkMemoryZone * count)()
          res = self._dll.JLINK_GetMemZones(buf, count)
          if res < 0:
              raise errors.JLinkException(res)
  
          return list(buf)
docs: Gets all memory zones supported by the current target.
  
          Some targets support multiple memory zones.  This function provides the
          ability to get a list of all the memory zones to facilate using the
          memory zone routing functions.
  
          Args:
            self (JLink): the ``JLink`` instance
  
          Returns:
            A list of all the memory zones as ``JLinkMemoryZone`` structures.
  
          Raises:
            JLinkException: on hardware errors.