This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/dm/include/INT.H

61 lines
1.2 KiB
C

/* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
#if __SC__ || __RCC__
#pragma once
#endif
#ifndef __INT_H
#define __INT_H 1
#if !defined(__NT__)
#if __cplusplus
extern "C" {
#endif
#include <dos.h>
#pragma pack(1)
struct INT_DATA
{
#if __INTSIZE == 4
char align;
#endif
unsigned prevvec_off;
unsigned short prevvec_seg;
#if __INTSIZE == 4
unsigned short prevvecr_off;
unsigned short prevvecr_seg;
#endif
unsigned stacksize;
unsigned newstack_off;
unsigned short newstack_seg;
unsigned oldstack_off;
unsigned short oldstack_seg;
#if __COMPACT__ || __LARGE__
unsigned short staticseg;
#endif
int (__cdecl *funcptr)();
union REGS regs;
struct SREGS sregs;
};
#pragma pack()
void __cdecl int_getvector(unsigned,unsigned *,unsigned *);
void __cdecl int_setvector(unsigned,unsigned,unsigned);
int __cdecl int_intercept(unsigned,int (__cdecl *funcptr)(struct INT_DATA *),unsigned);
void __cdecl int_restore(unsigned);
void __cdecl int_off(void);
void __cdecl int_on(void);
long __cdecl int_prev(struct INT_DATA *);
#define int_on() __emit__(0xFB)
#define int_off() __emit__(0xFA)
#define int_gen(i) __emit__(0xCD,i)
#if __cplusplus
}
#endif
#endif /* ifndef __NT__ */
#endif