Windowsでの関数呼び出し規約

Windowsでの関数の呼び出し規約は int (*func)(int); // -> int (__cdecl *)(int) int (WINAPI *func)(int); // -> int (__stdcall *)(int)[参考] Hello, world の解説 〜 WINAPI とは何か? __stdcall の説明 - Web-DB プログラミング徹底解説 http://keico…

X86のアセンブラを勉強

0から作るOS開発 ブートローダその6 セグメント http://softwaretechnique.web.fc2.com/OS_Development/bootloader6.html

qemuでVNCを使う時の設定

sudo ./x86_64-softmmu/qemu-system-x86_64 -vnc :0VNCクライアントはWindows7からUltraVNCを利用。接続先は「192.168.11.60::5900」と指定。 -vnc localhost:0ではうまく行かなかった。 -vnc localhost:0でやった時→接続できない [ksuzuki@kensv pVM]$ nets…

大江戸線でスマホの電波が入るようになってる!

地下鉄の大江戸線で、走行中にWebが見れる! すごく便利ー!!

自宅サーバにgitoliteを導入してみる

基本的には、下記サイト(というかREADME)そのまま。 ただ、最後の git clone git@host:gitolite-admin が出来ずにしばらくハマった。 自分のサーバ(localhost)の、git管理用アカウント"git"とは別のユーザからgit cloneしようした&sshのポートは51234に変更…

virt-managerでroot以外の一般ユーザで実行できるようにする

CentOS 6.2 上のKVMをリモートのvirt-managerから操作する - 気ままにインフラエンジニア http://oopsops.hatenablog.com/entry/2012/02/29/220417

tremaとOpen vSwitchの使い方メモ

インストール後・・・ --- Open vSwitch --- ブリッジを追加する ovs-vsctl add-br br0 ovs-vsctl add-port br0 em1 ovs-vsctl add-port br0 em2 確認 ovs-vsctl list-ports br0 OpenFlowのフローエントリを確認 ovs-ofctl dump-flows br0 OpenFlowコントロ…

LinuxのIPv6無効化メモ

検索するといろいろやり方が出てきちゃうけど、Fedora17ではこれだけやればoffにできた。とりさんダイアリー。: Fedora16 IPv6の無効化する http://ham-ns.blogspot.jp/2012/04/fedora16-ipv6.html

衝撃のリベルタンゴ・木管五重奏版!!!

プロです。 半端ないです。 やばいです。 ぜひ聞いてください。 やばいです。 木管五重奏でリベルタンゴを演奏してみた ‐ ニコニコ動画(原宿) http://www.nicovideo.jp/watch/sm12170358

CentOSへtmuxをインストール

Tmux Installation on CentOS http://freevps.us/thread-4311.html

CUI環境でワイヤレス接続の設定

CentOS 6.3のMinimalインストールのCUIでLet's Note CF-W8のワイヤレスを使うまで。まず、ifconfig -aをしても、wlan0が見当たらない。 さらにdmesgを見ると、ワイヤレスデバイスを初期化しようとして、ファームウェアがない!とエラーを言っているのでドラ…

自宅サーバを立ててみる -初期設定-

せっかく高いお金を出して買ったのに,有効に使えていないLet's noteを自宅サーバとして使って見ようと思った。 OSはCentOS 6.3のminimalをインストール。可能な限り最小構成にすべく、chkconfig offで以下まで減らしてみた。 iptables 0:off 1:off 2:on 3:o…

Linuxのパケット受信の流れ

Kernel/VM Advent Calendar 4日目: Linuxのネットワークスタックのスケーラビリティについて - 驟雨のカーネル探検隊(只今遭難中w http://d.hatena.ne.jp/syuu1228/20101210/1291941459

sk_buff *skbのデータ長skb->lenとskb->data_lenについて

skb->data_len == 0 の時は、パケットのデータにリニアにアクセスできる。 つまり、skb->data[i] (i=0..skb->len)ですべてのデータを読み出せる。skb->data_len != 0 の時は、パケットのデータがフラグメント化されているので、上記のようにリニアには読み出…

Linuxカーネルでstruct net_deviceの一覧を取得する

struct net init_netがグローバル変数で宣言されているので、これを利用するらしい。 #include <linux/netdevice.h> struct net_device *dev; dev = first_net_device(&init_net); while (dev) { printk(KERN_INFO "found [%s]\n", dev->name); dev = next_net_device(dev); }Ge</linux/netdevice.h>…

tc,iptablesの使い方メモ

# tc qdisc add dev em1 root handle 1: htb default 30# tc class add dev em1 parent 1: classid 1:1 htb rate 6mbit burst 15k# tc class add dev em1 parent 1:1 classid 1:10 htb rate 5mbit burst 15k# tc class add dev em1 parent 1:1 classid 1:20 …

高精度カーネルタイマ hrtimer (hrtimer_nanosleep())のソースを追う

Linuxカーネル3.4.10 hrtimer_nanosleepはここ。 初期化後起動されるdo_nanosleepがnanosleep処理本体。 [kernel/hrtimer.c] 1580 long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp, 1581 const enum hrtimer_mode mode, const …

clock_nanosleep()のソースを追う

Linuxカーネル 3.4.10 clock_nanosleepはシステムコールだそうです。[kernel/posix-timers.c] 1035 SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, flags, 1036 const struct timespec __user *, rqtp, 1037 struct timespec __user …

LinuxでNFSサーバ・クライアントの設定コマンド

[Server] >#vim /etc/exports /home/xxxx/yyy 192.168.11.5/24(rw,sync,no_root_squash) >systemctl start rpcbind.service >systemctl start nfs-server.service >systemctl start nfs-lock.service >systemctl start nfs-idmap.service >systemctl enable …

プロセスID一覧を取得して引数として渡せる形にするLinuxコマンド

ps -ef | awk '{print $2}' | tr "\n" " "ちなみに、 ps -ef | awk '{print $2}' | sed -e "s/\t\n//" では出来なかった。 sedは一行ずつ(改行の手前の文字まで)読み込んで処理していくので改行は直接は置き換えられないみたい。

ARM:LDRのアドレッシング・シフタ付きレジスタ

"シフタ付きレジスタ LDR R0,[R1,R2,LSL #2]のように書きます。 これが最も曲者です。この例ならば、R2を左に2ビットシフト(4倍)してR1に加えたものがアドレスとなります。"腕の中のARM - ARM in arms - http://homepage2.nifty.com/sampodo/craft/arm…

デバックプリント(DebugPrint)のマクロ

#define PRINTD(fmt, ...) printf(fmt, __VA_ARGS__)職業としてのプログラミング 可変個引数マクロを使う http://proger.blog10.fc2.com/blog-entry-33.html --- 2013/01/10 追記 --- __VA_ARGS__がひとつも無い時にコンパイルエラーになってしまう対策とし…

Linuxカーネル中のtrace_*系関数の定義場所

trace_net_dev_xmitとかtrace_net_dev_queueとか、trace_???系の関数はソースコードをgrepしても定義が見つからない。 と思ったら、include/trace/eventsあたりにマクロで定義されていた。 ftraceで使うみたい。

LinuxからWindowsにリモートデスクトップする

linuxでリモートデスクトップ http://blog.asial.co.jp/509

QEMUでARMエミュレート&実行

arm-linux-gnu-gcc -c -mcpu=cortex-m3 -mthumb start.S arm-linux-gnu-objcopy -O binary start.o start.bin qemu-system-arm -cpu cortex-m3 -kernel start.bin -monitor telnet::4444,server,nowait

Cortex-M3のバイナリの逆アセンブル

Thumb命令です。 arm-linux-gnu-objdump -b binary -m arm -M force-thumb -D start.binELF形式からだと確実っぽい arm-linux-gnu-objdump -d start.o

ARM開発環境

Linux に GNU ARM ツールチェーンをインストールする http://www.ibm.com/developerworks/jp/linux/library/l-arm-toolchain/

TopコマンドTips

topコマンドでマルチコアなCPUの状況を確認する http://d.hatena.ne.jp/rx7/20080802/p3topコマンドの使い方・見方 | Linuxで自宅サーバ構築 http://linuxserver.jp/Linux/top%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89.php

スタートアップルーチンからフルスクラッチでHLWを出力する

組込み技術者向け「初めてのC言語」 http://www.ertl.jp/~takayuki/readings/c/index.html

manより"info"の方がたくさん情報を見つけられる

infoだと・・・ info gcc info ls etc...http://www.ertl.jp/~takayuki/readings/c/no04.html