master/foe_request.c
changeset 1465 3099d78343ea
parent 1363 11c0b2caa253
child 1543 373cd456dc26
equal deleted inserted replaced
1464:be932bb417b8 1465:3099d78343ea
   147 
   147 
   148 /** Checks, if the timeout was exceeded.
   148 /** Checks, if the timeout was exceeded.
   149  *
   149  *
   150  * \return non-zero if the timeout was exceeded, else zero.
   150  * \return non-zero if the timeout was exceeded, else zero.
   151  */
   151  */
   152 int ec_foe_request_timed_out(const ec_foe_request_t *req /**< FoE request. */)
   152 int ec_foe_request_timed_out(
       
   153         const ec_foe_request_t *req /**< FoE request. */
       
   154         )
   153 {
   155 {
   154     return req->issue_timeout
   156     return req->issue_timeout
   155         && jiffies - req->jiffies_start > HZ * req->issue_timeout / 1000;
   157         && jiffies - req->jiffies_start > HZ * req->issue_timeout / 1000;
   156 }
   158 }
   157 
   159 
   158 /*****************************************************************************/
   160 /*****************************************************************************/
   159 
   161 
   160 void ec_foe_request_timeout(ec_foe_request_t *req, uint32_t timeout)
   162 /** Set the request timeout.
       
   163  */
       
   164 void ec_foe_request_timeout(
       
   165         ec_foe_request_t *req, /**< FoE request. */
       
   166         uint32_t timeout /**< Timeout in ms. */
       
   167         )
   161 {
   168 {
   162     req->issue_timeout = timeout;
   169     req->issue_timeout = timeout;
   163 }
   170 }
   164 
   171 
   165 /*****************************************************************************/
   172 /*****************************************************************************/
   166 
   173 
   167 uint8_t *ec_foe_request_data(ec_foe_request_t *req)
   174 /** Returns a pointer to the request's data.
       
   175  *
       
   176  * \return Data pointer.
       
   177  */
       
   178 uint8_t *ec_foe_request_data(
       
   179         ec_foe_request_t *req /**< FoE request. */
       
   180         )
   168 {
   181 {
   169     return req->buffer;
   182     return req->buffer;
   170 }
   183 }
   171 
   184 
   172 /*****************************************************************************/
   185 /*****************************************************************************/
   173 
   186 
   174 size_t ec_foe_request_data_size(const ec_foe_request_t *req)
   187 /** Returns the data size.
       
   188  *
       
   189  * \return Data size.
       
   190  */
       
   191 size_t ec_foe_request_data_size(
       
   192         const ec_foe_request_t *req /**< FoE request. */
       
   193         )
   175 {
   194 {
   176     return req->data_size;
   195     return req->data_size;
   177 }
   196 }
   178 
   197 
   179 /*****************************************************************************/
   198 /*****************************************************************************/
   180 
   199 
   181 void ec_foe_request_read(ec_foe_request_t *req)
   200 /** Prepares a read request (slave to master).
       
   201  */
       
   202 void ec_foe_request_read(
       
   203         ec_foe_request_t *req /**< FoE request. */
       
   204         )
   182 {
   205 {
   183     req->dir = EC_DIR_INPUT;
   206     req->dir = EC_DIR_INPUT;
   184     req->state = EC_INT_REQUEST_QUEUED;
   207     req->state = EC_INT_REQUEST_QUEUED;
   185     req->result = FOE_BUSY;
   208     req->result = FOE_BUSY;
   186     req->jiffies_start = jiffies;
   209     req->jiffies_start = jiffies;
   187 }
   210 }
   188 
   211 
   189 /*****************************************************************************/
   212 /*****************************************************************************/
   190 
   213 
   191 void ec_foe_request_write(ec_foe_request_t *req)
   214 /** Prepares a write request (master to slave).
       
   215  */
       
   216 void ec_foe_request_write(
       
   217         ec_foe_request_t *req /**< FoE request. */
       
   218         )
   192 {
   219 {
   193     req->dir = EC_DIR_OUTPUT;
   220     req->dir = EC_DIR_OUTPUT;
   194     req->state = EC_INT_REQUEST_QUEUED;
   221     req->state = EC_INT_REQUEST_QUEUED;
   195     req->result = FOE_BUSY;
   222     req->result = FOE_BUSY;
   196     req->jiffies_start = jiffies;
   223     req->jiffies_start = jiffies;