fork of PCE focusing on macplus, supporting DaynaPort SCSI network emulation
at master 134 lines 3.0 kB view raw
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}