Browse Source

Merge pull request #414 from jcastillo-arm/jc/io_ret_values

Use standard error code definitions
pull/415/head
danh-arm 9 years ago
parent
commit
1a2ee045b6
  1. 3
      bl2/bl2_main.c
  2. 20
      common/bl_common.c
  3. 5
      docs/porting-guide.md
  4. 9
      include/common/bl_common.h
  5. 11
      include/drivers/io/io_storage.h

3
bl2/bl2_main.c

@ -34,6 +34,7 @@
#include <auth_mod.h>
#include <bl_common.h>
#include <debug.h>
#include <errno.h>
#include <platform.h>
#include <platform_def.h>
#include <stdint.h>
@ -239,7 +240,7 @@ void bl2_main(void)
e = load_bl32(bl2_to_bl31_params);
if (e) {
if (e == LOAD_AUTH_ERR) {
if (e == -EAUTH) {
ERROR("Failed to authenticate BL3-2\n");
panic();
} else {

20
common/bl_common.c

@ -207,7 +207,7 @@ int load_image(meminfo_t *mem_layout,
uintptr_t image_spec;
size_t image_size;
size_t bytes_read;
int io_result = IO_FAIL;
int io_result;
assert(mem_layout != NULL);
assert(image_data != NULL);
@ -215,7 +215,7 @@ int load_image(meminfo_t *mem_layout,
/* Obtain a reference to the image by querying the platform layer */
io_result = plat_get_image_source(image_id, &dev_handle, &image_spec);
if (io_result != IO_SUCCESS) {
if (io_result != 0) {
WARN("Failed to obtain reference to image id=%u (%i)\n",
image_id, io_result);
return io_result;
@ -223,7 +223,7 @@ int load_image(meminfo_t *mem_layout,
/* Attempt to access the image */
io_result = io_open(dev_handle, image_spec, &image_handle);
if (io_result != IO_SUCCESS) {
if (io_result != 0) {
WARN("Failed to access image id=%u (%i)\n",
image_id, io_result);
return io_result;
@ -233,7 +233,7 @@ int load_image(meminfo_t *mem_layout,
/* Find the size of the image */
io_result = io_size(image_handle, &image_size);
if ((io_result != IO_SUCCESS) || (image_size == 0)) {
if ((io_result != 0) || (image_size == 0)) {
WARN("Failed to determine the size of the image id=%u (%i)\n",
image_id, io_result);
goto exit;
@ -252,7 +252,7 @@ int load_image(meminfo_t *mem_layout,
/* We have enough space so load the image now */
/* TODO: Consider whether to try to recover/retry a partially successful read */
io_result = io_read(image_handle, image_base, image_size, &bytes_read);
if ((io_result != IO_SUCCESS) || (bytes_read < image_size)) {
if ((io_result != 0) || (bytes_read < image_size)) {
WARN("Failed to load image id=%u (%i)\n", image_id, io_result);
goto exit;
}
@ -319,7 +319,7 @@ int load_auth_image(meminfo_t *mem_layout,
if (rc == 0) {
rc = load_auth_image(mem_layout, parent_id, image_base,
image_data, NULL);
if (rc != LOAD_SUCCESS) {
if (rc != 0) {
return rc;
}
}
@ -328,8 +328,8 @@ int load_auth_image(meminfo_t *mem_layout,
/* Load the image */
rc = load_image(mem_layout, image_id, image_base, image_data,
entry_point_info);
if (rc != IO_SUCCESS) {
return LOAD_ERR;
if (rc != 0) {
return rc;
}
#if TRUSTED_BOARD_BOOT
@ -342,7 +342,7 @@ int load_auth_image(meminfo_t *mem_layout,
image_data->image_size);
flush_dcache_range(image_data->image_base,
image_data->image_size);
return LOAD_AUTH_ERR;
return -EAUTH;
}
/* After working with data, invalidate the data cache */
@ -350,5 +350,5 @@ int load_auth_image(meminfo_t *mem_layout,
(size_t)image_data->image_size);
#endif /* TRUSTED_BOARD_BOOT */
return LOAD_SUCCESS;
return 0;
}

5
docs/porting-guide.md

@ -358,13 +358,12 @@ must also be defined:
Defines the maximum number of registered IO devices. Attempting to register
more devices than this value using `io_register_device()` will fail with
IO_RESOURCES_EXHAUSTED.
-ENOMEM.
* **#define : MAX_IO_HANDLES**
Defines the maximum number of open IO handles. Attempting to open more IO
entities than this value using `io_open()` will fail with
IO_RESOURCES_EXHAUSTED.
entities than this value using `io_open()` will fail with -ENOMEM.
If the platform needs to allocate data within the per-cpu data framework in
BL3-1, it should define the following macro. Currently this is only required if

9
include/common/bl_common.h

@ -202,15 +202,6 @@ typedef struct bl31_params {
image_info_t *bl33_image_info;
} bl31_params_t;
/*
* load_auth_image() return values
*/
enum {
LOAD_SUCCESS, /* Load + authentication success */
LOAD_ERR, /* Load error */
LOAD_AUTH_ERR /* Authentication error */
};
/*
* Compile time assertions related to the 'entry_point_info' structure to

11
include/drivers/io/io_storage.h

@ -31,6 +31,7 @@
#ifndef __IO_H__
#define __IO_H__
#include <errno.h>
#include <stdint.h>
#include <stdio.h> /* For ssize_t */
#include <uuid.h>
@ -88,11 +89,13 @@ typedef struct io_block_spec {
#define IO_MODE_RW (1 << 1)
/* Return codes reported by 'io_*' APIs */
/* Return codes reported by 'io_*' APIs.
* IMPORTANT: these definitions are deprecated. Callers should use standard
* errno definitions when checking the return value of io_* APIs. */
#define IO_SUCCESS (0)
#define IO_FAIL (-1)
#define IO_NOT_SUPPORTED (-2)
#define IO_RESOURCES_EXHAUSTED (-3)
#define IO_FAIL (-ENOENT)
#define IO_NOT_SUPPORTED (-ENODEV)
#define IO_RESOURCES_EXHAUSTED (-ENOMEM)
/* Open a connection to a device */

Loading…
Cancel
Save