Linux API/linux2015. 10. 26. 15:17

#include <signal.h>


int sigemptyset(sigset_t *set);

int sigfillset(sigset_t *set);

int sigaddset(sigset_t *set, int signum);

int sigdelset(sigset_t *set, int signum);

int sigismember(const sigset_t *set, int signum);

int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);


struct sigaction {

    void     (*sa_handler)(int);

    void     (*sa_sigaction)(int, siginfo_t *, void *);

    sigset_t   sa_mask;

    int        sa_flags;

    void     (*sa_restorer)(void);

};


int signum;

SIGTERM

SIGINT

SIGHUP

SIGFPE

...


[링크 : http://linux.die.net/man/3/sigemptyset]

[링크 : http://linux.die.net/man/3/sigfillset]

[링크 : http://linux.die.net/man/3/sigaddset]

[링크 : http://linux.die.net/man/3/sigdelset]

[링크 : http://linux.die.net/man/2/sigaction]

[링크 : http://linux.die.net/man/2/sigprocmask]

'Linux API > linux' 카테고리의 다른 글

linux open mode  (0) 2015.10.29
named pipe / mkfifo()  (0) 2015.10.27
select()  (0) 2015.10.26
mmap / ioremap  (0) 2015.10.21
리눅스 모듈 - 세마포어 / 뮤텍스  (0) 2015.10.21
Posted by 구차니
Linux API/linux2015. 10. 26. 10:48


[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/2/select]

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Network_Programing/Documents/select]

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/File/select]


[링크 : http://mintnlatte.tistory.com/313]

[링크 : http://ospace.tistory.com/147]

[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=405838]

'Linux API > linux' 카테고리의 다른 글

named pipe / mkfifo()  (0) 2015.10.27
signal  (0) 2015.10.26
mmap / ioremap  (0) 2015.10.21
리눅스 모듈 - 세마포어 / 뮤텍스  (0) 2015.10.21
linux kernel module module_init() 매크로  (0) 2015.10.21
Posted by 구차니

으으 역시 가장 짜증나는 맵..

유닛만 바뀌고 맵은 그대로라.. 실망실망 대실망?


철벽방어에 실험급으로 도배해서 어찌어찌 끝!



Posted by 구차니

일단.. 아내도 끌려오는 바람에

F-22 실외전시만 찍고 거의 바로 후퇴..

하이라이트인 F-22 비행 시범은 ㅠㅠㅠㅠㅠㅠㅠㅠ

'개소리 왈왈 > 2015 에어쇼' 카테고리의 다른 글

ADEX 2015  (0) 2015.10.27
ADEX 2015 in 성남 @ 서울공항  (2) 2015.07.15
Posted by 구차니

벼룩시장에서 천원에 획득 ㅋ

근데 알고보니 갤럭시 노트 2용이라

아내의 갤럭시 노트 4에는 작아서 안맞고..

내 갤럭시 S2에는 너무 크고.. 게다가 커넥터 문제로 이상하게 인식해서 쥐쥐!


중고로 갤럭시 노트 2 라도 살까 해서 기웃거려보니.. 중고가 15만 ㄷㄷㄷ

천원짜리(?) 사려다가 15만원 나가게 생겼네


아무튼 조이스틱으로 인식시켜 pc에서도 사용이 가능하다고 하니

고민을 해봐야겠다..



원래는 5~6만원 정도 하던건데

아마 이가격이면 망했을지도?

[링크 : http://blog.naver.com/leeys2714/220021133666]



+

야이 데브시스터즈 언넝 돌려줘!!!


[링크 : https://play.google.com/store/apps/details?id=com.smardi.gamrbrochure&hl=ko]

'개소리 왈왈 > 모바일 생활' 카테고리의 다른 글

아이폰 어플 파일 관련  (0) 2015.12.21
다음달은 5천원을 목표로!!  (0) 2015.11.13
요금제 변경  (0) 2015.10.15
디펜스 성공!  (0) 2015.05.15
드디어!! 약정 할부 끝? ㅋㅋ  (0) 2015.03.16
Posted by 구차니
embeded/Cortex-M3 Ti2015. 10. 23. 16:07

이게 정말 효율적일까? 라는 의문이 새록새록


일단.. 주소 연산하려면

* 2번(혹은 << 2번)

+ 1번

3번의 연산


만약 1비트를 조작하기 위해서 저 연산을 해야 하는데...

negation 과 and 연산이면 충분한데.. 오히려 연산량이 더 필요할 지도?

stellarisware의 bitband.c 예제

#define HWREGBITW(x, b)                                                       \

        HWREG(((unsigned long)(x) & 0xF0000000) | 0x02000000 |                \

              (((unsigned long)(x) & 0x000FFFFF) << 5) | ((b) << 2))


    for(ulIdx = 0; ulIdx < 32; ulIdx++)

    {

        HWREGBITW(&g_ulValue, 31 - ulIdx) = (0xdecafbad >> (31 - ulIdx)) & 1;

        PrintValue(g_ulValue);

        Delay(1);

    }




32비트 주소체계라 4바이트 씩 띄엄띄엄 값이 들어있다.


[링크 : http://www.ti.com/lit/ds/symlink/lm3s1968.pdf]

2013/08/16 - [embeded/Cortex-M3 Ti] - bitband / cortex-m3


'embeded > Cortex-M3 Ti' 카테고리의 다른 글

axf to bin  (6) 2015.11.11
lm3s1607 / lm3s811 비교  (0) 2015.11.03
lm3s617 stepper rdk  (0) 2015.10.13
lm3s spi / ssi  (0) 2015.10.06
lm3s stellarisware SPI  (0) 2015.10.05
Posted by 구차니

걍 우울해서 지름

초반에 샀으면 5.6$ 급에 질렀을텐데 끝물이라 많이도 올랐네...

remember me 에 혹해서 지른것도 있긴 한데...

지역 락 걸린 레지던트 이블 때문에 돈 낭비 한건 아닌지 모르겠네..






Posted by 구차니
Linux API/linux2015. 10. 21. 14:50

die.net에서 ioremap 찾으니 mmap이 나오는 신기한 현상..

그래서 찾아보니..


ioremap은 커널에서 쓰는 함수

mmap은 유저레벨에서 사용하는 함수


즉, 모듈에서는 ioremap

어플리케이션에서는 mmap으로


[링크 : http://torystory.tistory.com/20]



ioremap 가상주소 -> 물리주소

iounmap 물리주소 -> 가상주소

[링크 : http://mudweb.tistory.com/11]

'Linux API > linux' 카테고리의 다른 글

signal  (0) 2015.10.26
select()  (0) 2015.10.26
리눅스 모듈 - 세마포어 / 뮤텍스  (0) 2015.10.21
linux kernel module module_init() 매크로  (0) 2015.10.21
리눅스 타이머 예제 setitimer() / sigaction()  (0) 2015.10.13
Posted by 구차니
Linux API/linux2015. 10. 21. 13:32

써봐야지 머... ㅠㅠ


[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/IPC/semaphores]

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Thread/Beginning/Mutex]

[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/Book_LSP/ch07_Thread]


sema_init()

[링크 : http://lxr.free-electrons.com/source/include/linux/semaphore.h]



뮤텍스 = 바이너리 세마포어


우선 하는 일에 대해서 mutex는 binary semaphore와 많이 동일하고요.

구조적인 측면과 동작 측면에서는 mutex는 owner라는 개념 있는데 반해 binary semaphore는 owner라는 개념이 없다는 차이가 있습니다.

 

이로 인해 mutex는 lock한 task만 unlock 할수 있는데 반해 semaphore는 아무 task나 unlock이 가능하죠.

[링크 : http://www.iamroot.org/xe/QnA/36692]


[링크 : http://ninako21.tistory.com/500]

[링크 : http://topnanis.tistory.com/195]



+ 2015.10.29

[링크 : http://egloos.zum.com/tiger5net/v/5537603]

'Linux API > linux' 카테고리의 다른 글

select()  (0) 2015.10.26
mmap / ioremap  (0) 2015.10.21
linux kernel module module_init() 매크로  (0) 2015.10.21
리눅스 타이머 예제 setitimer() / sigaction()  (0) 2015.10.13
clock_gettime  (0) 2015.08.09
Posted by 구차니
Linux API/linux2015. 10. 21. 12:24

module_init()는 __initcall()로 치환되고

__initcal()은 static inicall_t __initcall_modulename __init_call = modulename

으로 치환되어

initcall_t 타입의 정적변수로 생성된다.

결국은... 다른 파일에서 __init_call 하나로 끌어갈수 있으려나?

(물론 내부 인터페이스 함수가 존재할 듯?)


#define __initcall(fn) static initcall_t __initcall_##fn __init_call = fn

#define module_init(x)  __initcall(x);


[링크 : http://www.compsoc.man.ac.uk/~moz/kernelnewbies/documents/initcall/kernel.html]


#define __exitcall(fn) \

static exitcall_t __exitcall_##fn __exit_call = fn

#define module_exit(x) __exitcall(x);


[링크 : https://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/include/linux/init.h] 


#define module_param(name, type, perm)                          \

        module_param_named(name, name, type, perm)


#define module_param_named(name, value, type, perm)                        \

        param_check_##type(name, &(value));                                \

        module_param_cb(name, &param_ops_##type, &value, perm);            \

        __MODULE_PARM_TYPE(name, #type)


#define module_param_cb(name, ops, arg, perm)                                 \

        __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1, 0)


#define __module_param_call(prefix, name, ops, arg, perm, level, flags) \

        /* Default value instead of permissions? */                     \

        static const char __param_str_##name[] = prefix #name;          \

        static struct kernel_param __moduleparam_const __param_##name   \

        __used                                                          \

    __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \

        = { __param_str_##name, THIS_MODULE, ops,                       \

            VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } }


#define __moduleparam_const const


[링크 : http://lxr.free-electrons.com/source/include/linux/moduleparam.h]


[링크 : http://www.joinc.co.kr/.../Site/Embedded/Documents/WritingDeviceDriversInLinux]

[링크 : https://www.kernel.org/doc/htmldocs/kernel-hacking/routines-init-again.html]

'Linux API > linux' 카테고리의 다른 글

select()  (0) 2015.10.26
mmap / ioremap  (0) 2015.10.21
리눅스 모듈 - 세마포어 / 뮤텍스  (0) 2015.10.21
리눅스 타이머 예제 setitimer() / sigaction()  (0) 2015.10.13
clock_gettime  (0) 2015.08.09
Posted by 구차니