1b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly/* ----------------------------------------------------------------------------- 2b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly * Copyright (c) 2011 Ozmo Inc 3b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly * Released under the GNU General Public License Version 2 (GPLv2). 4b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly * ----------------------------------------------------------------------------- 5b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly */ 6b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly#ifndef _OZUSBSVC_H 7b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly#define _OZUSBSVC_H 8b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly 9b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly/*------------------------------------------------------------------------------ 10b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly * Per PD context info stored in application context area of PD. 11b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly * This object is reference counted to ensure it doesn't disappear while 12b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly * still in use. 13b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly */ 14b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellystruct oz_usb_ctx { 15b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly atomic_t ref_count; 16b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly u8 tx_seq_num; 17b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly u8 rx_seq_num; 18b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly struct oz_pd *pd; 19b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly void *hport; 20b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly int stopped; 21b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly}; 22b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly 23b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyint oz_usb_init(void); 24b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyvoid oz_usb_term(void); 25b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyint oz_usb_start(struct oz_pd *pd, int resume); 26b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyvoid oz_usb_stop(struct oz_pd *pd, int pause); 27b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyvoid oz_usb_rx(struct oz_pd *pd, struct oz_elt *elt); 28b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyint oz_usb_heartbeat(struct oz_pd *pd); 29b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kellyvoid oz_usb_farewell(struct oz_pd *pd, u8 ep_num, u8 *data, u8 len); 30b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly 31b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly#endif /* _OZUSBSVC_H */ 32b3147863b523912633bfd4876d242cd5ae7d8e7aChris Kelly 33