fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / w1 / w1_family.h
index 03a2de7..1e2ac40 100644 (file)
@@ -1,8 +1,8 @@
 /*
- *     w1_family.h
+ *     w1_family.h
  *
  * Copyright (c) 2004 Evgeniy Polyakov <johnpol@2ka.mipt.ru>
- * 
+ *
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #include <asm/atomic.h>
 
 #define W1_FAMILY_DEFAULT      0
-#define W1_FAMILY_THERM                0x10
-#define W1_FAMILY_SMEM         0x01
+#define W1_FAMILY_SMEM_01      0x01
+#define W1_FAMILY_SMEM_81      0x81
+#define W1_THERM_DS18S20       0x10
+#define W1_THERM_DS1822        0x22
+#define W1_EEPROM_DS2433       0x23
+#define W1_THERM_DS18B20       0x28
 
 #define MAXNAMELEN             32
 
+struct w1_slave;
+
 struct w1_family_ops
 {
-       ssize_t (* rname)(struct device *, char *);
-       ssize_t (* rbin)(struct kobject *, char *, loff_t, size_t);
-       
-       ssize_t (* rval)(struct device *, char *);
-       unsigned char rvalname[MAXNAMELEN];
+       int  (* add_slave)(struct w1_slave *);
+       void (* remove_slave)(struct w1_slave *);
 };
 
 struct w1_family
 {
        struct list_head        family_entry;
        u8                      fid;
-       
+
        struct w1_family_ops    *fops;
-       
+
        atomic_t                refcnt;
        u8                      need_exit;
 };
 
 extern spinlock_t w1_flock;
 
-void w1_family_get(struct w1_family *);
 void w1_family_put(struct w1_family *);
 void __w1_family_get(struct w1_family *);
-void __w1_family_put(struct w1_family *);
 struct w1_family * w1_family_registered(u8);
 void w1_unregister_family(struct w1_family *);
 int w1_register_family(struct w1_family *);
+void w1_reconnect_slaves(struct w1_family *f);
 
 #endif /* __W1_FAMILY_H */