/* GRT C bindings. Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold. GHDL is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GHDL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include FILE * __ghdl_get_stdout (void) { return stdout; } FILE * __ghdl_get_stdin (void) { return stdin; } FILE * __ghdl_get_stderr (void) { return stderr; } int __ghdl_snprintf_g (char *buf, unsigned int len, double val) { snprintf (buf, len, "%g", val); return strlen (buf); } void __ghdl_snprintf_fmtf (char *buf, unsigned int len, const char *format, double v) { snprintf (buf, len, format, v); } void __ghdl_fprintf_g (FILE *stream, double val) { fprintf (stream, "%g", val); } void __ghdl_fprintf_clock (FILE *stream, int a, int b) { fprintf (stream, "%3d.%03d", a, b); } #ifndef getc_unlocked int getc_unlocked (FILE *stream) { return getc (stream); } #endif #ifndef putc_unlocked int putc_unlocked (int c, FILE *stream) { return putc (c, stream); } #endif #ifndef feof_unlocked int feof_unlocked (FILE *stream) { return feof (stream); } #endif #ifndef WITH_GNAT_RUN_TIME void __gnat_last_chance_handler (void) { abort (); } void * __gnat_malloc (size_t size) { void *res; res = malloc (size); return res; } void __gnat_free (void *ptr) { free (ptr); } void * __gnat_realloc (void *ptr, size_t size) { return realloc (ptr, size); } #endif 597484bf264e1'>diffstats
blob: d09353a4f6f8073f4dc335fdc6640ab1dd9338ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 *	Tiny Interrupt Manager
 *
 *	@author James Walmsley <james@fullfat-fs.co.uk>
 *	This code is licensed under the GNU GPLv3 license.
 **/

#ifndef _INTERRUPTS_H_
#define _INTERRUPTS_H_

typedef void (*FN_INTERRUPT_HANDLER)(int nIRQ, void *pParam);

typedef struct {
	FN_INTERRUPT_HANDLER 	pfnHandler;			///< Function that handles this IRQn
	void 				   *pParam;				///< A special parameter that the use can pass to the IRQ.
} INTERRUPT_VECTOR;

int InitInterruptController	();
int RegisterInterrupt		(int nIRQ, FN_INTERRUPT_HANDLER pfnHandler, void *pParam);
int EnableInterrupt			(int nIRQ);
int DisableInterrupt		(int nIRQ);
int EnableInterrupts		();
int DisableInterrupts		();

#endif