Skip to content

Instantly share code, notes, and snippets.

@ytakano
ytakano / i225.md
Created March 17, 2025 07:38
i225 (ChatGPT)

Intel I225のレジスタマップとPCIeのBase Address Register(BAR)の関係について調査します。

また、OpenBSDのソースコード(if_igc.c)を解析し、I225のレジスタ操作の実装についても詳しく調べます。

調査結果がまとまり次第、お知らせします。

I225のレジスタマップ概要: Intel I225 EthernetコントローラはPCI Expressデバイスとして実装されており、主要なレジスタ群はPCI構成空間のBase Address Register (BAR0)によって指し示されるメモリ空間にメモリマップされています (/usr/src/sys/dev/pci/if_igc.c)。BAR0に割り当てられた物理メモリアドレス領域(デバイスのレジスタマップ)は、デバイス制御・ステータス、送受信制御、割り込み制御、DMAリングバッファ設定など多数のレジスタで構成されています。OpenBSDドライバではpci_mapreg_map関数を用いてこのBAR0領域(オフセット0x10)をカーネル仮想空間にマッピングし (/usr/src/sys/dev/pci/if_igc.c)、bus_space経由で読み書きアクセスします。例えばIGC_READ_REG/IGC_WRITE_REGマクロにより、bus_space_read_4/bus_space_write_4を用いてメモリマップされたレジスタにアクセスしています ([src/sys/dev/pci/if_igc.h at c

@ytakano
ytakano / Dockerfile
Created December 11, 2023 01:11
OpenBSD src
FROM httpd:2.4
ARG TITLE="OpenBSD"
ARG GIT=https://github.com/openbsd/src.git
#RUN sed -i 's/deb\.debian\.org/ftp\.jaist\.ac\.jp\/pub\/Linux/g' /etc/apt/sources.list
RUN apt-get -y update && \
apt-get -y upgrade && \
apt-get install -y tzdata

モノイド

trait Monoid
where
    Self: PartialEq + std::fmt::Debug + Sized + Clone,
{
    const E: Self; // 単位元

    /// 乗算演算。self * rhs。 Self x Self -> Self
@ytakano
ytakano / corpus.py
Created December 13, 2019 06:33
corpus
corpus = ['abed', 'abet', 'abets', 'abut', 'acme',
'acre', 'acres', 'actors', 'actress', 'airmen',
'alert', 'alerted', 'ales', 'aligned', 'allergy',
'alter', 'altered', 'amen', 'anew', 'angel',
'angle', 'antler', 'apt', 'bade', 'baste',
'bead', 'beast', 'beat', 'beats', 'beta',
'betas', 'came', 'care', 'cares', 'casters',
'castor', 'costar', 'dealing', 'gallery', 'glean',
'largely', 'later', 'leading', 'learnt', 'leas',
'mace', 'mane', 'marine', 'mean', 'name',
@ytakano
ytakano / installfstar.md
Last active December 11, 2019 04:40
Installation of F star

Install F* on Ubuntu Linux

Install Opam

See below if you you use ubuntu 19.04

$ sudo apt install opam
$ opam init
$ eval `opam config env`
@ytakano
ytakano / epubVertical.sh
Last active December 28, 2024 17:34
横書きのepubファイルを縦書きに変更するスクリプト
#!/usr/bin/env sh
if [ $# -ne 1 ]; then
echo "need epub file!" 1>&2
echo "example:" 1>&2
echo " $ $0 ebook.epub" 1>&2
exit 1
fi
FILE=`basename "$1" .epub`

導出原理

p∨q, ¬p∨r
─────────
   q∨r

証明

@ytakano
ytakano / sftap_icmp.md
Last active April 25, 2017 09:44
SF-TAP Flow AbstractorのICMP対応

SF-TAP Flow Abstractorの更新

$ cd flow-abstractor
$ git pull origin master
$ make clean
$ cmake .
$ make
!#/bin/sh
for i in `seq 0 15`
do
PORT=`expr $i + 10000`
echo socat TCP-LISTEN:$PORT,reuseaddr,fork UNIX-CLIENT:/tmp/sf-tap/tcp/http$i
socat TCP-LISTEN:$PORT,reuseaddr,fork UNIX-CLIENT:/tmp/sf-tap/tcp/http$i
done
@ytakano
ytakano / cnt.c
Last active August 24, 2016 06:38
#include <stdio.h>
#include <stdint.h>
#define TZCNTQ(DST, SRC) \
do { \
asm ( \
"tzcntq %1, %0;" \
: "=r" (DST) \
: "r" (SRC) \
); \