struct w1_master — one per bus master
struct w1_master { struct list_head w1_master_entry; struct module * owner; unsigned char name[W1_MAXNAMELEN]; struct mutex list_mutex; struct list_head slist; struct list_head async_list; int max_slave_count; int slave_count; unsigned long attempts; int slave_ttl; int initialized; u32 id; int search_count; u64 search_id; atomic_t refcnt; void * priv; int enable_pullup; int pullup_duration; long flags; struct task_struct * thread; struct mutex mutex; struct mutex bus_mutex; struct device_driver * driver; struct device dev; struct w1_bus_master * bus_master; u32 seq; };
master linked list
module owner
dynamically allocate bus name
protect slist and async_list
linked list of slaves
linked list of netlink commands to execute
maximum number of slaves to search for at a time
current number of slaves known
number of searches ran
number of searches before a slave is timed out
prevent init/removal race conditions
w1 bus number
number of automatic searches to run, -1 unlimited
allows continuing a search
reference count
private data storage
allows a strong pullup
time for the next strong pullup
one of w1_master_flags
thread for bus search and netlink commands
protect most of w1_master
pretect concurrent bus access
sysfs driver
sysfs device
io operations available
sequence number used for netlink broadcasts