Rev 4389 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4389 | Rev 4691 | ||
---|---|---|---|
Line 45... | Line 45... | ||
45 | #include <stdlib.h> |
45 | #include <stdlib.h> |
46 | #include <string.h> |
46 | #include <string.h> |
47 | #include <stdio.h> |
47 | #include <stdio.h> |
48 | #include <assert.h> |
48 | #include <assert.h> |
49 | #include <sys/types.h> |
49 | #include <sys/types.h> |
50 | #include <libadt/hash_table.h> |
50 | #include <adt/hash_table.h> |
51 | #include <as.h> |
51 | #include <as.h> |
52 | #include <libfs.h> |
52 | #include <libfs.h> |
53 | 53 | ||
54 | #define min(a, b) ((a) < (b) ? (a) : (b)) |
54 | #define min(a, b) ((a) < (b) ? (a) : (b)) |
55 | #define max(a, b) ((a) > (b) ? (a) : (b)) |
55 | #define max(a, b) ((a) > (b) ? (a) : (b)) |
Line 248... | Line 248... | ||
248 | nodep->bp = malloc(sizeof(fs_node_t)); |
248 | nodep->bp = malloc(sizeof(fs_node_t)); |
249 | if (!nodep->bp) { |
249 | if (!nodep->bp) { |
250 | free(nodep); |
250 | free(nodep); |
251 | return NULL; |
251 | return NULL; |
252 | } |
252 | } |
- | 253 | fs_node_initialize(nodep->bp); |
|
253 | nodep->bp->data = nodep; /* link the FS and TMPFS nodes */ |
254 | nodep->bp->data = nodep; /* link the FS and TMPFS nodes */ |
254 | if (!tmpfs_root_get(dev_handle)) |
255 | if (!tmpfs_root_get(dev_handle)) |
255 | nodep->index = TMPFS_SOME_ROOT; |
256 | nodep->index = TMPFS_SOME_ROOT; |
256 | else |
257 | else |
257 | nodep->index = tmpfs_next_index++; |
258 | nodep->index = tmpfs_next_index++; |
Line 406... | Line 407... | ||
406 | } |
407 | } |
407 | } |
408 | } |
408 | 409 | ||
409 | void tmpfs_mount(ipc_callid_t rid, ipc_call_t *request) |
410 | void tmpfs_mount(ipc_callid_t rid, ipc_call_t *request) |
410 | { |
411 | { |
411 | dev_handle_t mp_dev_handle = (dev_handle_t) IPC_GET_ARG1(*request); |
- | |
412 | fs_index_t mp_index = (fs_index_t) IPC_GET_ARG2(*request); |
- | |
413 | fs_handle_t mr_fs_handle = (fs_handle_t) IPC_GET_ARG3(*request); |
412 | libfs_mount(&tmpfs_libfs_ops, tmpfs_reg.fs_handle, rid, request); |
414 | dev_handle_t mr_dev_handle = (dev_handle_t) IPC_GET_ARG4(*request); |
- | |
415 | - | ||
416 | ipc_answer_0(rid, ENOTSUP); |
- | |
417 | } |
413 | } |
418 | 414 | ||
419 | void tmpfs_lookup(ipc_callid_t rid, ipc_call_t *request) |
415 | void tmpfs_lookup(ipc_callid_t rid, ipc_call_t *request) |
420 | { |
416 | { |
421 | libfs_lookup(&tmpfs_libfs_ops, tmpfs_reg.fs_handle, rid, request); |
417 | libfs_lookup(&tmpfs_libfs_ops, tmpfs_reg.fs_handle, rid, request); |
Line 598... | Line 594... | ||
598 | nodep->size = size; |
594 | nodep->size = size; |
599 | nodep->data = newdata; |
595 | nodep->data = newdata; |
600 | ipc_answer_0(rid, EOK); |
596 | ipc_answer_0(rid, EOK); |
601 | } |
597 | } |
602 | 598 | ||
- | 599 | void tmpfs_close(ipc_callid_t rid, ipc_call_t *request) |
|
- | 600 | { |
|
- | 601 | ipc_answer_0(rid, EOK); |
|
- | 602 | } |
|
- | 603 | ||
603 | void tmpfs_destroy(ipc_callid_t rid, ipc_call_t *request) |
604 | void tmpfs_destroy(ipc_callid_t rid, ipc_call_t *request) |
604 | { |
605 | { |
605 | dev_handle_t dev_handle = (dev_handle_t)IPC_GET_ARG1(*request); |
606 | dev_handle_t dev_handle = (dev_handle_t)IPC_GET_ARG1(*request); |
606 | fs_index_t index = (fs_index_t)IPC_GET_ARG2(*request); |
607 | fs_index_t index = (fs_index_t)IPC_GET_ARG2(*request); |
607 | int rc; |
608 | int rc; |
Line 620... | Line 621... | ||
620 | nh_link); |
621 | nh_link); |
621 | rc = tmpfs_destroy_node(FS_NODE(nodep)); |
622 | rc = tmpfs_destroy_node(FS_NODE(nodep)); |
622 | ipc_answer_0(rid, rc); |
623 | ipc_answer_0(rid, rc); |
623 | } |
624 | } |
624 | 625 | ||
- | 626 | void tmpfs_open_node(ipc_callid_t rid, ipc_call_t *request) |
|
- | 627 | { |
|
- | 628 | libfs_open_node(&tmpfs_libfs_ops, tmpfs_reg.fs_handle, rid, request); |
|
- | 629 | } |
|
- | 630 | ||
- | 631 | void tmpfs_stat(ipc_callid_t rid, ipc_call_t *request) |
|
- | 632 | { |
|
- | 633 | libfs_stat(&tmpfs_libfs_ops, tmpfs_reg.fs_handle, rid, request); |
|
- | 634 | } |
|
- | 635 | ||
- | 636 | void tmpfs_sync(ipc_callid_t rid, ipc_call_t *request) |
|
- | 637 | { |
|
- | 638 | /* Dummy implementation */ |
|
- | 639 | ipc_answer_0(rid, EOK); |
|
- | 640 | } |
|
- | 641 | ||
625 | /** |
642 | /** |
626 | * @} |
643 | * @} |
627 | */ |
644 | */ |