linux 2.6.32源码分析,linux 2.6.32 Async_tx代码分析 一

Async_tx是Intel设计的,用来为应用提供异步DMA操作API。

见async_tx.c的最前面

core routines for the asynchronous memory transfer/transform api

* Copyright 漏 2006, Intel Corporation.

*

*        Dan Williams

*

*        with architecture considerations by:

*        Neil Brown

*        Jeff Garzik

呵呵,可以看出来是Intel设计的,然后Neil Brown和Jeff Garzik提供了架构上建议,Neil是linux raid栈的维护者,也可以看出来,这个异步框架设计主要是raid栈是使用的

先看看头文件,

#include

#include

#include

除了2个内核常见包含,只有包含了一个自己相关的头文件。

再看看async_tx.h里面的提供的接口

最开始是防止重复包含的定义,然后除了spinlock锁机制和中断头文件外,还包含了一个叫dmaengine.h的头文件

#ifndef _ASYNC_TX_H_

#define _ASYNC_TX_H_

#include

#include

#include

然后我们搜索一下async_tx.h的引用地方,

Async_memcpy.c (linux-2.6.32.57\crypto\async_tx):#include

Async_memset.c (linux-2.6.32.57\crypto\async_tx):#include

Async_pq.c (linux-2.6.32.57\crypto\async_tx):#include

Async_raid6_recov.c (linux-2.6.32.57\crypto\async_tx):#include

Async_tx.c (linux-2.6.32.57\crypto\async_tx):#include

Async_tx.h (linux-2.6.32.57\include\linux):#include

Async_xor.c (linux-2.6.32.57\crypto\async_tx):#include

Raid5.c (linux-2.6.32.57\drivers\md):#include

Raid6test.c (linux-2.6.32.57\crypto\async_tx):#include

我们可以画出整体使用架构为:

2152941c32a5fc9b59d134bc13347f3a.png

15d6d4b5d4379a4a27f69b1805134921.png 用写博客,就是爽!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值