summaryrefslogtreecommitdiff
path: root/src/dos_cpt.h
blob: a8adfbc939c7c42acfaae6f2fd4c8d7124228ca7 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/* SP12: A serial programmer for working with Atmel AT90S uCs        */
/* Copyright (C) 1997-2003 Ken Huntington, Kevin Towers, Pitronics.  */

/* This program 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    */
/* of the License, or (at your option) any later version.            */

/* This program 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 this program; if not, write to the Free Software       */
/* Foundation, Inc., 59 Temple Place - Suite 330, Boston,            */
/* MA  02111-1307, USA.                                              */

/* Pitronics can be reached by email: sbolt@xs4all.nl                */
/* Kevin Towers can be reached by email: ktowers@omnexcontrols.com   */
/* Ken Huntington can be reached by email: kenh@compmore.net         */

#ifndef _DOS_CPT_H
#define _DOS_CPT_H

#if defined (__linux__)

#include <sys/io.h>
#include <unistd.h>

#define inportb(a) inb(a)
#define outportb(a,b) outb(b,a)

#define delay(a) usleep(a*1000)

#define strlcpy(d, s, l) (strncpy(d, s, l), (d)[(l) - 1] = '\0')
#define strlcat(d, s, l) strncat(d, s, (l) - strlen(d) - 1)

#elif defined(__OpenBSD__)

#include <machine/pio.h>
#include <unistd.h>

#define inportb(port) inb(port)
#define outportb(port, data) outb(port, data)

#define delay(t) usleep((t) * 1000)

#elif defined(__WIN32__)

// these functions are in winnt.c
void win_giveio(void);
void delay(int mseconds);
inline unsigned char inportb (const unsigned short port);
inline void outportb (unsigned short port, const unsigned char val);

#else

#include <dos.h>

#endif

#endif /* not _DOS_CPT_H */