From 871480933a1c28f8a9fed4c4d34d06c439a7a422 Mon Sep 17 00:00:00 2001 From: Srikant Patnaik Date: Sun, 11 Jan 2015 12:28:04 +0530 Subject: Moved, renamed, and deleted files The original directory structure was scattered and unorganized. Changes are basically to make it look like kernel structure. --- ANDROID_3.4.5/arch/um/drivers/xterm_kern.c | 76 ------------------------------ 1 file changed, 76 deletions(-) delete mode 100644 ANDROID_3.4.5/arch/um/drivers/xterm_kern.c (limited to 'ANDROID_3.4.5/arch/um/drivers/xterm_kern.c') diff --git a/ANDROID_3.4.5/arch/um/drivers/xterm_kern.c b/ANDROID_3.4.5/arch/um/drivers/xterm_kern.c deleted file mode 100644 index 8bd130f0..00000000 --- a/ANDROID_3.4.5/arch/um/drivers/xterm_kern.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) - * Licensed under the GPL - */ - -#include -#include -#include -#include -#include "irq_kern.h" -#include "os.h" - -struct xterm_wait { - struct completion ready; - int fd; - int pid; - int new_fd; -}; - -static irqreturn_t xterm_interrupt(int irq, void *data) -{ - struct xterm_wait *xterm = data; - int fd; - - fd = os_rcv_fd(xterm->fd, &xterm->pid); - if (fd == -EAGAIN) - return IRQ_NONE; - - xterm->new_fd = fd; - complete(&xterm->ready); - - return IRQ_HANDLED; -} - -int xterm_fd(int socket, int *pid_out) -{ - struct xterm_wait *data; - int err, ret; - - data = kmalloc(sizeof(*data), GFP_KERNEL); - if (data == NULL) { - printk(KERN_ERR "xterm_fd : failed to allocate xterm_wait\n"); - return -ENOMEM; - } - - /* This is a locked semaphore... */ - *data = ((struct xterm_wait) { .fd = socket, - .pid = -1, - .new_fd = -1 }); - init_completion(&data->ready); - - err = um_request_irq(XTERM_IRQ, socket, IRQ_READ, xterm_interrupt, - IRQF_SHARED | IRQF_SAMPLE_RANDOM, - "xterm", data); - if (err) { - printk(KERN_ERR "xterm_fd : failed to get IRQ for xterm, " - "err = %d\n", err); - ret = err; - goto out; - } - - /* ... so here we wait for an xterm interrupt. - * - * XXX Note, if the xterm doesn't work for some reason (eg. DISPLAY - * isn't set) this will hang... */ - wait_for_completion(&data->ready); - - free_irq(XTERM_IRQ, data); - - ret = data->new_fd; - *pid_out = data->pid; - out: - kfree(data); - - return ret; -} -- cgit