Linux Driver(4) - 多個裝置、ioctl、lseekLinux Driver(3) - 最基本的開關讀寫 ),來增加一些功能。1. 多個裝置2. ioctl、lseek函式共有3個步驟。1. 修改scripts,改成建造4 個 nodes2. 修改vhcar.h,並新增 ioctl.h3. 修改vchar.c1. 修改scripts,改成建造4 個 nodes:先把他改成多個裝置,這裡我們設定為4個,那首先就要在 /dev 底下創造 4 個 nodes。先修改 vchar_load.sh 和 vchar_unload.sh。vchar_load.sh:把rm -f /dev/$module || exit 1mknod /dev/$module c $major 0改成rm -f /dev/${module}[0-3] || exit 1mknod /dev/${module}0 c $major 0 || exit 1mknod /dev/${module}1 c $major 1 || exit 1mknod /dev/${module}2 c $major 2 || exit 1mknod /dev/${module}3 c $major 3 vchar_unload.sh:把rm -f /dev/$module改成rm -f /dev/${module}[0-3]這樣就會在 /dev 底下建造 vchar0~3 共4個 nodes。2. 修改vhcar.h,並新增 ioctl.h先將VIRTUAL_CHAR_DEVICE_NR_DEVS從原來的 1 改成 4 。再新增 ioctl 和 llseek 兩個函式int     vchar_ioctl(struct inode *inodep, struct 辦公室出租file *filp, unsigned int cmd, unsigned long arg);loff_t  vchar_llseek(struct file *filp, loff_t offset, int whence);最後增加 ioctl.h,內容如下:#ifndef _VCHAR_IOCTL_H_#define _VCHAR_IOCTL_H_#define MEM_CLEAR 0x1    // set memory to zero#endif內容很簡單,就是給user-space引入用的,讓它可以透過ioctl來控制driver,而這的功能就是清除memory的內容,並把offset移到0的位置。3. 修改vchar.c我們需要增加一個index的欄位給  vchar_dev 結構,這是為了讓 作業方法可以辨認此時是操作那一個設備。typedef struct _vchar_dev{    struct cdev cdev; // char device    unsigned char mem[VCHAR_MEM_SIZE];    int index;}vchar_dev;更改vchar_fops,增加指定 llseek 和 ioctl 函式。const struct file_operations vchar_fops ={  .owner = THIS_MODULE,  .llseek = vchar_llseek,  .read = vchar_read,  .write = vchar_write,  .ioctl = vchar_ioctl,  .open = 信用卡代償vchar_open,  .release = vchar_release,};在vchar_init裡,更變分配devp記憶體的地方和註冊字元裝置的地方成4份    vchar_devp = kmalloc(vchar_nr_devs * sizeof(vchar_dev), GFP_KERNEL);    if (!vchar_devp)    {        // unregister device before return error        unregister_chrdev_region(devno, vchar_nr_devs);        return result = -ENOMEM;    }    memset(vchar_devp, 0, vchar_nr_devs * sizeof(vchar_dev));    int i;    for (i=0; i    {        vchar_setup_cdev(vchar_devp, i);        TRACE("schar%d is loaded...\n", i);    }釋放的 vchar_exit也要記得取消註冊4份字元裝置    int i;    for (i=0; 節能燈具i    {        cdev_del(&vchar_devp[i].cdev);   // delete char device        TRACE("schar%d is unloaded...\n", i);    }在 vchar_setup_cdev 裡增加這一行devp->index = index;給每一個 device 設定編號。在vchar_open裡,我們有4個 vchar_devp,我們需用不同的方法來儲存多個 vchar_dev*給filp->private_data。在 inode裡有一個 i_cdev欄位,這欄位指向一個cdev結構,但我們要的不是cdev結構,而是自已定義的 vchar_dev 結構。 這時可以用 container_of 巨集來取得所需的 vchar_dev 結構。    vchar_dev *devp;    devp = container_of(inode->i_cdev, vchar_dev, cdev);    filp->private_data = devp;container_of 的說明可參考這篇 Linux Driver(5) - container_of 分析 。read  、 write 並不用修改,但可加上index,來觀察目前讀寫的設備編號:TRACE("vchar%d:read %d bytes(s) from 吳哥窟%ld\n", devp->index, count, offset);增加 ioctl函式的內容:int vchar_ioctl(struct inode *inodep, struct file *filp, unsigned  int cmd, unsigned long arg){    vchar_dev *devp = filp->private_data;    switch (cmd)    {    case MEM_CLEAR:        memset(devp->mem, 0, VCHAR_MEM_SIZE);        filp->f_pos = 0;        TRACE("vchar%d: The memory is set to zero\n", devp->index);        break;    default:        return  - EINVAL;    }    return 0;}這裡做的就是清除 devp->mem 的內容,並把檔案 offset指為 0。增加 llseek函式的內容:loff_t vchar_llseek(struct file *filp, loff_t offset, int whence){    loff_t newpos = 酒店工作0;    vchar_dev *devp = filp->private_data;    switch (whence)    {    case 0:   // SEEK_SET        TRACE("vchar%d: SEEK_SET\n", devp->index);        newpos = offset;        break;    case 1:   // SEEK_CUR        TRACE("vchar%d: SEEK_CUR\n", devp->index);        newpos = filp->f_pos + offset;        break;    case 2:      // SEEK_END        TRACE("vchar%d: SEEK_END\n", devp->index);        newpos = VCHAR_MEM_SIZE + offset;        break;    襯衫default:        return -EINVAL;      break;    }    if (newpos < 0 || newpos > VCHAR_MEM_SIZE)    {        return -EINVAL;    }    TRACE("vchar%d: newpos:%d\n", devp->index, newpos);    filp->f_pos = newpos;    return newpos;}根據 whence 的值來做 offset 的位移。實際做的就是回應 user-space 中的 lseek 函式。最後再給出應用的例子,#include <sys/types.h>#include <unistd.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <stddef.h>#include <stdio.h>#include <fcntl.h>#include <error.h>#include "ioctl.h"#define BUF_SIZE 128#define MAX_DEVS 4int main(void){    int i;    int fd[MAX_DEVS];    ssize_t 當鋪len=0;    __off_t offset=0;    const char* dev_name[MAX_DEVS] = {"/dev/vchar0","/dev/vchar1","/dev/vchar2","/dev/vchar3"};    unsigned char buf[MAX_DEVS][BUF_SIZE] = {0};    for (i=0; i<MAX_DEVS; i++)    {        fd[i] = open(dev_name[i], O_RDWR, S_IRUSR | S_IWUSR);        if (fd[i])        {            memset(buf[i], i+1, BUF_SIZE);    // set the memory to zero            len = lseek(fd[i], offset, SEEK_END);    // get the length of vchar            printf("get %d  of vchar\n", len);        酒店兼職    lseek(fd[i], offset, SEEK_SET);    // set the offset to start            len = BUF_SIZE;            len = write(fd[i], buf[i], len);            printf("vchar%d:write: %d bytes\n", i, len);        }        else        {            perror("test_vchar::write");            return -1;        }        lseek(fd[i], offset, SEEK_SET);    // set the offset to start        len = read(fd[i], buf, BUF_SIZE);        if (len > 當鋪0)        {            printf("vchar%d:read: %d bytes\n", i, len);        }        else        {            perror("test_vchar::read");            return -1;        }        if (ioctl(fd[i], MEM_CLEAR) == -1)        {            perror("test_vchar::ioctl");            return -1;        }        close(fd[i]);    }    return 0;}

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

稅務傳真-郵局定存利息 漏報要罰工商時報 記者陳懷二胎瑜∕台北報導  南區國稅局22日表示,郵局的存款屬買屋於定存利息的部分,必須與其他金融機構一樣,申報利花蓮民宿息所得,否則如果漏報,除了補稅外還有罰鍰。 國稅關鍵字廣告局指出,前幾年郵局定存利率高於一般銀行,使得民眾找房子紛紛將大筆存款轉入郵局的定期存款帳戶,但在取得利房屋二胎息的當年度,卻未如實將該部分的利息收入申報綜所稅買屋,由於短漏報比率相當高,因此國稅局特別提醒納稅人澎湖民宿,一般郵政儲金100萬元以下,利息可以免列收入,但支票借款是定存利息部分,則應列入利息收入,而郵局也會寄發seo扣繳憑單

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

好一朵美麗的茉莉花好一朵美麗的租房子茉莉花真個好一朵美麗的茉莉花 帛琉就這麼一朵加上兩個花苞 哪ㄝ安ㄋ長灘島ㄟ?樹頭也算粗壯,枝葉也直直長長灘島,可是為什麼就是 不開花?(無語資產管理公司問蒼天啊!)就只有這麼一朵美麗保濕面膜的茉莉花哪位達人請指點,該如何買房子讓它開花呢?? 我真的只能唱~~ 房屋出租好一朵美麗的茉莉花  好一燒烤朵美麗的茉莉花  好一朵美麗租屋網的茉莉 花嗎 ??

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

福建武夷山清晨左邊這些如刀切的山壁,原本負債整合的山石掉落山腳下形成各式各樣的石洞,洞裡東森房屋面夜裡蘊涵水氣,清晨蒸發為大量水氣,造成澎湖民宿這般雲霧飄渺的仙境。為了看這般奇景,我清房屋出租晨六點就來到這裡。等大量遊客八九點喧囂而資產管理公司來,雲霧已經散掉。也就是說,要看這般仙景系統傢俱,跟團是不可能看到的。自助遊還要是早起的澎湖民宿鳥兒。這次福建玩了七天,有三個晚上都是睡酒店兼職夜臥的火車節省時間。處於山谷裡的桃花谷,商務中心一般遊客不會來此。再看一眼玉女峰。大王峰吳哥窟

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

桂冠芙蓉豆腐&沙拉創意料理今天要來品嚐桂冠的芙蓉豆腐喔~還有沙拉~簡單的做出無煙無油的方便料理~細細品嚐桂冠芙蓉豆腐的美妙滋味唷~ 其實桂冠芙蓉豆腐直接吃就已經非常美味可口呢~口感細嫩租房子滑溜~就像奶酪一樣細緻~也像茶碗蒸一樣好味道~加上獨特醬汁~冰冰涼涼~吃起來真的很爽口喔~ 但是就這樣嗎~那可不~還可以變化很多好看好吃~色香味俱全的創意料理喔~而且是無油煙~無油~無負擔的關鍵字廣告美食喔~ 今天準備的材料如下:雞胸肉.馬鈴薯.豌豆.小玉米.青蘆筍.蕃茄.德國香腸.雕魚片.水果丁罐頭.苜蓿牙.海苔香鬆.桂冠芙蓉豆腐.桂冠沙拉~利用以上13種材料同時製作4種料理喔~ (一)蔬果沙拉 系統傢俱做法如下:首先將馬鈴薯煮熟壓成泥~加入燙熟的雞胸肉丁~加入德國香腸切丁~加蕃茄丁~最後加入桂冠沙拉拌勻即完成這道蔬果沙拉喔~ -(二)蕃茄蔬果沙拉盅 做法如下:將蕃茄切蓋~內部挖空~將馬鈴薯泥酒店工作+德國香腸丁~雞肉丁+沙拉拌勻放入蕃茄內~苜蓿芽鋪盤外圍水果丁裝飾加個綠蘆筍點綴~擠入沙拉即可~就完成漂亮的蕃茄蔬果沙拉盅~看起來很漂亮吧~ (三)鮮蔬芙蓉豆腐盅 做法如下:將芙蓉豆腐挖空放居酒屋入燙熟的雞丁及德國香腸然後倒入附上的調味醬汁包~將燙熟的豌豆~蘆筍~小玉米~蕃茄~擺盤裝飾即可~最後再用沙拉點綴一下喔~顏色夠漂亮吧~ (四)金沙雕魚芙蓉豆腐 做法如下:蕃茄切片墊底~芙蓉豆腐買房子切片放在蕃茄片上~然後放入燙熟的雕魚肉~再撒上海苔香鬆~豌豆~綠蘆筍~小玉米擺盤裝飾喔~最後還要淋上芙蓉豆腐附的醬汁喔~這樣就完成了唷~ 最後這道~其實要這樣吃~直接將蕃茄片拿起來~一口放入酒店經紀嘴巴~真的超好吃的~而且夠清爽~吃的出層層的美味喔~蕃茄片的脆~芙蓉豆腐的滑嫩細緻~香鬆的香~雕魚的鮮甜~真的好好吃喔~ 其實做這幾道菜~真的很方便又快速喔~只要將材料都燙熟就差不多了~就可室內裝潢同時變化出來各種不同料理喔~而且好吃更好看呢~ 平常不愛吃蔬菜的晴晴~今天看到我做這幾道~還沒有拍照就急著要吃了~而且還很狗腿的說~看起來好好吃喔~等到拍好照~開動時~馬上食指大動~吃的津當鋪津有味~笑嘻嘻呢~還說媽咪好棒喔~好好吃喔~看到小孩吃媽咪親手做的料理這麼開心~這就是我的成就感呢~最後我一定要說一句:可欣媽咪真心推薦桂冠芙蓉豆腐~桂冠沙拉喔~真的好好吃唷~free hit 燒烤counters

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

安娘威好痛~哎喲威~ 痛死我了九份民宿...腰痛好久都好不了ㄟ 看醫生會場佈置又沒用 上星期有比較好了 這買屋幾天又痛了..真的座也不是 躺也賣房子不是..也不太能彎腰..好難受喔阿有巢氏房屋嗚~~~~~~~~那ㄟ安勒..希望我早日花蓮民宿康復~~

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

疲勞口苦!喝枸杞雞蛋湯很多腦力工作者,由於工作精神壓力大,再加上飲食不當、不規律酒店工作、活動少等特點,其腸胃功能呆滯,進食的食物在胃腸停留時間過長,很容易產生濕熱,也代償會引起口苦。另外,引起晨起口苦的原因很多,如有消化系統、呼吸系統、心血管系統疾病太平洋房屋的人;有口腔疾病以及患有某些感染性疾病的人;經常疲勞、睡眠不足、過度吸煙、酗酒的結婚西裝人等,均可出現口苦症狀。在飲食上宜忌食辛辣、油煎、燒烤等燥熱之品,可多進食清涼湯借錢水,以清涼飲食為主,生活中要忌酒醇甘肥;再者就是要注意情志調攝,保持心境平和,不好房網可急躁,不可憂鬱過度,性格宜開朗。凡性格內向、優柔不決者最易成口苦症,故保持心情seo愉快,是防治此病的關鍵一環。請試試疲勞口苦的食療:枸杞15g,雞蛋2個。先放枸杞與水訂做禮服煮湯,湯成加入攪拌雞蛋,再燒開即成。對輕度口苦能舒緩。

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

[ 視頻 ] 張根碩 允兒《愛情雨》反復九份民宿反復 OST MV張根碩 允兒《愛情雨》反保濕面膜復反復 OST MV 小型辦公室http://www.youtube.com/watch?v=XUy8酒店兼職baT10x4 張根碩 允兒《愛情雨》反復反關鍵字行銷復 OST MV 住商房屋http://www.youtube.com/watch?v=eWFq借貸KePk7Xs&feature=related 
房屋出租

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

運動會運動會 期待已久的運動會終於到來了,我懷著興奮的心情來到了學校,等待著所有精彩節目的登場房屋二胎.      首先是各個代表班級的繞場活動,他們精心的打扮,做了許多特別的造型,為今天的酒店工作節目揭開了序幕。接下來是六年級精彩的大會舞表演,他們整齊劃一的舞步, 搭配黃藍相間的彩球,一上一下的波浪,朝西服氣蓬勃的把最生動的舞姿呈現給大家,真是好看極了!再來是我們四年級的活力健康操,為了這個表演,我們還特地做了租辦公室很可愛的造型帽,大家看了都讚不絕口,說我們很有創意呢!而其他各年級的表演也都很精彩,不過,大家最期待的還是緊系統傢俱張刺激的大隊接力比賽了!      我們班被分在第三組的第三跑道,我是第三棒,雖然我不是飛信用貸款毛腿,也無法健步如飛,但我還是死命的往前跑,其他的同學也是一接到棒子就拼命的往前衝,想用風一樣的速度到達目seo的地,無奈,我們技不如人,最後只得到分組的第四名.但老師說我們很有運動家的精神,所以即使沒有前三名,也很棒了借款!      這是一個精彩又令我難忘的運動會,我期待下一次的運動會也可以這麼豐富又有趣信用貸款.

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()

Top5國外蜜月旅行地點綺幻馬來西亞柔佛州  Malaysia 湛藍海水白沙浪漫踏浪什麼是幸福美好的蜜月之旅?在亞洲大陸最南端馬來西亞柔佛州享受醉人落房屋貸款日,體驗海角天涯的澎湃感受;到馬來西亞大島細白沙灘踏浪,徜徉於海天一色的動人美景,這絕對是幸福蜜月的最佳定義。位於馬來西亞最南端的柔佛州,更辦公室出租是亞洲大陸的最南端,而此特殊的地理位置,也造就了亞洲大陸最南端?美的落日,浪潮聲伴隨著晚霞美景,令人難以忘懷;馬來西亞柔佛州西岸的豐盛港借錢(Mersing)海岸外,擁有眾多島嶼,其中未經過度開發的大島(Pulau Besar)更是蜜月旅人?不能錯過之地。距豐盛港約30分鐘船程的大島,擁有令人懾服的湛藍海網路行銷水、細白沙灘,體驗柔細白沙在腳尖跳躍的感受,至今仍未過度開發的大島,仍保留原始風貌,因此相當受到歐美旅客的歡迎。此外,馬來西亞對紅樹林保護區新成屋維護甚佳,你們小倆口不僅可以在蘊藏了茂密紅樹林的丹絨比艾國家公園(Tanjung Piai)步行或騎乘自行車等方式,觀察欣賞紅樹林的自然生態,更有機會一睹賣房子不時探頭的彈塗魚、海鳥和活潑好動的獼猴。馬來西亞柔佛州擁有未受外界過度開墾的天然環境,完善保留了大自然的光輝,因此,可讓你倆一次享受絕美落日面膜、沙灘、螢火蟲、紅樹林和美食,來趟綺幻的豐富蜜月之旅。蜜月催情景點夢幻蘭卡威之旅馬來西亞的蘭卡威,除了擁有潔淨的沙灘、石灰岩地質山地和原始的酒店打工生活美景特質外,流傳已久的各種民間故事和神話傳說,也是令遊客相當癡迷的。也正因為這些動人的組合,比起其他地方,蘭卡威多了一份更行魅力的色彩,室內設計值得你們小倆口前往探索奧妙。來一趟蘭卡威離島遊,你會發現真正美麗的沙灘及自然瑰寶都在這裡。DATA馬來西亞觀光局TEL:(02)東森房屋2514-9704www.promotemalaysia.com.tw

lj43ljbtuz 發表在 痞客邦 留言(0) 人氣()