194 }
else if (msg !=
OK) {
215 for (i=0; i<msglen; i++) {
216 *buff++ = *udataptr++;
277 }
else if (msg !=
OK) {
304 for (i=0; i<msglen; i++) {
305 *buff++ = *udataptr++;
340 if ( (slot < 0) || (slot >=
UDP_SLOTS) ) {
379 pktlen = ((
char *)&pkt->
net_udpdata - (
char *)pkt) + len;
401 for (; len>0; len--) {
402 *udataptr++ = *buff++;
438 if ( (slot < 0) || (slot >=
UDP_SLOTS) ) {
465 pktlen = ((
char *)&pkt->
net_udpdata - (
char *)pkt) + len;
486 for (; len>0; len--) {
487 *udataptr++ = *buff++;
516 if ( (slot < 0) || (slot >=
UDP_SLOTS) ) {
#define IP_UDP
IP向けのUDPプロトコルタイプ
struct netpacket * udqueue[UDP_QSIZ]
void udp_ntoh(struct netpacket *pktptr)
uid32 udp_register(uint32 remip, uint16 remport, uint16 locport)
syscall send(pid32, umsg32)
プロセスにメッセージを送信し、受信側が待機状態の場合はREADY状態にする。
byte net_ethsrc[ETH_ADDR_LEN]
int32 udp_recvaddr(uid32 slot, uint32 *remip, uint16 *remport, char *buff, int32 len, uint32 timeout)
#define TIMEOUT
システムコールがタイムアウトした場合
int32 status
ステータスを意味する返り値の型(OK/SYSERR)
uint32 umsg32
プロセス間で渡されるメッセージ
status resched_cntl(int32)
再スケジューリングを延期させるか、もしくは許可させるかを制御する。
status udp_send(uid32 slot, char *buff, int32 len)
struct udpentry udptab[UDP_SLOTS]
byte ethucast[ETH_ADDR_LEN]
void udp_in(struct netpacket *pktptr)
umsg32 recvclr(void)
受信メッセージをクリアし、待機している場合はメッセージを返す。
int32 udp_recv(uid32 slot, char *buff, int32 len, uint32 timeout)
#define DEFER_STOP
遅延リスケジューリングの停止
uint32 intmask
保存された割り込みマスク
#define DEFER_START
遅延リスケジューリングの開始
int int32
符号あり32ビット整数(int)
byte net_udpdata[1500-28]
unsigned short uint16
符号なし16ビット整数(unsigned short)
status udp_release(uid32 slot)
char * getbuf(bpid32)
事前に確保されたバッファプールからバッファを取得する。
status udp_sendto(uid32 slot, uint32 remip, uint16 remport, char *buff, int32 len)
syscall freebuf(char *)
バッファプールから取得したバッファを解放する。
status ip_send(struct netpacket *)
unsigned int uint32
符号なし32ビット整数(unsigned int)
void udp_hton(struct netpacket *pktptr)
int32 uid32
UDPテーブルディスクリプタのID.
void * memcpy(void *, const void *, int32)
メモリAの領域(source)からメモリBの領域(Destination)にN Byteコピーする。
intmask disable(void)
割り込み禁止(intr.Sに定義がある)