root/dev/onewire/onewirevar.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


    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_ */

/* [<][>][^][v][top][bottom][index][help] */