Ejemplo n.º 1
0
void spinUp()
{
    g_print("Spinning up Drive...\n");
    cdrom_set_speed(&cd, 1);
    cdrom_read(&cd, 0, 1000);
    cdrom_clear_cache(&cd);
}
Ejemplo n.º 2
0
void timedRead(void *ptr)
{
    struct timedReadParams *params = ptr;

    //g_print("\treading %d sectors from offset sector %d\n", (*params).count, (*params).sector);

    cdrom_read(&cd, (*params).sector, (*params).count);
}
Ejemplo n.º 3
0
void speedTest()
{
    int i;

    struct timedReadParams params;

    for(i = 1; i <= 52; i *= 2)
    {
        g_print("Spinning up Drive to %dx...\n", i);
        cdrom_set_speed(&cd, i);
        cdrom_read(&cd, 0, 1000);
        cdrom_clear_cache(&cd);

        params.sector = 0;
        params.count = 1000;

        g_print("\ttime: %f\n", stopwatch(timedRead, &params));
    }
}
Ejemplo n.º 4
0
Archivo: main.c Proyecto: jgraef/meinOS
static ssize_t cdrom_devfs_read(devfs_dev_t *devfs,void *buf,size_t count,off_t offset) {
  struct cdrom_device *dev = devfs->user_data;

  size_t lba = offset/dev->block_size;
  size_t off = offset%dev->block_size;
  size_t count_rem = count;

  while (count_rem>0) {
    size_t count_cur = off+count_rem>dev->block_size?dev->block_size-off:count_rem;
    void *cdrom_buf = cdrom_read(dev,lba,1);
    memcpy(buf,cdrom_buf+off,count_cur);
    off = 0;
    lba++;
    count_rem -= count_cur;
    buf += count_cur;
  }

  return count;
}