iPXE
mlx_blink_leds.c
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Mellanox Technologies Ltd.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License as
6  * published by the Free Software Foundation; either version 2 of the
7  * License, or any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  * 02110-1301, USA.
18  */
19 
20 FILE_LICENCE ( GPL2_OR_LATER );
21 
22 #include "../../mlx_lib/mlx_blink_leds/mlx_blink_leds.h"
23 #include "../../include/public/mlx_memory.h"
24 #include "../../include/public/mlx_bail.h"
25 
28  IN mlx_utils *utils,
29  IN mlx_uint16 secs
30  )
31 {
33  struct mlx_led_control led_control;
34  mlx_uint32 reg_status;
35 
36  if (utils == NULL ) {
38  goto bad_param;
39  }
40  mlx_memory_set(utils, &led_control, 0, sizeof(led_control));
41  led_control.beacon_duration = secs;
42  status = mlx_reg_access(utils, REG_ID_MLCR, REG_ACCESS_WRITE, &led_control, sizeof(led_control),
43  &reg_status);
44  MLX_CHECK_STATUS(utils, status, reg_err, "mlx_reg_access failed ");
45  if (reg_status != 0) {
46  MLX_DEBUG_ERROR(utils,"mlx_reg_access failed with status = %d\n", reg_status);
48  goto reg_err;
49  }
50 reg_err:
51 bad_param:
52  return status;
53 }
54 
#define MLX_INVALID_PARAMETER
uint8_t status
Status.
Definition: ena.h:16
uint32_t mlx_uint32
mlx_status mlx_memory_set(IN mlx_utils *utils, IN mlx_void *block, IN mlx_int32 value, IN mlx_size size)
Definition: mlx_memory.c:171
#define MLX_SUCCESS
#define REG_ID_MLCR
#define MLX_FAILED
uint16_t mlx_uint16
#define IN
Definition: mlx_utils.h:28
#define MLX_DEBUG_ERROR(...)
Definition: mlx_logging.h:29
int mlx_status
mlx_status mlx_reg_access(IN mlx_utils *utils, IN mlx_uint16 reg_id, IN REG_ACCESS_OPT reg_opt, IN OUT mlx_void *reg_data, IN mlx_size reg_size, OUT mlx_uint32 *reg_status)
mlx_uint32 beacon_duration
#define MLX_CHECK_STATUS(id, status, label, message)
Definition: mlx_bail.h:37
#define NULL
NULL pointer (VOID *)
Definition: Base.h:362