Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/scripts/genksyms/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  genksyms.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Generate kernel symbol version hashes.
   Copyright 1996, 1997 Linux International.

   New implementation contributed by Richard Henderson <rth@tamu.edu>
   Based on original work by Bjorn Ekwall <bj0rn@blox.se>

   This file is part of the Linux modutils.

 */


#ifndef MODUTILS_GENKSYMS_H
#define MODUTILS_GENKSYMS_H 1

#include <stdbool.h>
#include <stdio.h>

#include <list_types.h>

enum symbol_type {
 SYM_NORMAL, SYM_TYPEDEF, SYM_ENUM, SYM_STRUCT, SYM_UNION,
 SYM_ENUM_CONST
};

enum symbol_status {
 STATUS_UNCHANGED, STATUS_DEFINED, STATUS_MODIFIED
};

struct string_list {
 struct string_list *next;
 enum symbol_type tag;
 int in_source_file;
 char *string;
};

struct symbol {
 struct hlist_node hnode;
 char *name;
 enum symbol_type type;
 struct string_list *defn;
 struct symbol *expansion_trail;
 struct symbol *visited;
 int is_extern;
 int is_declared;
 enum symbol_status status;
 int is_override;
};

typedef struct string_list **yystype;
#define YYSTYPE yystype

extern int cur_line;
extern char *cur_filename;
extern int in_source_file;

struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact);
struct symbol *add_symbol(const char *name, enum symbol_type type,
     struct string_list *defn, int is_extern);
void export_symbol(const char *);

void free_node(struct string_list *list);
void free_list(struct string_list *s, struct string_list *e);
struct string_list *copy_node(struct string_list *);
struct string_list *copy_list_range(struct string_list *start,
        struct string_list *end);

int yylex(void);
int yyparse(void);

extern bool dont_want_type_specifier;

void error_with_pos(const char *, ...) __attribute__ ((format(printf, 1, 2)));

/*----------------------------------------------------------------------*/
#define xmalloc(size) ({ void *__ptr = malloc(size);  \
 if(!__ptr && size != 0) {    \
  fprintf(stderr, "out of memory\n");  \
  exit(1);     \
 }       \
 __ptr; })
#define xstrdup(str)  ({ char *__str = strdup(str);  \
 if (!__str) {      \
  fprintf(stderr, "out of memory\n");  \
  exit(1);     \
 }       \
 __str; })

#endif    /* genksyms.h */

Messung V0.5
C=96 H=95 G=95

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.