Example #1
0
/*
 * 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;
}