cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

lkc.h (4017B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
      4 */
      5
      6#ifndef LKC_H
      7#define LKC_H
      8
      9#include <assert.h>
     10#include <stdio.h>
     11#include <stdlib.h>
     12
     13#include "expr.h"
     14
     15#ifdef __cplusplus
     16extern "C" {
     17#endif
     18
     19#include "lkc_proto.h"
     20
     21#define SRCTREE "srctree"
     22
     23#ifndef CONFIG_
     24#define CONFIG_ "CONFIG_"
     25#endif
     26static inline const char *CONFIG_prefix(void)
     27{
     28	return getenv( "CONFIG_" ) ?: CONFIG_;
     29}
     30#undef CONFIG_
     31#define CONFIG_ CONFIG_prefix()
     32
     33extern int yylineno;
     34void zconfdump(FILE *out);
     35void zconf_starthelp(void);
     36FILE *zconf_fopen(const char *name);
     37void zconf_initscan(const char *name);
     38void zconf_nextfile(const char *name);
     39int zconf_lineno(void);
     40const char *zconf_curname(void);
     41
     42/* confdata.c */
     43const char *conf_get_configname(void);
     44void set_all_choice_values(struct symbol *csym);
     45
     46/* confdata.c and expr.c */
     47static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
     48{
     49	assert(len != 0);
     50
     51	if (fwrite(str, len, count, out) != count)
     52		fprintf(stderr, "Error in writing or end of file.\n");
     53}
     54
     55/* util.c */
     56struct file *file_lookup(const char *name);
     57void *xmalloc(size_t size);
     58void *xcalloc(size_t nmemb, size_t size);
     59void *xrealloc(void *p, size_t size);
     60char *xstrdup(const char *s);
     61char *xstrndup(const char *s, size_t n);
     62
     63/* lexer.l */
     64int yylex(void);
     65
     66struct gstr {
     67	size_t len;
     68	char  *s;
     69	/*
     70	* when max_width is not zero long lines in string s (if any) get
     71	* wrapped not to exceed the max_width value
     72	*/
     73	int max_width;
     74};
     75struct gstr str_new(void);
     76void str_free(struct gstr *gs);
     77void str_append(struct gstr *gs, const char *s);
     78void str_printf(struct gstr *gs, const char *fmt, ...);
     79const char *str_get(struct gstr *gs);
     80
     81/* menu.c */
     82void _menu_init(void);
     83void menu_warn(struct menu *menu, const char *fmt, ...);
     84struct menu *menu_add_menu(void);
     85void menu_end_menu(void);
     86void menu_add_entry(struct symbol *sym);
     87void menu_add_dep(struct expr *dep);
     88void menu_add_visibility(struct expr *dep);
     89struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
     90void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
     91void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
     92void menu_finalize(struct menu *parent);
     93void menu_set_type(int type);
     94
     95extern struct menu rootmenu;
     96
     97bool menu_is_empty(struct menu *menu);
     98bool menu_is_visible(struct menu *menu);
     99bool menu_has_prompt(struct menu *menu);
    100const char *menu_get_prompt(struct menu *menu);
    101struct menu *menu_get_root_menu(struct menu *menu);
    102struct menu *menu_get_parent_menu(struct menu *menu);
    103bool menu_has_help(struct menu *menu);
    104const char *menu_get_help(struct menu *menu);
    105struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head);
    106void menu_get_ext_help(struct menu *menu, struct gstr *help);
    107
    108/* symbol.c */
    109void sym_clear_all_valid(void);
    110struct symbol *sym_choice_default(struct symbol *sym);
    111struct property *sym_get_range_prop(struct symbol *sym);
    112const char *sym_get_string_default(struct symbol *sym);
    113struct symbol *sym_check_deps(struct symbol *sym);
    114struct symbol *prop_get_symbol(struct property *prop);
    115
    116static inline tristate sym_get_tristate_value(struct symbol *sym)
    117{
    118	return sym->curr.tri;
    119}
    120
    121
    122static inline struct symbol *sym_get_choice_value(struct symbol *sym)
    123{
    124	return (struct symbol *)sym->curr.val;
    125}
    126
    127static inline bool sym_set_choice_value(struct symbol *ch, struct symbol *chval)
    128{
    129	return sym_set_tristate_value(chval, yes);
    130}
    131
    132static inline bool sym_is_choice(struct symbol *sym)
    133{
    134	return sym->flags & SYMBOL_CHOICE ? true : false;
    135}
    136
    137static inline bool sym_is_choice_value(struct symbol *sym)
    138{
    139	return sym->flags & SYMBOL_CHOICEVAL ? true : false;
    140}
    141
    142static inline bool sym_is_optional(struct symbol *sym)
    143{
    144	return sym->flags & SYMBOL_OPTIONAL ? true : false;
    145}
    146
    147static inline bool sym_has_value(struct symbol *sym)
    148{
    149	return sym->flags & SYMBOL_DEF_USER ? true : false;
    150}
    151
    152#ifdef __cplusplus
    153}
    154#endif
    155
    156#endif /* LKC_H */