CMP EMBEDDED.COM

Login | Register     Welcome Guest  
HOME DESIGN PRODUCTS COLUMNS E-LEARNING CONFERENCES CODE FORUMS/BLOGS NEWSLETTERS CONTACT FEATURES RSS RSS

Listing 6: Driverýs RTLinux and Linux entry points for read()
 

// read entry point registered by rtl_register_rtldev()
static ssize_t rtl_pd_read(struct rtl_file *filp, char *buf, 
size_t count, loff_t* ppos)
{
u32 minor = RTL_MINOR_FROM_FILEPTR(filp);
board = minor / PD_MINOR_RANGE;
subsystem = minor % PD_MINOR_RANGE;
return pd_read(minor, buf, count);
}
// read entry point registered by register_chrdev()
static ssize_t ln_pd_read(struct file *filp, char *buf, 
size_t len, loff_t* ppos)
{
u32 minor = MINOR(inode->i_rdev);
return pd_read(minor, buf, count);
}
// main read() function
int pd_read(u32 minor, char *inpbuf, size_t count)
{
u32 board = minor / PD_MINOR_RANGE;
u32 subsystem = minor % PD_MINOR_RANGE;
// process read request to particular board and subsystem
...	
}

Return to article
Embedded.com Career Center
Looking for a new job?
SEARCH JOBS

Browse all jobs

SPONSOR
RECENT JOB POSTINGS





 :