mbstate_t *state, int flags, void *data,
internal_ucs4le_loop (const unsigned char **inptrp, const unsigned char *inend,		      unsigned char **outptrp, unsigned char *outend,		      mbstate_t *state, int flags, void *data,		      size_t *irreversible){  const unsigned char *inptr = *inptrp;  unsigned char *outptr = *outptrp;  size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;  int result;#if __BYTE_ORDER == __BIG_ENDIAN  /* Sigh, we have to do some real work.  */  size_t cnt;  for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)    *((uint32_t *) outptr)++ = bswap_32 (*(uint32_t *) inptr);  *inptrp = inptr;  *outptrp = outptr;#elif __BYTE_ORDER == __LITTLE_ENDIAN  /* Simply copy the data.  */  *inptrp = inptr + n_convert * 4;  *outptrp = __mempcpy (outptr, inptr, n_convert * 4);#else# error "This endianess is not supported."#endif  /* Determine the status.  */  if (*inptrp == inend)    result = __GCONV_EMPTY_INPUT;  else if (*outptrp == outend)    result = __GCONV_FULL_OUTPUT;  else    result = __GCONV_INCOMPLETE_INPUT;  return result;}