cdev.c (c5810cfd8938c4581f7dbc8cc9deead3873a4430) | cdev.c (ef92aa117e2f9b0da6ee31283f099c8fc0f22a26) |
---|---|
1/* 08 Nov 1998*/ 2/* 3 * cdev.c 4 * 5 * 08 Nov 1998 Rajesh Vaidheeswarran 6 * 7 * Copyright (c) 1998 Rajesh Vaidheeswarran 8 * All rights reserved. --- 53 unchanged lines hidden (view full) --- 62 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 63 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 64 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 65 * SUCH DAMAGE. 66 * 67 * 68 * $FreeBSD$ 69 */ | 1/* 08 Nov 1998*/ 2/* 3 * cdev.c 4 * 5 * 08 Nov 1998 Rajesh Vaidheeswarran 6 * 7 * Copyright (c) 1998 Rajesh Vaidheeswarran 8 * All rights reserved. --- 53 unchanged lines hidden (view full) --- 62 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 63 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 64 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 65 * SUCH DAMAGE. 66 * 67 * 68 * $FreeBSD$ 69 */ |
70#include <sys/types.h> 71#include <sys/uio.h> | |
72#include <sys/param.h> | 70#include <sys/param.h> |
71#include <sys/uio.h> |
|
73#include <sys/proc.h> 74#include <sys/systm.h> 75#include <sys/ioccom.h> 76#include <sys/conf.h> 77 78#include "cdev.h" 79 80/* --- 52 unchanged lines hidden (view full) --- 133 case CDEV_IOCTL1: 134 printf("you called mydev_ioctl CDEV_IOCTL1\n"); 135 break; 136 default: 137 printf("No such ioctl for me!\n"); 138 error = EINVAL; 139 break; 140 } | 72#include <sys/proc.h> 73#include <sys/systm.h> 74#include <sys/ioccom.h> 75#include <sys/conf.h> 76 77#include "cdev.h" 78 79/* --- 52 unchanged lines hidden (view full) --- 132 case CDEV_IOCTL1: 133 printf("you called mydev_ioctl CDEV_IOCTL1\n"); 134 break; 135 default: 136 printf("No such ioctl for me!\n"); 137 error = EINVAL; 138 break; 139 } |
141 return error; | 140 return (error); |
142} 143 144/* 145 * mydev_write takes in a character string and saves it 146 * to buf for later accessing. 147 */ 148int 149mydev_write(dev_t dev, struct uio *uio, int ioflag) --- 6 unchanged lines hidden (view full) --- 156 err = copyinstr(uio->uio_iov->iov_base, &buf, 512, &len); 157 if (err != 0) { 158 printf("Write to \"cdev\" failed.\n"); 159 } 160 return(err); 161} 162 163/* | 141} 142 143/* 144 * mydev_write takes in a character string and saves it 145 * to buf for later accessing. 146 */ 147int 148mydev_write(dev_t dev, struct uio *uio, int ioflag) --- 6 unchanged lines hidden (view full) --- 155 err = copyinstr(uio->uio_iov->iov_base, &buf, 512, &len); 156 if (err != 0) { 157 printf("Write to \"cdev\" failed.\n"); 158 } 159 return(err); 160} 161 162/* |
164 * The mydev_read function just takes the buf that was saved | 163 * The mydev_read function just takes the buf that was saved |
165 * via mydev_write() and returns it to userland for 166 * accessing. 167 */ 168int 169mydev_read(dev_t dev, struct uio *uio, int ioflag) 170{ 171 int err = 0; 172 173 printf("mydev_read: dev_t=%d, uio=%p, ioflag=%d\n", 174 dev2udev(dev), uio, ioflag); 175 176 if (len <= 0) { | 164 * via mydev_write() and returns it to userland for 165 * accessing. 166 */ 167int 168mydev_read(dev_t dev, struct uio *uio, int ioflag) 169{ 170 int err = 0; 171 172 printf("mydev_read: dev_t=%d, uio=%p, ioflag=%d\n", 173 dev2udev(dev), uio, ioflag); 174 175 if (len <= 0) { |
177 err = -1; | 176 err = -1; |
178 } else { /* copy buf to userland */ 179 copystr(&buf, uio->uio_iov->iov_base, 513, &len); 180 } 181 return(err); 182} | 177 } else { /* copy buf to userland */ 178 copystr(&buf, uio->uio_iov->iov_base, 513, &len); 179 } 180 return(err); 181} |