SYTest
Retired DISLab
(버전 사이의 차이)
(사용자 2명의 중간의 편집 3개 숨겨짐) | |||
1번째 줄: | 1번째 줄: | ||
<uml> | <uml> | ||
+ | page 2x2 | ||
class Scsi_Host<< (S,#FF7700)/scsi/scsi_host.h >> { | class Scsi_Host<< (S,#FF7700)/scsi/scsi_host.h >> { | ||
257번째 줄: | 258번째 줄: | ||
int (*permission) (struct inode *, int); | int (*permission) (struct inode *, int); | ||
struct posix_acl * (*get_acl)(struct inode *, int); | struct posix_acl * (*get_acl)(struct inode *, int); | ||
− | + | (*readlink) (struct dentry *, char __user *,int) : int | |
− | + | (*put_link) (struct dentry *, struct nameidata *, void *) : void | |
int (*create) (struct inode *,struct dentry *, umode_t, bool); | int (*create) (struct inode *,struct dentry *, umode_t, bool); | ||
int (*link) (struct dentry *,struct inode *,struct dentry *); | int (*link) (struct dentry *,struct inode *,struct dentry *); | ||
283번째 줄: | 284번째 줄: | ||
class dentry<< (S,#77FF00)/linux/dcache.h >> { | class dentry<< (S,#77FF00)/linux/dcache.h >> { | ||
− | unsigned int | + | d_flags : unsigned int |
− | + | d_seq : seqcount_t | |
− | struct hlist_bl_node | + | d_hash : struct hlist_bl_node |
struct dentry *d_parent; | struct dentry *d_parent; | ||
struct qstr d_name; | struct qstr d_name; | ||
517번째 줄: | 518번째 줄: | ||
− | class dquot_operations << (S,#77FF00) >> { | + | class dquot_operations << (S,#77FF00)/linust/quota.h >> { |
+ | int (*write_dquot) (struct dquot *); /* Ordinary dquot write */ | ||
+ | struct dquot *(*alloc_dquot)(struct super_block *, int); | ||
+ | void (*destroy_dquot)(struct dquot *); | ||
+ | int (*acquire_dquot) (struct dquot *); | ||
+ | int (*release_dquot) (struct dquot *); | ||
+ | int (*mark_dirty) (struct dquot *); | ||
+ | int (*write_info) (struct super_block *, int); | ||
+ | qsize_t *(*get_reserved_space) (struct inode *); | ||
+ | } | ||
+ | dquot_operations --> dquot | ||
+ | |||
+ | class dquot << (S,#77FF00/linust/quota.h) >> { | ||
+ | struct hlist_node dq_hash; | ||
+ | struct list_head dq_inuse; | ||
+ | struct list_head dq_free; | ||
+ | struct list_head dq_dirty; | ||
+ | struct mutex dq_lock; | ||
+ | atomic_t dq_count; | ||
+ | wait_queue_head_t dq_wait_unused; | ||
+ | struct super_block *dq_sb; | ||
+ | struct kqid dq_id; | ||
+ | loff_t dq_off; | ||
+ | unsigned long dq_flags; | ||
+ | struct mem_dqblk dq_dqb; | ||
} | } | ||
+ | dquot --> hlist_node | ||
+ | dquot --> mutex | ||
+ | dquot --> super_block | ||
+ | dquot --> kqid | ||
+ | dquot --> mem_dqblk | ||
− | class | + | class kqid << (S,#77FF00)/linust/quota.h >> { |
+ | kuid_t uid; | ||
+ | kgid_t gid; | ||
+ | kprojid_t projid; | ||
+ | } | ||
+ | class mem_dqblk << (S,#77FF00)/linust/quota.h >> { | ||
+ | qsize_t dqb_bhardlimit; | ||
+ | qsize_t dqb_bsoftlimit; | ||
+ | qsize_t dqb_curspace; | ||
+ | qsize_t dqb_rsvspace; | ||
+ | qsize_t dqb_ihardlimit; | ||
+ | qsize_t dqb_isoftlimit; | ||
+ | qsize_t dqb_curinodes; | ||
+ | time_t dqb_btime; | ||
+ | time_t dqb_itime; | ||
} | } | ||
− | |||
+ | class quotactl_ops << (S,#77FF00))/linust/quota.h >> { | ||
+ | int (*quota_on)(struct super_block *, int, int, struct path *); | ||
+ | int (*quota_on_meta)(struct super_block *, int, int); | ||
+ | int (*quota_off)(struct super_block *, int); | ||
+ | int (*quota_sync)(struct super_block *, int); | ||
+ | int (*get_info)(struct super_block *, int, struct if_dqinfo *); | ||
+ | int (*set_info)(struct super_block *, int, struct if_dqinfo *); | ||
+ | int (*get_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *); | ||
+ | int (*set_dqblk)(struct super_block *, struct kqid, struct fs_disk_quota *); | ||
+ | int (*get_xstate)(struct super_block *, struct fs_quota_stat *); | ||
+ | int (*set_xstate)(struct super_block *, unsigned int, int); | ||
+ | int (*get_xstatev)(struct super_block *, struct fs_quota_statv *); | ||
} | } | ||
− | class | + | class export_operations<< (S,#77FF00)/linux/exportfs.h >> { |
+ | int (*encode_fh)(struct inode *inode, __u32 *fh, int *max_len, struct inode *parent); | ||
+ | struct dentry * (*fh_to_dentry)(struct super_block *sb, struct fid *fid, int fh_len, int fh_type); | ||
+ | struct dentry * (*fh_to_parent)(struct super_block *sb, struct fid *fid, int fh_len, int fh_type); | ||
+ | int (*get_name)(struct dentry *parent, char *name, struct dentry *child); | ||
+ | struct dentry * (*get_parent)(struct dentry *child); | ||
+ | int (*commit_metadata)(struct inode *inode); | ||
+ | } | ||
+ | export_operations --> dentry | ||
+ | class xattr_handler<< (S,#77FF00)/linux/xattr.h >> { | ||
+ | const char *prefix; | ||
+ | int flags; /* fs private flags passed back to the handlers */ | ||
+ | size_t (*list)(struct dentry *dentry, char *list, size_t list_size, const char *name, size_t name_len, int handler_flags); | ||
+ | int (*get)(struct dentry *dentry, const char *name, void *buffer, size_t size, int handler_flags); | ||
+ | int (*set)(struct dentry *dentry, const char *name, const void *buffer, size_t size, int flags, int handler_flags); | ||
} | } | ||
− | |||
+ | class hlist_bl_head << (S,#77FF00)/linust/list_bl.h >> { | ||
+ | struct hlist_bl_node *first; | ||
} | } | ||
− | + | hlist_blk_head --> hlist_bl_node | |
+ | |||
+ | class block_device << (S,#77FF00)/linux/fs.h >> { | ||
+ | dev_t bd_dev; /* not a kdev_t - it's a search key */ | ||
+ | int bd_openers; | ||
+ | struct inode * bd_inode; | ||
+ | struct super_block * bd_super; | ||
+ | struct mutex bd_mutex; | ||
+ | struct list_head bd_inodes; | ||
+ | void * bd_claiming; | ||
+ | void * bd_holder; | ||
+ | int bd_holders; | ||
+ | bool bd_write_holder; | ||
+ | struct block_device * bd_contains; | ||
+ | unsigned bd_block_size; | ||
+ | struct hd_struct * bd_part; | ||
+ | unsigned bd_part_count; | ||
+ | int bd_invalidated; | ||
+ | struct gendisk * bd_disk; | ||
+ | struct request_queue * bd_queue; | ||
+ | struct list_head bd_list; | ||
+ | unsigned long bd_private; | ||
+ | int bd_fsfreeze_count; | ||
+ | struct mutex bd_fsfreeze_mutex; | ||
} | } | ||
+ | block_device --> inode | ||
+ | block_device --> super_block | ||
+ | block_device --> mutex | ||
+ | block_device --> hd_struct | ||
+ | block_device --> gendisk | ||
+ | block_device --> request_queue | ||
+ | |||
+ | |||
+ | class hd_struct<< (S,#77FF00)/linux/genhd.h >> { | ||
+ | sector_t start_sect; | ||
+ | sector_t nr_sects; | ||
+ | seqcount_t nr_sects_seq; | ||
+ | sector_t alignment_offset; | ||
+ | unsigned int discard_alignment; | ||
+ | struct device __dev; | ||
+ | struct kobject *holder_dir; | ||
+ | int policy, partno; | ||
+ | struct partition_meta_info *info; | ||
+ | unsigned long stamp; | ||
+ | atomic_t in_flight[2]; | ||
+ | atomic_t ref; | ||
+ | struct rcu_head rcu_head; | ||
+ | } | ||
+ | hd_struct --> device | ||
+ | hd_struct --> kobject | ||
+ | hd_struct --> partition_meta_info | ||
+ | |||
+ | |||
+ | class kobject << (S,#77FF00)/linux/kobject.h >> { | ||
+ | const char *name; | ||
+ | struct list_head entry; | ||
+ | struct kobject *parent; | ||
+ | struct kset *kset; | ||
+ | struct kobj_type *ktype; | ||
+ | struct kernfs_node *sd; | ||
+ | struct kref kref; | ||
+ | unsigned int state_initialized:1; | ||
+ | unsigned int state_in_sysfs:1; | ||
+ | unsigned int state_add_uevent_sent:1; | ||
+ | unsigned int state_remove_uevent_sent:1; | ||
+ | unsigned int uevent_suppress:1; | ||
+ | } | ||
+ | kobject --> kset | ||
+ | kobject --> kobj_type | ||
+ | kobject --> kernfs_node | ||
+ | kobject --> kref | ||
+ | |||
+ | |||
+ | class kset << (S,#77FF00)/linux/kobject.h >> { | ||
+ | struct list_head list; | ||
+ | spinlock_t list_lock; | ||
+ | struct kobject kobj; | ||
+ | const struct kset_uevent_ops *uevent_ops; | ||
+ | } | ||
+ | kset --> kobject | ||
+ | |||
+ | class kobj_type << (S,#77FF00)/linux/kobject.h >> { | ||
+ | void (*release)(struct kobject *kobj); | ||
+ | const struct sysfs_ops *sysfs_ops; | ||
+ | struct attribute **default_attrs; | ||
+ | const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj); | ||
+ | const void *(*namespace)(struct kobject *kobj); | ||
+ | } | ||
+ | kobj_type --> sysfs_ops | ||
+ | kobj_type --> attribute | ||
+ | kobj_type --> kobj_ns_type_operations | ||
+ | |||
+ | |||
+ | class sysfs_ops << (S,#77FF00)/linux/sysfs.h >> { | ||
+ | ssize_t (*show)(struct kobject *, struct attribute *, char *); | ||
+ | ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); | ||
+ | } | ||
+ | |||
+ | |||
+ | class attribute << (S,#77FF00)/linux/sysfs.h >> { | ||
+ | const char *name; | ||
+ | umode_t mode; | ||
+ | } | ||
+ | |||
+ | |||
+ | class kobj_ns_type_operations << (S,#77FF00)/linux/kobject_ns.h >> { | ||
+ | enum kobj_ns_type type; | ||
+ | bool (*current_may_mount)(void); | ||
+ | void *(*grab_current_ns)(void); | ||
+ | const void *(*netlink_ns)(struct sock *sk); | ||
+ | const void *(*initial_ns)(void); | ||
+ | void (*drop_ns)(void *); | ||
+ | } | ||
+ | |||
+ | |||
+ | class kernfs_node << (S,#77FF00)/linux/kernfs.h >> { | ||
+ | atomic_t count; | ||
+ | atomic_t active; | ||
+ | struct kernfs_node *parent; | ||
+ | const char *name; | ||
+ | struct rb_node rb; | ||
+ | union { | ||
+ | struct completion *completion; | ||
+ | struct kernfs_node *removed_list; | ||
+ | } u; | ||
+ | const void *ns; /* namespace tag */ | ||
+ | unsigned int hash; /* ns + name hash */ | ||
+ | union { | ||
+ | struct kernfs_elem_dir dir; | ||
+ | struct kernfs_elem_symlink symlink; | ||
+ | struct kernfs_elem_attr attr; | ||
+ | }; | ||
+ | void *priv; | ||
+ | unsigned short flags; | ||
+ | umode_t mode; | ||
+ | unsigned int ino; | ||
+ | struct kernfs_iattrs *iattr; | ||
+ | } | ||
+ | kernfs_node --> rb_node | ||
+ | kernfs_node --> completion | ||
+ | kernfs_node --> kernfs_elem_dir | ||
+ | kernfs_node --> kernfs_symlink | ||
+ | kernfs_node --> kernfs_elem_attr | ||
+ | kernfs_node --> kernfs_iattrs | ||
+ | |||
+ | |||
+ | class kref << (S,#77FF00)/linux/kobject.h>> { | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | class partition_meta_info << (S,#77FF00) >> { | ||
+ | |||
+ | } | ||
+ | |||
+ | class gendisk << (S,#77FF00) >> { | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
class mtd_info << (S,#77FF00) >> { | class mtd_info << (S,#77FF00) >> { |
2014년 5월 14일 (수) 21:18 현재 판