mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 37185b3324
			
		
	
	
		37185b3324
		
	
	
	
	
		
			
			Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Richard Weinberger <richard@nod.at>
		
			
				
	
	
		
			52 lines
		
	
	
		
			970 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			970 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{linux.intel,addtoit}.com)
 | |
|  * Licensed under the GPL
 | |
|  */
 | |
| 
 | |
| #include <stddef.h>
 | |
| #include <errno.h>
 | |
| #include <fcntl.h>
 | |
| #include "chan_user.h"
 | |
| #include <os.h>
 | |
| 
 | |
| /* This address is used only as a unique identifier */
 | |
| static int null_chan;
 | |
| 
 | |
| static void *null_init(char *str, int device, const struct chan_opts *opts)
 | |
| {
 | |
| 	return &null_chan;
 | |
| }
 | |
| 
 | |
| static int null_open(int input, int output, int primary, void *d,
 | |
| 		     char **dev_out)
 | |
| {
 | |
| 	int fd;
 | |
| 
 | |
| 	*dev_out = NULL;
 | |
| 
 | |
| 	fd = open(DEV_NULL, O_RDWR);
 | |
| 	return (fd < 0) ? -errno : fd;
 | |
| }
 | |
| 
 | |
| static int null_read(int fd, char *c_out, void *unused)
 | |
| {
 | |
| 	return -ENODEV;
 | |
| }
 | |
| 
 | |
| static void null_free(void *data)
 | |
| {
 | |
| }
 | |
| 
 | |
| const struct chan_ops null_ops = {
 | |
| 	.type		= "null",
 | |
| 	.init		= null_init,
 | |
| 	.open		= null_open,
 | |
| 	.close		= generic_close,
 | |
| 	.read		= null_read,
 | |
| 	.write		= generic_write,
 | |
| 	.console_write	= generic_console_write,
 | |
| 	.window_size	= generic_window_size,
 | |
| 	.free		= null_free,
 | |
| 	.winch		= 0,
 | |
| };
 |