51 extern void ctxsw(
void *,
void *);
144 extern void halt(
void);
327 extern void panic(
char *);
613 extern void xdone(
void);
619 #define htons(x) ((0xff & ((x) >> 8)) | ((0xff & (x)) << 8)) 620 #define htonl(x) ((((x) >> 24) & 0x000000ff) | (((x) >> 8) & 0x0000ff00) | \ 621 (((x) << 8) & 0x00ff0000) | (((x) << 24) & 0xff000000)) 622 #define ntohs(x) ((0xff & ((x) >> 8)) | ((0xff & (x)) << 8)) 623 #define ntohl(x) ((((x) >> 24) & 0x000000ff) | (((x) >> 8) & 0x0000ff00) | \ 624 (((x) << 8) & 0x00ff0000) | (((x) << 24) & 0xff000000)) syscall semcount(sid32)
セマフォのカウント値を返す。
devcall lpinit(struct dentry *)
int32 ethwrite(struct dentry *, void *, uint32)
int32 dbid32
データブロックID(ファイルシステムで使用する)
void eth_hton(struct netpacket *)
devcall rflputc(struct dentry *, char)
int32 udp_recv(uid32, char *, int32, uint32)
devcall gpiocontrol(struct dentry *, int32, int32, int32)
dbid32 lfdballoc(struct lfdbfree *)
void _ptclear(struct ptentry *, uint16, int32(*)(int32))
ポートを用いたメッセージと待機中プロセスを解放する。
did32 namrepl(char *, char[])
void exception(int32, int32 *)
status icmp_release(int32)
status udp_send(uid32, char *, int32)
devcall rdsinit(struct dentry *)
status ip_out(struct netpacket *)
void arp_in(struct arppacket *)
unsigned char byte
符号なし8ビット値(unsigned char)
void ip_in(struct netpacket *)
int32 ibid32
ブロックIDのインデックス(ファイルシステムで使用する)
devcall lpopen(struct dentry *, char *, char *)
pid32 enqueue(pid32, qid16)
プロセスをプロセスキューテーブルの末尾に挿入する。
syscall ptcreate(int32)
未処理のメッセージを「カウント」できるポートを作成する。
interrupt clkhandler(void)
sid32 semcreate(int32)
未使用セマフォを割り当て、そのセマフォへのインデックス(セマフォID)を返す。
syscall ptinit(int32)
全てのポートを初期化する。
devcall lflseek(struct dentry *, uint32)
devcall rflinit(struct dentry *)
syscall seek(did32, uint32)
devcall ramread(struct dentry *, char *, int32)
devcall ramopen(struct dentry *, char *, char *)
devcall gpioread(struct dentry *, char *, int32)
void ctxsw(void *, void *)
コンテキストスイッチを行う(ctxsw.S に定義がある)
devcall lflcontrol(struct dentry *, int32, int32, int32)
syscall freemem(char *, uint32)
メモリブロックを解放し、ブロックを空きリストに戻す。
status rfsndmsg(uint16, char *)
devcall lflinit(struct dentry *)
syscall signaln(sid32, int32)
セマフォにシグナルをN回送り、N個の待機プロセスがある場合はそれらをREADY状態にする。 ...
struct netpacket * icmp_mkpkt(uint32, uint16, uint16, uint16, char *, int32)
syscall mount(char *, char *, did32)
void pdump(struct netpacket *)
status lfscreate(did32, ibid32, uint32)
void arp_hton(struct arppacket *)
devcall ramclose(struct dentry *)
int32 ethinit(struct dentry *)
devcall rflwrite(struct dentry *, char *, int32)
int32 udp_recvaddr(uid32, uint32 *, uint16 *, char *, int32, uint32)
syscall ptdelete(int32, int32(*)(int32))
ポートを削除し、待機中のプロセスとメッセージを解放する。
devcall rflgetc(struct dentry *)
devcall lpwrite(struct dentry *, char *, int32)
devcall rfscontrol(struct dentry *, int32, int32, int32)
syscall ptreset(int32, int32(*)(int32))
ポートをリセットを行う。
void icmp_ntoh(struct netpacket *)
syscall read(did32, char *, uint32)
void lfibclear(struct lfiblk *, int32)
devcall gpiowrite(struct dentry *, char *, int32)
void userret(void)
プロセスが最上位の関数に戻る時に呼ばれる。現在のプロセスを終了させる。
syscall ptsend(int32, umsg32)
メッセージをキューに追加する事によってポートへメッセージを送信する。
devcall rfsopen(struct dentry *devptr, char *, char *)
devcall lflputc(struct dentry *, char)
syscall send(pid32, umsg32)
プロセスにメッセージを送信し、受信側が待機状態の場合はREADY状態にする。
bpid32 mkbufpool(int32, int32)
バッファプール用のメモリを割り当て、バッファ同士をリンクする。
status ready(pid32)
プロセスをCPUサービスの対象にする。
uint16 ipcksum(struct netpacket *)
int32 lexan(char *, int32, char *, int32 *, int32[], int32[])
syscall control(did32, int32, int32, int32)
umsg32 receive(void)
メッセージの受信を待ち、受信後にreceive()の呼び出し者にメッセージを返す。
int32 rfscomm(struct rf_msg_hdr *, int32, struct rf_msg_hdr *, int32)
devcall lpgetc(struct dentry *)
void halt(void)
システムを停止させる(intr.Sに定義がある)
syscall semdelete(sid32)
セマフォテーブルエントリを解放し、セマフォを削除する。
int32 status
ステータスを意味する返り値の型(OK/SYSERR)
void eth_ntoh(struct netpacket *)
devcall nammap(char *, char[], did32)
int32 ethread(struct dentry *, void *, uint32)
void lfibget(did32, ibid32, struct lfiblk *)
devcall namopen(struct dentry *, char *, char *)
devcall lflgetc(struct dentry *)
void arp_ntoh(struct arppacket *)
uint16 icmp_cksum(char *, int32)
syscall kill(pid32)
指定のプロセスを終了させ、システムから終了させたプロセス情報を取り除く。
uint32 umsg32
プロセス間で渡されるメッセージ
void udp_ntoh(struct netpacket *)
status lfsetup(struct lflcblk *)
status lfdbfree(did32, dbid32)
int32 am335x_eth_init(struct ethcblk *)
status resched_cntl(int32)
再スケジューリングを延期させるか、もしくは許可させるかを制御する。
devcall ttywrite(struct dentry *, char *, int32)
status addargs(pid32, int32, int32[], int32, char *, void *)
XINUシェルが作成したコマンドプロセスのスタックに引数argv(任意個)のローカルコピーを追加する。 ...
int32 set_evec(uint32, uint32)
pid32 dequeue(qid16)
プロセスキューテーブルからキューを削除し、リスト先頭のプロセスIDを返す。
int32 spiinit(struct dentry *)
status icmp_send(uint32, uint16, uint16, uint16, char *, int32)
int32 icmp_recv(int32, char *, int32, uint32)
devcall lflclose(struct dentry *)
devcall rflclose(struct dentry *)
devcall ramwrite(struct dentry *, char *, int32)
uint32 getticks(void)
CPUリセット以降のclock tick数を取得する。
status insertd(pid32, qid16, int32)
devcall ttyputc(struct dentry *, char)
syscall putc(did32, char)
デバイスへ文字1Byteを送信する。
int32 icmp_register(uint32)
syscall write(did32, char *, uint32)
void enable(void)
割り込み許可(intr.Sに定義がある)
pri16 chprio(pid32, pri16)
プロセスのスケジューリング優先度を変更する。
void icmp_in(struct netpacket *)
status lftruncate(struct lflcblk *)
syscall yield(void)
CPU実行権を自発的に放棄する(タイムスライスを終了する)。
devcall rdsclose(struct dentry *)
void ip_local(struct netpacket *)
devcall lflread(struct dentry *, char *, int32)
devcall rflread(struct dentry *, char *, int32)
devcall rfsinit(struct dentry *)
umsg32 recvclr(void)
受信メッセージをクリアし、待機している場合はメッセージを返す。
IP&Ethernet用のARPパケットフォーマット
devcall ttygetc(struct dentry *)
int32 outsw(int32, int32, int32)
devcall ttyread(struct dentry *, char *, int32)
devcall lfsopen(struct dentry *, char *, char *)
uint32 intmask
保存された割り込みマスク
status namcpy(char *, char *, int32)
int32 * memcmp(void *, const void *, int32)
int int32
符号あり32ビット整数(int)
devcall rdsopen(struct dentry *, char *, char *)
devcall lfsinit(struct dentry *)
devcall lflwrite(struct dentry *, char *, int32)
pid32 getlast(qid16)
キューの末尾からプロセスを取り出す。
devcall ttyinit(struct dentry *)
uid32 udp_register(uint32, uint16, uint16)
unsigned short uint16
符号なし16ビット整数(unsigned short)
void * memset(void *, const int, int32)
指定のByteブロックに対して、同じ値をNバイト分書き込む。
pri16 resume(pid32)
プロセスを休止状態(サスペンド)からREADY状態に遷移させる。
pid32 getpid(void)
現在実行中のプロセスIDを返す。
void rdsprocess(struct rdscblk *)
char * getbuf(bpid32)
事前に確保されたバッファプールからバッファを取得する。
pid32 create(void *, uint32, pri16, char *, uint32,...)
関数の実行を開始するプロセスを作成する。
void udp_hton(struct netpacket *)
devcall ttycontrol(struct dentry *, int32, int32, int32)
devcall ionull(void)
何もしない(デバイステーブルの"don't care"エントリに使用する)
void pdumph(struct netpacket *)
void resched(void)
最優先の適切なプロセスにCPU実行権を渡す。
syscall semreset(sid32, int32)
セマフォカウントをリセットし、待機中のプロセスを全て解放する。
pid32 getitem(pid32)
キューの任意の位置からプロセスを取り出す。
void interrupt
割り込みハンドラ 返り値の型
devcall gpioinit(struct dentry *)
status bufinit(void)
バッファプールデータ構造を初期化する。
void panic(char *)
Panic状態に陥った旨のメッセージを表示し、全てのプロセスを停止させる。
status udp_release(uid32)
void xdone(void)
最終プロセスの終了時、システム終了メッセージを表示する。
struct rdbuff * rdsbufalloc(struct rdscblk *)
int32 namlen(char *, int32)
uint32 ptrecv(int32)
ポートからメッセージを受信する。受信前にメッセージが空の場合はブロッキングする。
pid32 getfirst(qid16)
キューの先頭からプロセスを取り出す。
int32 insw(int32, int32, int32)
interrupt ethhandler(uint32)
void ttyhandle_in(struct ttycblk *, struct uart_csreg *)
devcall gpioselect(uint32, uint32, uint32)
int32 syscall
システムコール関数 返り値の型
status rdscomm(struct rd_msg_hdr *, int32, struct rd_msg_hdr *, int32, struct rdscblk *)
syscall freebuf(char *)
バッファプールから取得したバッファを解放する。
devcall ioerr(void)
ステータスとしてエラーを返す(デバイステーブルの"error"エントリに対して使用する)。 ...
void ip_hton(struct netpacket *)
status arp_resolve(uint32, byte[])
devcall rflseek(struct dentry *, uint32)
status ip_enqueue(struct netpacket *)
devcall rdswrite(struct dentry *, char *, int32)
status insert(pid32, qid16, int32)
優先度に基づいて、キューにプロセスを挿入する。
devcall spicontrol(struct dentry *, int32, int32, int32)
qid16 newqueue(void)
グローバルキューテーブルにキューを割り当て、テーブルを初期化する。
status ip_send(struct netpacket *)
status udp_sendto(uid32, uint32, uint16, char *, int32)
devcall rdscontrol(struct dentry *, int32, int32, int32)
syscall signal(sid32)
セマフォにシグナルを送り、待機プロセスがある場合は解除する。
devcall rdsread(struct dentry *, char *, int32)
syscall open(did32, char *, char *)
void udp_in(struct netpacket *)
devcall lpread(struct dentry *, char *, int32)
status ascdate(uint32, char *)
devcall raminit(struct dentry *)
unsigned int uint32
符号なし32ビット整数(unsigned int)
status getutime(uint32 *)
void ttyhandle_out(struct ttycblk *, struct uart_csreg *)
syscall getprio(pid32)
プロセスのスケジューリング優先度を取得する。
status lfscheck(struct lfdir *)
int32 devcall
デバイスコール関数 返り値の型
uint32 dot2ip(char *, uint32 *)
status gettime(uint32 *)
1970年1月1日からの経過時間(秒単位)にロケーション(時差)を反映した時間を返す。
void ttykickout(struct uart_csreg *)
int32 ethcontrol(struct dentry *, int32, int32, int32)
int32 uid32
UDPテーブルディスクリプタのID.
void icmp_hton(struct netpacket *)
status lfflush(struct lflcblk *)
int32 ptcount(int32)
ポートを用いたメッセージ送受信において、メッセージ数を数える。
char * getstk(uint32)
スタックメモリを割り当て、最上位のワードアドレスを返す。
void * memcpy(void *, const void *, int32)
メモリAの領域(source)からメモリBの領域(Destination)にN Byteコピーする。
status lfibput(did32, ibid32, struct lfiblk *)
intmask disable(void)
割り込み禁止(intr.Sに定義がある)
devcall lpputc(struct dentry *, char)
syscall init(did32)
デバイスとデバイスドライバを初期化する。
int32 process
プロセスの最上位レベル関数 返り値の型
void ip_ntoh(struct netpacket *)
syscall suspend(pid32)
プロセスを一時停止し、休止状態(サスペンド)に遷移させる。
char * getmem(uint32)
ヒープ領域を割り当て、最下位のワードアドレスを返す。