diff options
author | Ian Moffett <ian@osmora.org> | 2024-07-24 20:03:09 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2024-07-24 20:03:09 -0400 |
commit | 5b55fd174ae878567846cc14af1bb9c35b668dd0 (patch) | |
tree | 2b8a17ae1b5a00e785c1cd1846e4e12092ead72f | |
parent | d0f86d075bf5d59471d90503a24e30b57b44a1e5 (diff) |
kernel: device: Add read/write stubs
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r-- | sys/include/sys/device.h | 11 | ||||
-rw-r--r-- | sys/kern/kern_stub.c | 44 |
2 files changed, 55 insertions, 0 deletions
diff --git a/sys/include/sys/device.h b/sys/include/sys/device.h index e0aef23..b1de7d3 100644 --- a/sys/include/sys/device.h +++ b/sys/include/sys/device.h @@ -40,6 +40,10 @@ typedef uint8_t devmajor_t; typedef uint8_t dev_t; +/* Device operation typedefs */ +typedef int(*dev_read_t)(dev_t, struct sio_txn *, int); +typedef int(*dev_write_t)(dev_t, struct sio_txn *, int); + struct cdevsw { int(*read)(dev_t dev, struct sio_txn *sio, int flags); int(*write)(dev_t dev, struct sio_txn *sio, int flags); @@ -56,5 +60,12 @@ dev_t dev_alloc(devmajor_t major); devmajor_t dev_alloc_major(void); int dev_register(devmajor_t major, dev_t dev, void *devsw); +int dev_noread(void); +int dev_nowrite(void); + +/* Device operation stubs */ +#define noread ((dev_read_t)dev_noread) +#define nowrite ((dev_write_t)dev_nowrite) + #endif /* _KERNEL */ #endif /* !_SYS_DEVICE_H_ */ diff --git a/sys/kern/kern_stub.c b/sys/kern/kern_stub.c new file mode 100644 index 0000000..65688e2 --- /dev/null +++ b/sys/kern/kern_stub.c @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of Hyra nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/device.h> +#include <sys/types.h> +#include <sys/errno.h> + +int +dev_noread(void) +{ + return -ENOTSUP; +} + +int +dev_nowrite(void) +{ + return -ENOTSUP; +} |