equal
deleted
inserted
replaced
56 */ |
56 */ |
57 void ec_foe_request_init( |
57 void ec_foe_request_init( |
58 ec_foe_request_t *req, /**< FoE request. */ |
58 ec_foe_request_t *req, /**< FoE request. */ |
59 uint8_t* file_name /** filename */) |
59 uint8_t* file_name /** filename */) |
60 { |
60 { |
|
61 INIT_LIST_HEAD(&req->list); |
61 req->buffer = NULL; |
62 req->buffer = NULL; |
62 req->file_name = file_name; |
63 req->file_name = file_name; |
63 req->buffer_size = 0; |
64 req->buffer_size = 0; |
64 req->data_size = 0; |
65 req->data_size = 0; |
65 req->dir = EC_DIR_INVALID; |
66 req->dir = EC_DIR_INVALID; |
107 int ec_foe_request_alloc( |
108 int ec_foe_request_alloc( |
108 ec_foe_request_t *req, /**< FoE request. */ |
109 ec_foe_request_t *req, /**< FoE request. */ |
109 size_t size /**< Data size to allocate. */ |
110 size_t size /**< Data size to allocate. */ |
110 ) |
111 ) |
111 { |
112 { |
112 if (size <= req->buffer_size) |
113 if (size <= req->buffer_size) { |
113 return 0; |
114 return 0; |
|
115 } |
114 |
116 |
115 ec_foe_request_clear_data(req); |
117 ec_foe_request_clear_data(req); |
116 |
118 |
117 if (!(req->buffer = (uint8_t *) kmalloc(size, GFP_KERNEL))) { |
119 if (!(req->buffer = (uint8_t *) kmalloc(size, GFP_KERNEL))) { |
118 EC_ERR("Failed to allocate %zu bytes of FoE memory.\n", size); |
120 EC_ERR("Failed to allocate %zu bytes of FoE memory.\n", size); |
119 return -1; |
121 return -ENOMEM; |
120 } |
122 } |
121 |
123 |
122 req->buffer_size = size; |
124 req->buffer_size = size; |
123 req->data_size = 0; |
125 req->data_size = 0; |
124 return 0; |
126 return 0; |
134 ec_foe_request_t *req, /**< FoE request. */ |
136 ec_foe_request_t *req, /**< FoE request. */ |
135 const uint8_t *source, /**< Source data. */ |
137 const uint8_t *source, /**< Source data. */ |
136 size_t size /**< Number of bytes in \a source. */ |
138 size_t size /**< Number of bytes in \a source. */ |
137 ) |
139 ) |
138 { |
140 { |
139 if (ec_foe_request_alloc(req, size)) |
141 int ret; |
140 return -1; |
142 |
|
143 ret = ec_foe_request_alloc(req, size); |
|
144 if (ret) { |
|
145 return ret; |
|
146 } |
141 |
147 |
142 memcpy(req->buffer, source, size); |
148 memcpy(req->buffer, source, size); |
143 req->data_size = size; |
149 req->data_size = size; |
144 return 0; |
150 return 0; |
145 } |
151 } |