cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

null.c (980B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{linux.intel,addtoit}.com)
      4 */
      5
      6#include <stddef.h>
      7#include <errno.h>
      8#include <fcntl.h>
      9#include "chan_user.h"
     10#include <os.h>
     11
     12/* This address is used only as a unique identifier */
     13static int null_chan;
     14
     15static void *null_init(char *str, int device, const struct chan_opts *opts)
     16{
     17	return &null_chan;
     18}
     19
     20static int null_open(int input, int output, int primary, void *d,
     21		     char **dev_out)
     22{
     23	int fd;
     24
     25	*dev_out = NULL;
     26
     27	fd = open(DEV_NULL, O_RDWR);
     28	return (fd < 0) ? -errno : fd;
     29}
     30
     31static int null_read(int fd, char *c_out, void *unused)
     32{
     33	return -ENODEV;
     34}
     35
     36static void null_free(void *data)
     37{
     38}
     39
     40const struct chan_ops null_ops = {
     41	.type		= "null",
     42	.init		= null_init,
     43	.open		= null_open,
     44	.close		= generic_close,
     45	.read		= null_read,
     46	.write		= generic_write,
     47	.console_write	= generic_console_write,
     48	.window_size	= generic_window_size,
     49	.free		= null_free,
     50	.winch		= 0,
     51};