source: trunk/include/os2sel.h@ 9735

Last change on this file since 9735 was 9735, checked in by sandervl, 23 years ago

PF: Header fixes for GCC

File size: 1.3 KB
RevLine 
[9735]1/* $Id: os2sel.h,v 1.11 2003-01-28 16:20:43 sandervl Exp $ */
[48]2/*
3 *
4 * Project Odin Software License can be found in LICENSE.TXT
5 *
6 */
7#ifndef __OS2SEL_H__
8#define __OS2SEL_H__
9
[6997]10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15
[4075]16#ifdef __WATCOMC__
17unsigned short GetFS(void);
18#pragma aux GetFS = \
19 "mov ax,fs" \
20 value [ax] \
21 parm nomemory;
[48]22
[4075]23void SetFS(unsigned short sel);
24#pragma aux SetFS = \
25 "mov fs,ax" \
26 parm [ax];
27
28unsigned short RestoreOS2FS(void);
29#pragma aux RestoreOS2FS = \
30 "mov bx, fs" \
31 "mov ax, 150bh" \
32 "mov fs, ax" \
33 value [bx] \
34 modify nomemory exact [ax];
[9631]35#endif
[4075]36
[9631]37#ifdef __EMX__
38extern inline unsigned short GetFS(void)
39{
40 asm volatile (
[9735]41 "mov %fs, %ax \n\t"
[9631]42 );
43}
44
45extern inline void SetFS(unsigned short sel)
46{
[9735]47 __asm__ __volatile__("movw %%ax,%%fs" : : "a" (sel));
[9631]48}
49
50extern inline unsigned short RestoreOS2FS(void)
51{
52 asm volatile (
[9735]53 "push $0x0150b \n\t"
54 "movw %fs,%ax \n\t"
[9631]55 "pop %fs"
56 );
57}
58
59
[4075]60#else
[6997]61
62unsigned short _System GetFS (void);
63unsigned short _System RestoreOS2FS(void);
[4077]64void _System SetFS (unsigned short selector);
65unsigned short _System SetReturnFS (unsigned short selector);
[9631]66//SvL: Checks if thread FS & exception structure are valid
67int _System CheckCurFS(void);
[4075]68#endif
69
[6997]70
71
72#ifdef __cplusplus
73}
74#endif
[2544]75
[6997]76
[537]77#endif //__OS2SEL_H__
Note: See TracBrowser for help on using the repository browser.