fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation
1/*****************************************************************************
2 * pce *
3 *****************************************************************************/
4
5/*****************************************************************************
6 * File name: src/drivers/char/char-null.c *
7 * Created: 2009-03-10 by Hampa Hug <hampa@hampa.ch> *
8 * Copyright: (C) 2009-2011 Hampa Hug <hampa@hampa.ch> *
9 *****************************************************************************/
10
11/*****************************************************************************
12 * This program is free software. You can redistribute it and / or modify it *
13 * under the terms of the GNU General Public License version 2 as published *
14 * by the Free Software Foundation. *
15 * *
16 * This program is distributed in the hope that it will be useful, but *
17 * WITHOUT ANY WARRANTY, without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General *
19 * Public License for more details. *
20 *****************************************************************************/
21
22
23#include <stdlib.h>
24#include <stdio.h>
25#include <string.h>
26
27#include <drivers/char/char.h>
28#include <drivers/char/char-null.h>
29
30
31static
32void chr_null_close (char_drv_t *cdrv)
33{
34 char_null_t *drv;
35
36 drv = cdrv->ext;
37
38 free (drv);
39}
40
41static
42unsigned chr_null_read (char_drv_t *cdrv, void *buf, unsigned cnt)
43{
44#if 0
45 char_null_t *drv;
46
47 drv = cdrv->ext;
48#endif
49
50 return (0);
51}
52
53static
54unsigned chr_null_write (char_drv_t *cdrv, const void *buf, unsigned cnt)
55{
56#if 0
57 char_null_t *drv;
58
59 drv = cdrv->ext;
60#endif
61
62 return (cnt);
63}
64
65static
66int chr_null_get_ctl (char_drv_t *cdrv, unsigned *ctl)
67{
68#if 0
69 char_null_t *drv;
70
71 drv = cdrv->ext;
72#endif
73
74 *ctl = PCE_CHAR_DSR | PCE_CHAR_CTS | PCE_CHAR_CD;
75
76 return (0);
77}
78
79static
80int chr_null_set_ctl (char_drv_t *cdrv, unsigned ctl)
81{
82#if 0
83 char_null_t *drv;
84
85 drv = cdrv->ext;
86#endif
87
88 return (0);
89}
90
91static
92int chr_null_set_params (char_drv_t *cdrv, unsigned long bps, unsigned bpc, unsigned parity, unsigned stop)
93{
94#if 0
95 char_null_t *drv;
96
97 drv = cdrv->ext;
98#endif
99
100 return (0);
101}
102
103static
104int chr_null_init (char_null_t *drv, const char *name)
105{
106 chr_init (&drv->cdrv, drv);
107
108 drv->cdrv.close = chr_null_close;
109 drv->cdrv.read = chr_null_read;
110 drv->cdrv.write = chr_null_write;
111 drv->cdrv.get_ctl = chr_null_get_ctl;
112 drv->cdrv.set_ctl = chr_null_set_ctl;
113 drv->cdrv.set_params = chr_null_set_params;
114
115 return (0);
116}
117
118char_drv_t *chr_null_open (const char *name)
119{
120 char_null_t *drv;
121
122 drv = malloc (sizeof (char_null_t));
123
124 if (drv == NULL) {
125 return (NULL);
126 }
127
128 if (chr_null_init (drv, name)) {
129 free (drv);
130 return (NULL);
131 }
132
133 return (&drv->cdrv);
134}