]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/include/main.h
LinCAN driver structured comments updated.
[lincan.git] / lincan / include / main.h
index f73e96709b0def219fbc2d59c2e8a11a9749ea01..2fa81ced2d4dc640e6e9eaa363ad73dfc111fd5a 100644 (file)
@@ -53,6 +53,8 @@ struct canhardware_t {
  * @chip: array of pointers to the chip structures
  * @hwspecops: pointer to board specific operations
  * @hosthardware_p: pointer to the root hardware structure
+ * @sysdevptr: union reserved for pointer to bus specific
+ *     device structure (case @pcidev is used for PCI devices)
  *
  * The structure represent configuration and state of associated board.
  * The driver infrastructure prepares this structure and calls
@@ -129,6 +131,15 @@ struct candevice_t {
  * @chipspecops: pointer to the set of chip specific object filled by init_chip_data() function
  * @hostdevice: pointer to chip hosting board
  * @max_objects: maximal number of communication objects connected to this chip
+ * @chip_lock: reserved for synchronization of the chip supporting routines
+ *     (not used in the current driver version)
+ * @worker_thread: chip worker thread ID (RT-Linux specific field)
+ * @pend_flags: holds information about pending interrupt and tx_wake() operations
+ *     (RT-Linux specific field). Masks values:
+ *     %MSGOBJ_TX_REQUEST .. some of the message objects requires tx_wake() call, 
+ *     %MSGOBJ_IRQ_REQUEST .. chip interrupt processing required
+ *     %MSGOBJ_WORKER_WAKE .. marks, that worker thread should be waked
+ *             for some of above reasons
  *
  * The fields @write_register and @read_register are copied from
  * corresponding fields from @hwspecops structure
@@ -190,6 +201,10 @@ struct chip_t {
  * @obj_used: counter of users (associated file structures for Linux
  *     userspace clients) of this object
  * @obj_users: list of user structures of type &canuser_t.
+ * @obj_flags: message object specific flags. Masks values:
+ *     %MSGOBJ_TX_REQUEST .. the message object requests TX activation
+ *     %MSGOBJ_TX_LOCK .. some IRQ routine or callback on some CPU 
+ *             is running inside TX activation processing code
  */
 struct msgobj_t {
        unsigned long obj_base_addr;
@@ -404,3 +419,7 @@ struct boardtype_t {
 };
 
 const struct boardtype_t* boardtype_find(const char *str);
+
+#ifdef CAN_WITH_RTL
+extern int can_rtl_priority;
+#endif /*CAN_WITH_RTL*/