安全端口分配
现在我们来看看如何通过系统函数来完成资源分配和资源释放。下面的实例 是在linux 2。4内核上进行实验的,以下的所有实现仅适用于Linux操作系统和某些扩展的Unix变种。
首先侦测可用的端口(地址)范围,通过下面的函数:
|
函数返回0表示端口地址可用,返回小于零或负的错误编码( -EBUSY or -EINVAL) 表示已在使用中。函数接受2个参数: start 是 连续区域(或I/O端口范围)的起始值,而len是区域内的端口数目。
当端口可用时,应该将它分配给设备,通过request_region 函数。
struct resource *request_region (unsigned long start, unsigned long len, char *name);
头两个参数和我们前面看到的一样,字符指针变量name是要分配端口地址的设备名称。函数返回指向resource结构的指针。Resource结构用来描述资源的范围,定义于