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