/* * Open a log output device and return a fake fd. */ static int logOpen(const char* pathName, int flags) { LogState *logState; int fd = -1; lock(); logState = createLogState(); if (logState != NULL) { configureInitialState(pathName, logState); fd = logState->fakeFd; } else { errno = ENFILE; } unlock(); return fd; }
/* * Open an audio output device. */ FakeDev* wsOpenDevAudio(const char* pathName, int flags) { FakeDev* newDev = wsCreateFakeDev(pathName); if (newDev != NULL) { newDev->write = writeAudio; newDev->ioctl = ioctlAudio; newDev->close = closeAudio; AudioState* eventState = calloc(1, sizeof(AudioState)); if (configureInitialState(pathName, eventState) != 0) { free(eventState); return NULL; } newDev->state = eventState; } return newDev; }