Open flow
Retired DISLab
(버전 사이의 차이)
(새 문서: <uml> @startuml (*)-->SYSCALL_DEFINE3(OPEN) -->do_sys_open() -->===a=== ===a===-->getname() -->getname_flags ===a===-->get_unused_flags() -->__alloc_fd -->find_next_zero_bit ===a===--...) |
|||
(한 사용자의 중간의 편집 3개 숨겨짐) | |||
2번째 줄: | 2번째 줄: | ||
@startuml | @startuml | ||
(*)-->SYSCALL_DEFINE3(OPEN) | (*)-->SYSCALL_DEFINE3(OPEN) | ||
− | -->do_sys_open | + | -->do_sys_open |
− | + | do_sys_open-->getname(filename) | |
− | + | ||
-->getname_flags | -->getname_flags | ||
− | + | do_sys_open-->get_unused_flags() | |
-->__alloc_fd | -->__alloc_fd | ||
-->find_next_zero_bit | -->find_next_zero_bit | ||
− | + | do_sys_open-->do_filp_open | |
-->path_openat | -->path_openat | ||
− | + | path_openat-->get_empty_filp | |
− | + | path_openat-->[flag & O_TMPFILE]do_tmpfile | |
− | + | ||
-->path_lookupat | -->path_lookupat | ||
− | --> | + | path_lookupat-->path_init |
− | + | path_lookupat-->link_path_walk | |
− | + | path_openat -->path_init | |
− | + | path_openat -->link_path_walk | |
− | + | -->walk_component | |
− | + | walk_component-->lookup_fast(nameidata,path,inode) | |
− | + | walk_component->lookup_slow(nameidata,path) | |
+ | path_openat-->do_last | ||
+ | do_sys_open-->fd_install(fd,f) | ||
-->__fd_install | -->__fd_install | ||
@enduml | @enduml | ||
</uml> | </uml> |
2014년 5월 15일 (목) 21:46 현재 판