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);
int (*readlink) (struct dentry *, char __user *,int);
+
(*readlink) (struct dentry *, char __user *,int) : int
void (*put_link) (struct dentry *, struct nameidata *, void *);
+
(*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;   
+
d_flags : unsigned int  
seqcount_t d_seq;       
+
d_seq : seqcount_t
struct hlist_bl_node d_hash;   
+
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 quotactl_ops << (S,#77FF00) >> {
+
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 export_operations<< (S,#77FF00) >> {
 
  
 +
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 xattr_handler<< (S,#77FF00) >> {
+
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) >> {
 
  
 +
class hlist_bl_head << (S,#77FF00)/linust/list_bl.h >> {
 +
struct hlist_bl_node *first;
 
}
 
}
class block_device << (S,#77FF00) >> {
+
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 현재 판

개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기