/*-1* SPDX-License-Identifier: BSD-2-Clause2*3* Copyright (c) 2008 Stanislav Sedov <[email protected]>.4* All rights reserved.5*6* Redistribution and use in source and binary forms, with or without7* modification, are permitted provided that the following conditions8* are met:9* 1. Redistributions of source code must retain the above copyright10* notice, this list of conditions and the following disclaimer.11* 2. Redistributions in binary form must reproduce the above copyright12* notice, this list of conditions and the following disclaimer in the13* documentation and/or other materials provided with the distribution.14*15* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR16* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES17* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.18* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,19* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT20* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,21* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY22* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT23* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF24* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.25*/2627#ifndef CPUCONTROL_H28#define CPUCONTROL_H2930#include <stddef.h>3132typedef int ucode_probe_t(int fd);33struct ucode_update_params {34int devfd; /* RDWR handle to cpucontrol device */35const void *fwimage; /* READ mapping of firmware image */36size_t fwsize; /* Non-zero size of firmware image */37const char *dev_path; /* cpucontrol device path, for logging */38const char *fw_path; /* firmware image path, for logging */39};40typedef void ucode_update_t(const struct ucode_update_params *params);4142extern int verbosity_level;4344#ifdef DEBUG45#include <stdio.h>46# define WARNX(level, ...) \47if ((level) <= verbosity_level) { \48fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \49warnx(__VA_ARGS__); \50}51# define WARN(level, ...) \52if ((level) <= verbosity_level) { \53fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \54warn(__VA_ARGS__); \55}56#else57# define WARNX(level, ...) \58if ((level) <= verbosity_level) \59warnx(__VA_ARGS__);60# define WARN(level, ...) \61if ((level) <= verbosity_level) \62warn(__VA_ARGS__);63#endif6465#endif /* !CPUCONTROL_H */666768