static int mca_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { struct mca_device *mca_dev = (struct mca_device *)data; int len = 0; /* Get the standard info */ len = mca_default_procfn(page, mca_dev); /* Do any device-specific processing, if there is any */ if(mca_dev->procfn) { len += mca_dev->procfn(page+len, mca_dev->slot, mca_dev->proc_dev); } if (len <= off+count) *eof = 1; *start = page + off; len -= off; if (len>count) len = count; if (len<0) len = 0; return len; } /* mca_read_proc() */
static int mca_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { struct mca_device *mca_dev = (struct mca_device *)data; int len = 0; len = mca_default_procfn(page, mca_dev); if(mca_dev->procfn) { len += mca_dev->procfn(page+len, mca_dev->slot, mca_dev->proc_dev); } if (len <= off+count) *eof = 1; *start = page + off; len -= off; if (len>count) len = count; if (len<0) len = 0; return len; }