static void get_from_file(int file_pos)
{
char *fname,*fname_save;
struct file * f = NULL,*f_save = NULL;
mm_segment_t orig_fs,orig_fs_save;
int length_read,length_write;
//get data from file
fname = "/usr/8k2ch16bit.wav";
f = filp_open(fname, O_RDONLY, 00);
if (!f || !f->f_op || !f->f_op->read)
{
printk("WARNING: File (read) object is a null pointer!!!/n");
}
f->f_pos = file_pos;
orig_fs = get_fs();
set_fs(KERNEL_DS);
length_read = f->f_op->read(f, at6600_state.dma_dac.transfer_buffer,DEFAULT_BUFFER_LENGTH, &f->f_pos);
if(length_read)
printk("read from file %s:%d/n",fname,length_read);
else
printk("read fail/n");
set_fs(orig_fs);
/* Release the file object pointer. */
fput(f);
fname_save = "/tmp/i2s.pcm";
f_save = filp_open(fname_save, O_RDWR|O_CREAT|O_APPEND, 00);
if (!f_save|| !f_save->f_op || !f_save->f_op->write)
{
printk("WARNING: File (write) object is a null pointer!!!/n");
}
f_save->f_pos = file_pos;
orig_fs_save= get_fs();
set_fs(KERNEL_DS);
length_write = f_save->f_op->write(f_save, at6600_state.dma_dac.transfer_buffer,DEFAULT_BUFFER_LENGTH, &f_save->f_pos);
if(length_write)
printk("write to file %s:%d/n",fname_save,DEFAULT_BUFFER_LENGTH);
else
printk("read fail/n");
set_fs(orig_fs_save);
/* Release the file object pointer. */
fput(f_save);
return;
}
{
char *fname,*fname_save;
struct file * f = NULL,*f_save = NULL;
mm_segment_t orig_fs,orig_fs_save;
int length_read,length_write;
//get data from file
fname = "/usr/8k2ch16bit.wav";
f = filp_open(fname, O_RDONLY, 00);
if (!f || !f->f_op || !f->f_op->read)
{
printk("WARNING: File (read) object is a null pointer!!!/n");
}
f->f_pos = file_pos;
orig_fs = get_fs();
set_fs(KERNEL_DS);
length_read = f->f_op->read(f, at6600_state.dma_dac.transfer_buffer,DEFAULT_BUFFER_LENGTH, &f->f_pos);
if(length_read)
printk("read from file %s:%d/n",fname,length_read);
else
printk("read fail/n");
set_fs(orig_fs);
/* Release the file object pointer. */
fput(f);
fname_save = "/tmp/i2s.pcm";
f_save = filp_open(fname_save, O_RDWR|O_CREAT|O_APPEND, 00);
if (!f_save|| !f_save->f_op || !f_save->f_op->write)
{
printk("WARNING: File (write) object is a null pointer!!!/n");
}
f_save->f_pos = file_pos;
orig_fs_save= get_fs();
set_fs(KERNEL_DS);
length_write = f_save->f_op->write(f_save, at6600_state.dma_dac.transfer_buffer,DEFAULT_BUFFER_LENGTH, &f_save->f_pos);
if(length_write)
printk("write to file %s:%d/n",fname_save,DEFAULT_BUFFER_LENGTH);
else
printk("read fail/n");
set_fs(orig_fs_save);
/* Release the file object pointer. */
fput(f_save);
return;
}