OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [or1ksim/] [peripheral/] [generic.c] - Diff between revs 19 and 82

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 19 Rev 82
Line 97... Line 97...
  model_array[1] = (host_val >>  8) & 0xff;
  model_array[1] = (host_val >>  8) & 0xff;
  model_array[2] = (host_val >> 16) & 0xff;
  model_array[2] = (host_val >> 16) & 0xff;
  model_array[3] = (host_val >> 24) & 0xff;
  model_array[3] = (host_val >> 24) & 0xff;
#endif
#endif
 
 
  return *((unsigned long int *)model_array);
  unsigned long int *res = (unsigned long int *) model_array;
 
  return *res;
 
 
}       /* htoml () */
}       /* htoml () */
 
 
 
 
/* Convert a 16-bit value from host to model endianess */
/* Convert a 16-bit value from host to model endianess */
Line 116... Line 117...
#else
#else
  model_array[0] = (host_val      ) & 0xff;
  model_array[0] = (host_val      ) & 0xff;
  model_array[1] = (host_val >>  8) & 0xff;
  model_array[1] = (host_val >>  8) & 0xff;
#endif
#endif
 
 
  return *((unsigned short int *)model_array);
  unsigned short int *res = (unsigned short int *) model_array;
 
  return *res;
 
 
}       /* htoms () */
}       /* htoms () */
 
 
 
 
/* Convert a 32-bit value from model to host endianess */
/* Convert a 32-bit value from model to host endianess */
Line 224... Line 226...
 
 
      /* This works whatever the host endianess */
      /* This works whatever the host endianess */
      memset (mask_array, 0, 4);
      memset (mask_array, 0, 4);
      mask_array[bytenum] = 0xff;
      mask_array[bytenum] = 0xff;
 
 
      res       = ext_read (wordaddr, *((unsigned int *)mask_array));
      unsigned int *arg_ptr = (unsigned int *) mask_array;
 
      res       = ext_read (wordaddr, *arg_ptr);
      res_array = (uint8_t *)(&res);
      res_array = (uint8_t *)(&res);
 
 
      return  res_array[bytenum];
      return  res_array[bytenum];
    }
    }
}                               /* generic_read_byte() */
}                               /* generic_read_byte() */
Line 261... Line 264...
      memset (mask_array, 0, 4);
      memset (mask_array, 0, 4);
      mask_array[bytenum] = 0xff;
      mask_array[bytenum] = 0xff;
      memset (value_array, 0, 4);
      memset (value_array, 0, 4);
      value_array[bytenum] = value;
      value_array[bytenum] = value;
 
 
      ext_write (wordaddr, *((unsigned long int *)mask_array),
      unsigned long int *arg1_ptr = (unsigned long int *)mask_array;
                 *((unsigned long int *)value_array));
      unsigned long int *arg2_ptr = (unsigned long int *)value_array;
 
      ext_write (wordaddr, *arg1_ptr, *arg2_ptr);
    }
    }
}                               /* generic_write_byte() */
}                               /* generic_write_byte() */
 
 
 
 
/* Result is in model endianess */
/* Result is in model endianess */
Line 307... Line 311...
      /* This works whatever the host endianess */
      /* This works whatever the host endianess */
      memset (mask_array, 0, 4);
      memset (mask_array, 0, 4);
      mask_array[bytenum]     = 0xff;
      mask_array[bytenum]     = 0xff;
      mask_array[bytenum + 1] = 0xff;
      mask_array[bytenum + 1] = 0xff;
 
 
      res       = ext_read (wordaddr, *((unsigned int *)mask_array));
      unsigned int *arg_ptr = (unsigned int *) mask_array;
 
      res       = ext_read (wordaddr, *arg_ptr);
      res_array = (uint8_t *)(&res);
      res_array = (uint8_t *)(&res);
 
 
      hwres_array[0] = res_array[bytenum];
      hwres_array[0] = res_array[bytenum];
      hwres_array[1] = res_array[bytenum + 1];
      hwres_array[1] = res_array[bytenum + 1];
 
 
      return htoms (*((uint16_t *)hwres_array));
      uint16_t *hwres_ptr = (uint16_t *) hwres_array;
 
      return htoms (*hwres_ptr);
    }
    }
}                               /* generic_read_hw() */
}                               /* generic_read_hw() */
 
 
 
 
/* Value is in model endianness */
/* Value is in model endianness */
Line 360... Line 366...
      memset (value_array, 0, 4);
      memset (value_array, 0, 4);
      hw_value_array           = (uint8_t *)(&host_value);
      hw_value_array           = (uint8_t *)(&host_value);
      value_array[bytenum]     = hw_value_array[0];
      value_array[bytenum]     = hw_value_array[0];
      value_array[bytenum + 1] = hw_value_array[1];
      value_array[bytenum + 1] = hw_value_array[1];
 
 
      ext_write (wordaddr, *((unsigned long int *)mask_array),
      unsigned long int *arg1_ptr = (unsigned long int *)mask_array;
                 *((unsigned long int *)value_array));
      unsigned long int *arg2_ptr = (unsigned long int *)value_array;
 
      ext_write (wordaddr, *arg1_ptr, *arg2_ptr);
    }
    }
}                               /* generic_write_hw() */
}                               /* generic_write_hw() */
 
 
 
 
static uint32_t
static uint32_t

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.