<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def gpio_get(self, pins=None):
 """Returns a list of states for the given pins. Defaults to the first four pins if an argument is not given. Args: self (JLink):
 the ``JLink`` instance pins (list):
 indices of the GPIO pins whose states are requested Returns: A list of states. Raises: JLinkException: on error. """

        if pins is None:
            pins = range(4)

        size = len(pins)
        indices = (ctypes.c_uint8 * size)(*pins)
        statuses = (ctypes.c_uint8 * size)()
        result = self._dll.JLINK_EMU_GPIO_GetState(ctypes.byref(indices),
                                                   ctypes.byref(statuses),
                                                   size)
        if result < 0:
            raise errors.JLinkException(result)

        return list(statuses)