int register_resource(const char *name, const char *path) { char linkname[PATH_MAX]; linkname_from_resource_name(linkname, name); return register_path(linkname, path); }
int dCall(int callID, void* data) { struct driver_data* drvData = data; if(data == 0) return 0; kprintf("Received call!\n"); drvData->result = E_ERROR; switch(callID) { case CALL_CREATE: kprintf("Received FIFO Create CALL!\n"); ; int fileID = -1; for(int i = 0; i < FIFO_MAX_FILE_COUNT; i++) { if(!files[i]) { fileID = i; files[i] = calloc(1, sizeof(struct file)); break; } } if(fileID == -1) return 0; kprintf("Created FIFO %s...\n", drvData->data); int r = register_path((char*)drvData->data, ownDriverID, fileID); drvData->result = r ? E_ERROR : S_OK; break; default: break; } return 0; }
int register_minor(int minor, const char *path) { char linkname[PATH_MAX]; linkname_from_minor(linkname, minor); return register_path(linkname, path); }