Example #1
0
int register_resource(const char *name, const char *path)
{
	char linkname[PATH_MAX];

	linkname_from_resource_name(linkname, name);
	return register_path(linkname, path);
}
Example #2
0
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;
}
Example #3
0
int register_minor(int minor, const char *path)
{
	char linkname[PATH_MAX];

	linkname_from_minor(linkname, minor);
	return register_path(linkname, path);
}