w1_netlink.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*
  2. * w1_netlink.h
  3. *
  4. * Copyright (c) 2003 Evgeniy Polyakov <zbr@ioremap.net>
  5. *
  6. *
  7. * This program is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with this program; if not, write to the Free Software
  19. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  20. */
  21. #ifndef __W1_NETLINK_H
  22. #define __W1_NETLINK_H
  23. #include <asm/types.h>
  24. #include <linux/connector.h>
  25. #include "w1.h"
  26. enum w1_netlink_message_types {
  27. W1_SLAVE_ADD = 0,
  28. W1_SLAVE_REMOVE,
  29. W1_MASTER_ADD,
  30. W1_MASTER_REMOVE,
  31. W1_MASTER_CMD,
  32. W1_SLAVE_CMD,
  33. W1_LIST_MASTERS,
  34. };
  35. struct w1_netlink_msg
  36. {
  37. __u8 type;
  38. __u8 status;
  39. __u16 len;
  40. union {
  41. __u8 id[8];
  42. struct w1_mst {
  43. __u32 id;
  44. __u32 res;
  45. } mst;
  46. } id;
  47. __u8 data[0];
  48. };
  49. enum w1_commands {
  50. W1_CMD_READ = 0,
  51. W1_CMD_WRITE,
  52. W1_CMD_SEARCH,
  53. W1_CMD_ALARM_SEARCH,
  54. W1_CMD_TOUCH,
  55. W1_CMD_RESET,
  56. W1_CMD_MAX,
  57. };
  58. struct w1_netlink_cmd
  59. {
  60. __u8 cmd;
  61. __u8 res;
  62. __u16 len;
  63. __u8 data[0];
  64. };
  65. #ifdef __KERNEL__
  66. void w1_netlink_send(struct w1_master *, struct w1_netlink_msg *);
  67. int w1_init_netlink(void);
  68. void w1_fini_netlink(void);
  69. #endif /* __KERNEL__ */
  70. #endif /* __W1_NETLINK_H */