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}