error_message ("Opaque array should be"
error_message (1, "Opaque array should be"
encode_array (char *name, Type *type, FILE *f, EncodeType encodetype){     if (type->subtype->type == TOPAQUE) {	  if (type->size % 4 != 0)	       error_message ("Opaque array should be"			      "multiple of 4");	  switch (encodetype) {	       case ENCODE_RX :		    fprintf (f,			     "if(rx_Write (call, %s, %d) != %d)\n"			     "goto fail;",			     name, type->size, type->size);		    break;	       case DECODE_RX :		    fprintf (f,			     "if(rx_Read (call, %s, %d) != %d)\n"			     "goto fail;",			     name, type->size, type->size);		    break;	       case ENCODE_MEM :		    fprintf (f, "if (*total_len < %u) { errno = EFAULT; return NULL ; }\n"			     "memcpy (ptr, %s, %u);\n", type->size, name,			     type->size);		    fprintf (f, "ptr += %u; *total_len -= %u;\n", 			     type->size, type->size);		    break;	       case DECODE_MEM :		    fprintf (f, "if (*total_len < %u) { errno = EFAULT; return NULL ; }\n"			     "memcpy (%s, ptr, %u);\n", type->size, name,			     type->size);		    fprintf (f, "ptr += %u; *total_len -= %u;\n", 			     type->size, type->size);		    break;	       default :		    abort ();	  }     } else {	  char tmp[256];	  fprintf (f, "{\nint i%lu;\nfor(i%lu = 0; i%lu < %u;"		   "++i%lu){\n", tmpcnt, tmpcnt, tmpcnt, type->size,tmpcnt);	  snprintf(tmp, sizeof(tmp)-1, "%s[i%lu]", name, tmpcnt);	  tmpcnt++;	  encode_type (tmp , type->subtype, f, encodetype);	  tmpcnt--;	  fprintf (f, "}\n}\n");     }}