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;
}; struct list_head w1_master_entrymaster linked list
struct module * ownermodule owner
unsigned char name[W1_MAXNAMELEN]dynamically allocate bus name
struct mutex list_mutexprotect slist and async_list
struct list_head slistlinked list of slaves
struct list_head async_listlinked list of netlink commands to execute
int max_slave_countmaximum number of slaves to search for at a time
int slave_countcurrent number of slaves known
unsigned long attemptsnumber of searches ran
int slave_ttlnumber of searches before a slave is timed out
int initializedprevent init/removal race conditions
u32 idw1 bus number
int search_countnumber of automatic searches to run, -1 unlimited
u64 search_idallows continuing a search
atomic_t refcntreference count
void * privprivate data storage
int enable_pullupallows a strong pullup
int pullup_durationtime for the next strong pullup
long flagsone of w1_master_flags
struct task_struct * threadthread for bus search and netlink commands
struct mutex mutexprotect most of w1_master
struct mutex bus_mutexpretect concurrent bus access
struct device_driver * driversysfs driver
struct device devsysfs device
struct w1_bus_master * bus_masterio operations available
u32 seqsequence number used for netlink broadcasts