[BACK]Return to onewirevar.h CVS log [TXT][DIR] Up to [local] / sys / dev / onewire

Annotation of sys/dev/onewire/onewirevar.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: onewirevar.h,v 1.4 2006/10/08 21:12:51 grange Exp $   */
                      2:
                      3: /*
                      4:  * Copyright (c) 2006 Alexander Yurchenko <grange@openbsd.org>
                      5:  *
                      6:  * Permission to use, copy, modify, and distribute this software for any
                      7:  * purpose with or without fee is hereby granted, provided that the above
                      8:  * copyright notice and this permission notice appear in all copies.
                      9:  *
                     10:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                     11:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     12:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     13:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     14:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     15:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     16:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     17:  */
                     18:
                     19: #ifndef _DEV_ONEWIRE_ONEWIREVAR_H_
                     20: #define _DEV_ONEWIRE_ONEWIREVAR_H_
                     21:
                     22: /*
                     23:  * 1-Wire bus interface.
                     24:  */
                     25:
                     26: /* Bus master interface */
                     27: struct onewire_bus {
                     28:        void *  bus_cookie;
                     29:
                     30:        int     (*bus_reset)(void *);
                     31:        int     (*bus_bit)(void *, int);
                     32:        int     (*bus_read_byte)(void *);
                     33:        void    (*bus_write_byte)(void *, int);
                     34:        void    (*bus_read_block)(void *, void *, int);
                     35:        void    (*bus_write_block)(void *, const void *, int);
                     36:        int     (*bus_triplet)(void *, int);
                     37:        void    (*bus_matchrom)(void *, u_int64_t);
                     38:        int     (*bus_search)(void *, u_int64_t *, int, u_int64_t);
                     39: };
                     40:
                     41: /* Bus methods */
                     42: int            onewire_lock(void *, int);
                     43: void           onewire_unlock(void *);
                     44:
                     45: int            onewire_reset(void *);
                     46: int            onewire_bit(void *, int);
                     47: int            onewire_read_byte(void *);
                     48: void           onewire_write_byte(void *, int);
                     49: void           onewire_read_block(void *, void *, int);
                     50: void           onewire_write_block(void *, const void *, int);
                     51: int            onewire_triplet(void *, int);
                     52: void           onewire_matchrom(void *, u_int64_t);
                     53: int            onewire_search(void *, u_int64_t *, int, u_int64_t);
                     54:
                     55: #define ONEWIRE_NOWAIT         0x0001
                     56:
                     57: /* Bus attachment */
                     58: struct onewirebus_attach_args {
                     59:        struct onewire_bus *    oba_bus;
                     60: };
                     61:
                     62: int    onewirebus_print(void *, const char *);
                     63:
                     64: /* Device attachment */
                     65: struct onewire_attach_args {
                     66:        void *                  oa_onewire;
                     67:        u_int64_t               oa_rom;
                     68: };
                     69:
                     70: /* Family matching */
                     71: struct onewire_matchfam {
                     72:        int om_type;
                     73: };
                     74:
                     75: /* Miscellaneous routines */
                     76: int            onewire_crc(const void *, int);
                     77: const char *   onewire_famname(int);
                     78: int            onewire_matchbyfam(struct onewire_attach_args *,
                     79:                    const struct onewire_matchfam *, int);
                     80:
                     81: /* Bus bit-banging */
                     82: struct onewire_bbops {
                     83:        void    (*bb_rx)(void *);
                     84:        void    (*bb_tx)(void *);
                     85:        int     (*bb_get)(void *);
                     86:        void    (*bb_set)(void *, int);
                     87: };
                     88:
                     89: int            onewire_bb_reset(const struct onewire_bbops *, void *);
                     90: int            onewire_bb_bit(const struct onewire_bbops *, void *, int);
                     91:
                     92: #endif /* !_DEV_ONEWIRE_ONEWIREVAR_H_ */

CVSweb