/shark/trunk/drivers/oldsnd/include/drivers/dma.h |
---|
0,0 → 1,90 |
/* |
* Project: S.Ha.R.K. |
* |
* Coordinators: |
* Giorgio Buttazzo <giorgio@sssup.it> |
* Paolo Gai <pj@gandalf.sssup.it> |
* |
* Authors : |
* Paolo Gai <pj@gandalf.sssup.it> |
* Massimiliano Giorgi <massy@gandalf.sssup.it> |
* Luca Abeni <luca@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
* http://www.sssup.it |
* http://retis.sssup.it |
* http://shark.sssup.it |
*/ |
/** |
------------ |
CVS : $Id: dma.h,v 1.1 2004-05-11 15:14:48 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2004-05-11 15:14:48 $ |
------------ |
**/ |
/* |
* Copyright (C) 2000 Luca Abeni |
* |
* 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 |
* |
*/ |
#ifndef __DRIVERS_DMA_H__ |
#define __DRIVERS_DMA_H__ |
#include "ll/sys/cdefs.h" |
__BEGIN_DECLS |
typedef struct dma_buff{ |
BYTE *p; |
DWORD len; |
DWORD count; |
BYTE page; |
BYTE *dma_buff; |
WORD dma_bufflen; |
} DMA_BUFF; |
BYTE *dma_getpage(DWORD dim); |
void dma_start(BYTE channel); |
void dma_setmode(BYTE channel, BYTE mode); |
void dma_setbuff(BYTE channel, BYTE *addr, WORD len); |
void dma_reset(void); |
void dma16_start(BYTE channel); |
void dma16_setmode(BYTE channel, BYTE mode); |
void dma16_setbuff(BYTE channel, BYTE *addr, WORD len); |
void dma16_reset(void); |
void dma_getalignbuff(struct dma_buff *buff, WORD len); |
void dma_out(BYTE channel, struct dma_buff *b); |
void dma_in(BYTE channel, struct dma_buff *b); |
void dma_stop(BYTE channel); |
void dma16_out(BYTE channel, struct dma_buff *b); |
void dma16_in(BYTE channel, struct dma_buff *b); |
void dma16_stop(BYTE channel); |
int infun(struct dma_buff *b); |
int outfun(struct dma_buff *b); |
__END_DECLS |
#endif |
/shark/trunk/drivers/oldsnd/include/drivers/sound.h |
---|
0,0 → 1,112 |
/* |
* Project: S.Ha.R.K. |
* |
* Coordinators: |
* Giorgio Buttazzo <giorgio@sssup.it> |
* Paolo Gai <pj@gandalf.sssup.it> |
* |
* Authors : |
* Paolo Gai <pj@gandalf.sssup.it> |
* Massimiliano Giorgi <massy@gandalf.sssup.it> |
* Luca Abeni <luca@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
* http://www.sssup.it |
* http://retis.sssup.it |
* http://shark.sssup.it |
*/ |
/** |
------------ |
CVS : $Id: sound.h,v 1.1 2004-05-11 15:14:48 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2004-05-11 15:14:48 $ |
------------ |
**/ |
/* |
* Copyright (C) 2000 Luca Abeni |
* |
* 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 |
* |
*/ |
/* Project: HARTIK 3.0 Sound Library */ |
/* Description: Hard Real TIme Kernel for 8086 compatible */ |
/* Author: Luca Abeni */ |
/* Date: 5/12/1997 */ |
/* File: Sound.H */ |
/* Revision: 3.0 */ |
#include <drivers/dma.h> |
#ifndef __SOUND_H__ |
#define __SOUND_H__ |
#ifdef __cplusplus |
extern "C" { |
#endif |
#define ENABLE 1 |
#define DISABLE 0 |
#define PIO_OP 0x00 |
#define DMA_OP 0x01 |
#define PCM8 0x00 |
#define PCM16 0x02 |
#define SYNCH 0x00 |
#define ASYNCH 0x04 |
#define MYFUN 0x08 |
#define NOBUFF 0x10 |
#define STATBUFF 0x00 |
#define DYNBUFF 0x20 |
#define IN 0 |
#define OUT 1 |
#define BUFFSIZE 0xFFFF /* esattamente un segmento */ |
#define TICK /*91*/ 100 |
void sound_setfun(int (*infun)(void *rawbuff), int (*outfun)(void *rawbuff)); |
int sound_sample(BYTE *buff, DWORD sps, DWORD len, BYTE t, TASK_MODEL *m); |
int sound_play(BYTE *buff, DWORD sps, DWORD len, BYTE t, TASK_MODEL *m); |
int sound_wait(void); |
void sound_stop(void); |
int sound_init(WORD rawbuffsize, TASK_MODEL *m); |
void sound_info(void); |
int dummyfun1(struct dma_buff *d); |
int dummyfun2(struct dma_buff *d); |
#ifdef __cplusplus |
}; |
#endif |
#endif |
/shark/trunk/drivers/net/include/drivers/eth.h |
---|
0,0 → 1,118 |
/* |
* Project: S.Ha.R.K. |
* |
* Coordinators: |
* Giorgio Buttazzo <giorgio@sssup.it> |
* Paolo Gai <pj@gandalf.sssup.it> |
* |
* Authors : |
* Paolo Gai <pj@gandalf.sssup.it> |
* Massimiliano Giorgi <massy@gandalf.sssup.it> |
* Luca Abeni <luca@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
* http://www.sssup.it |
* http://retis.sssup.it |
* http://shark.sssup.it |
*/ |
/** |
------------ |
CVS : $Id: eth.h,v 1.1 2004-05-11 15:14:48 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2004-05-11 15:14:48 $ |
------------ |
**/ |
/* |
* Copyright (C) 2000 Luca Abeni |
* |
* 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 |
* |
*/ |
/* Project: HARTIK 3.0 Network Library */ |
/* Description: Hard Real TIme Kernel for 8086 compatible */ |
/* Author: Luca Abeni */ |
/* Date: 4/12/1997 */ |
/* File: Eth.H */ |
/* Revision: 2.0 */ |
#ifndef __ETH_H__ |
#define __ETH_H__ |
#include <ll/ll.h> |
#include <endian.h> |
#ifdef __cplusplus |
extern "C" { |
#endif |
#define LOOPBACK 2 |
#define ETH_MAX_LEN 1528 |
#define ETH_ARP_TYPE 0x0806 |
#define ETH_IP_TYPE 0x0800 |
#define ETH_HRT_TYPE 0x8FFF |
#define ETH_MAX_PROTOCOLS 5 |
typedef struct eth_addr { |
BYTE ad[6]; |
} ETH_ADDR; |
typedef struct eth_header { |
struct eth_addr dest; |
struct eth_addr source; |
WORD type; |
} ETH_HEADER; |
typedef struct eth_device { |
DWORD BaseAddress; |
BYTE IntLine; |
struct eth_addr addr; |
} ETH_DEVICE; |
#define setEthAddr(q,w) memcpy(q.ad,w.ad,sizeof(struct eth_addr)) |
/* |
--- These functions are declared into endian.h that includes bits/endian.h |
that includes ../oslib/libm/machine/endian.h :-( |
Maybe the code needs a BIG cleanup... PJ |
unsigned short htons(unsigned short host); |
unsigned short ntohs(unsigned short net); |
*/ |
void eth_str2Addr(char *add, struct eth_addr *ds); |
void eth_printHeader(struct eth_header *p); |
void eth_printPkt(char *pkt,int len); |
int eth_setProtocol(WORD type, void (*recv)(void *pkt)); |
void *eth_setHeader(void *b, struct eth_addr dest, WORD type); |
int eth_sendPkt(void *p, int len); |
void *eth_getFDB(void *pkt); |
int eth_init(int mode, TASK_MODEL *m); |
void eth_close(void *a); |
void eth_getAddress(struct eth_addr *eth); |
#ifdef __cplusplus |
}; |
#endif |
#endif |
/shark/trunk/drivers/net/include/drivers/udpip.h |
---|
0,0 → 1,182 |
/* |
* Project: S.Ha.R.K. |
* |
* Coordinators: |
* Giorgio Buttazzo <giorgio@sssup.it> |
* Paolo Gai <pj@gandalf.sssup.it> |
* |
* Authors : |
* Paolo Gai <pj@gandalf.sssup.it> |
* Massimiliano Giorgi <massy@gandalf.sssup.it> |
* Luca Abeni <luca@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
* http://www.sssup.it |
* http://retis.sssup.it |
* http://shark.sssup.it |
*/ |
/** |
------------ |
CVS : $Id: udpip.h,v 1.1 2004-05-11 15:14:48 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2004-05-11 15:14:48 $ |
------------ |
**/ |
/* |
* Copyright (C) 2000 Luca Abeni |
* |
* 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 |
* |
*/ |
/* Project: HARTIK 3.0 */ |
/* Description: Hard Real TIme Kernel for 8086 compatible */ |
/* Author: Luca Abeni */ |
/* Date: 25/9/96 */ |
/* File: UDPIP.h */ |
/* Revision: 4.0 */ |
/* First, include the net general definitions */ |
#include <modules/hartport.h> |
#include <drivers/net.h> |
#ifndef __UDPIP_H__ |
#define __UDPIP_H__ |
#ifdef __cplusplus |
extern "C" { |
#endif |
/*#define net_setudpip(m,localaddr) {net_setprotocol(&m, ip_init, localaddr); net_setprotocol(&m, udp_init, NULL);}*/ |
#define net_setudpip(m,localaddr,broadcastaddr) {struct ip_params p={localaddr,broadcastaddr};net_setprotocol(&m, ip_init, &p); net_setprotocol(&m, udp_init, NULL);} |
struct ip_params{ |
char*localAddr; |
char*broadcastAddr; |
}; |
typedef struct ip_addr{ |
BYTE ad[4]; |
} IP_ADDR; |
#define IP_ERROR_BASE (ETH_ERROR_BASE + 20) |
#define IP_INIT_ERROR (0 + IP_ERROR_BASE) |
#define IP_UDP_TYPE 17 |
#define IP_TCP_TYPE 6 |
#define setIpAddr(q,w) memcpy(q.ad,w.ad,sizeof(IP_ADDR)) |
#define getVers(b) ((b) >> 4) |
#define getHlen(b) (b & 0x0f) |
#define getFlags(w) ((w) >> 13) |
#define getFrOffset(w) (w & 0x1fff) |
typedef struct ip_header { |
BYTE vers_hlen; |
BYTE servType; |
WORD lenght; |
WORD ident; |
WORD flags_frOffset; |
BYTE ttl; |
BYTE protocol; |
WORD headChecksum; |
IP_ADDR source; |
IP_ADDR dest; |
} IP_HEADER; |
#define IP_MAX_ENTRIES 2 |
typedef struct ip_table{ |
BYTE protocol; |
void (*rfun)(void *m); |
} IP_TABLE; |
void ip_print_header(IP_HEADER *p); |
int ip_compAddr(IP_ADDR ip1, IP_ADDR ip2); |
int ip_str2addr(char *a, IP_ADDR *ip); |
void *ip_getFDB(void *pkt); |
int ip_setProtocol(BYTE p, void (*recv)(void *m)); |
void ip_send(IP_ADDR dest, void *pkt, WORD len); |
void ip_init(void *p);/*pass a struct ip_params* */ |
IP_ADDR *ip_getAddr(); |
/***************************************************************************/ |
/* */ |
/* UDP */ |
/* */ |
/***************************************************************************/ |
typedef struct udp_addr{ |
IP_ADDR s_addr; |
WORD s_port; |
} UDP_ADDR; |
typedef struct udp_header{ |
WORD s_port; |
WORD d_port; |
WORD mlen; |
WORD checksum; |
} UDP_HEADER; |
typedef struct pseudo_hd { |
IP_ADDR source; |
IP_ADDR dest; |
BYTE zero; |
BYTE protocoll; |
WORD len; |
} PSEUDO_HD; |
typedef struct udp_msg{ |
WORD mlen; |
UDP_ADDR addr; |
void *buff; |
} UDP_MSG; |
typedef struct udp_table{ |
WORD port; |
BYTE valid; |
PORT hport; |
PORT pport; |
BYTE notify; |
int (*notify_fun)(int l, BYTE *buff, void *p); |
void *notify_par; |
} UDP_TABLE; |
void udp_init(void *dummy); |
int udp_recvfrom(int s, void *buff, UDP_ADDR *from); |
int udp_sendto(int s, void *buff, int nbytes, UDP_ADDR *to); |
int udp_bind(UDP_ADDR *a, IP_ADDR *bindlist); |
int udp_notify(int s, int (*f)(int len, BYTE *buff, void *p), void *p); |
#ifdef __cplusplus |
}; |
#endif |
#endif |
/shark/trunk/drivers/net/include/drivers/net.h |
---|
0,0 → 1,104 |
/* |
* Project: S.Ha.R.K. |
* |
* Coordinators: |
* Giorgio Buttazzo <giorgio@sssup.it> |
* Paolo Gai <pj@gandalf.sssup.it> |
* |
* Authors : |
* Paolo Gai <pj@gandalf.sssup.it> |
* Massimiliano Giorgi <massy@gandalf.sssup.it> |
* Luca Abeni <luca@gandalf.sssup.it> |
* (see the web pages for full authors list) |
* |
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy) |
* |
* http://www.sssup.it |
* http://retis.sssup.it |
* http://shark.sssup.it |
*/ |
/** |
------------ |
CVS : $Id: net.h,v 1.1 2004-05-11 15:14:48 giacomo Exp $ |
File: $File$ |
Revision: $Revision: 1.1 $ |
Last update: $Date: 2004-05-11 15:14:48 $ |
------------ |
**/ |
/* |
* Copyright (C) 2000 Luca Abeni |
* |
* 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 |
* |
*/ |
/* Project: HARTIK 3.0 Network Library */ |
/* Description: Hard Real TIme Kernel for 8086 compatible */ |
/* Author: Luca Abeni */ |
/* Date: 4/12/1997 */ |
/* File: Net.H */ |
/* Revision: 1.00 */ |
#ifndef __NET_H__ |
#define __NET_H__ |
#ifdef __cplusplus |
extern "C" { |
#endif |
/***************************************************************************/ |
/* */ |
/* NetInit interface */ |
/* */ |
/***************************************************************************/ |
#define NET_MAX_PROTOCOLS 10 |
#define TXTASK 1 |
#define TXMEM 0 |
#define LOOPBACK 2 |
#define net_setmode(m,mode) m.lowlevparm=mode |
typedef struct protocol { |
void (*initfun)(void *parm); |
void *initparms; |
} PROTOCOL; |
typedef struct net_model { |
int lowlevparm; |
int numprotocol; |
struct protocol protocol[NET_MAX_PROTOCOLS]; |
} NET_MODEL; |
extern struct net_model net_base /*= {0, 0, {NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
NULL, NULL, NULL, NULL, NULL, NULL}}*/; |
/*void set(struct net_model *m);*/ |
void net_setprotocol(struct net_model *m, void (*initfun)(void *parm), void *initparms); |
int net_init(struct net_model *m); |
/* The UDP/IP stack definition now are in the exported header "UDPIP.H" */ |
#ifdef __cplusplus |
}; |
#endif |
#endif |