home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / bsd / dev / adb.h next >
Text File  |  1992-07-29  |  2KB  |  118 lines

  1. /*
  2.  * Copyright (c) 1991 NeXT Computer, Inc.
  3.  *
  4.  * adb.h -- ADB driver header.
  5.  *
  6.  * Author: David E. Bohman
  7.  */
  8.  
  9. #ifndef        _NEXTDEV_ADB_H_
  10. #define        _NEXTDEV_ADB_H_
  11.  
  12. #import <bsd/dev/ev_types.h>
  13.  
  14. typedef union {
  15.     struct {
  16.     unsigned char    cmd;
  17.     } cmd;
  18.     struct {
  19.     unsigned char    addr:4,
  20.              cmd:4;
  21. #define ADB_reset    0
  22. #define ADB_flush    1
  23.     } gen;
  24.     struct {
  25.     unsigned char    addr:4,
  26.              cmd:2,
  27. #define ADB_listen    2
  28. #define ADB_talk    3
  29.              reg:2;
  30.     } reg;
  31. } adb_cmd_t;
  32.  
  33. typedef union {
  34.     struct {
  35.     unsigned    data0;
  36.     unsigned    data1;
  37.     } longword;
  38.     struct {
  39.     unsigned char    data[8];
  40.     } byte;
  41.     struct {
  42.     unsigned short    :1,
  43.             exceptionalEvent:1,
  44.             serviceReqEnb:1,
  45.             :1,
  46.             addr:4,
  47.             devHandlerID:8;
  48.     } reg3;
  49.     struct {
  50.     unsigned short    left_up:1,
  51.             Y_delta:7,
  52.             right_up:1,    /* Reserved in Apple mouse */
  53.             X_delta:7;
  54.     } m_reg0;
  55.     struct {
  56.     unsigned int    left_up:1,
  57.             Y_delta:7,
  58.             :1,
  59.             X_delta:7,
  60.             :5,
  61.             left_down:1,
  62.             middle_down:1,
  63.             right_down:1,
  64.             :8;
  65.     } logitech_s13_m_reg0;
  66.     struct {
  67.     unsigned short    key1_up:1,
  68.             key1_code:7,
  69.             key2_up:1,
  70.             key2_code:7;
  71.     } k_reg0;
  72.     struct {
  73.     unsigned short    :1,
  74.             key_delete:1,
  75.             key_cap_lock:1,
  76.             key_reset:1,
  77.             key_control:1,
  78.             key_shift:1,
  79.             key_alt:1,
  80.             key_command:1,
  81.             key_num_lock:1,
  82.             key_scroll_lock:1,
  83.             :3,
  84.             led_scroll_lock:1,
  85.             led_cap_lock:1,
  86.             led_num_lock:1;
  87.     } k_reg2;
  88.     struct {
  89.     unsigned char    byteaddr;    /* Logitech Reg 1 byte mapping. */
  90.     unsigned char    byteval;
  91.     unsigned char    _unknown1_;
  92.     unsigned char    _unknown2_;
  93.     unsigned char    right_button;
  94.     unsigned char    middle_button;
  95.     unsigned char    left_button;
  96.     unsigned char    _unknown3_;
  97.     } logitech_s13_m_reg1;
  98. } adb_data_t;
  99.  
  100. #define ADB_ADDR_INVALID    0
  101. #define ADB_ADDR_LOW        1
  102. #define ADB_ADDR_KEYBOARD    2
  103. #define ADB_ADDR_MOUSE        3
  104. #define ADB_ADDR_TABLET        4
  105.  
  106. #define ADB_ADDR_SOFT        8
  107. #define ADB_ADDR_HIGH        15
  108.  
  109. extern void        adb_initialize(void);
  110. extern void        adb_talk(int, int, adb_data_t *, int *);
  111. extern void        adb_listen(int, int, adb_data_t *, int);
  112. extern boolean_t    adb_poll_keyboard(adb_data_t *);
  113. extern void        adb_force_NMI(void);
  114. extern void        adb_watchdog(boolean_t);
  115. extern int        adb_system_info(NXEventSy(&Device *, int);
  116.  
  117. #endif        _NEXTDEV_ADB_H_
  118.