/* * Copyright 2007 The Android Open Source Project * * Console tty device. */ #include "Common.h" #include <string.h> #include <sys/ioctl.h> #include <linux/vt.h> /* * Handle the various console ioctls, most of which we can just ignore. */ static int ioctlConsoleTty(FakeDev* dev, int fd, int request, void* argp) { wsLog("%s: ioctl(0x%x, %p)\n", dev->debugName, request, argp); switch (request) { case VT_GETSTATE: // struct vt_stat* /* * Looks like they want vs.v_active. This just gets fed back into * another console ioctl, so we don't really need to do anything. * We zero out the struct so the data will at least appear to be * initialized. */ memset(argp, 0, sizeof(struct vt_stat)); break; case VT_OPENQRY: // int* /* they want the console number */ *(int*)argp = 123; break; default: /* ignore anything we don't understand */ break; } return 0; } /* * Open the console TTY device, which responds to a collection of ioctl()s. */ FakeDev* wsOpenDevConsoleTty(const char* pathName, int flags) { FakeDev* newDev = wsCreateFakeDev(pathName); if (newDev != NULL) { newDev->ioctl = ioctlConsoleTty; } return newDev; }