Programming/system programming
-
[linux] mmap sys callProgramming/system programming 2015. 11. 1. 12:17
원문 http://blog.naver.com/saiezo/120194833729참조: http://man7.org/linux/man-pages/man2/mmap.2.htmlhttp://unix.superglobalmegacorp.com/Net2/newsrc/sys/mman.h.html #include #include void* mmap(void* start, size_t length, int port, int flags, int fd, off_t offset) mmap() 함수는 fd로 지정된 디바이스 파일의 내용을 offset에 해당하는 물리 주소에서 시작하여 length 바이크 만큼을 start 주소로 copy해준다. (map or unmap files or devices into memory) ● ..
-
[linux] 디바이스 드라이버 만들기Programming/system programming 2015. 6. 1. 19:22
device등록 Device driver를 커널에 등록할때에는 register_chrdev(장치 주번호, 장치이름, file_operations)함수를 사용하고, module_init함수내에서 수행한다.터미널 드라이버 경우에는 주번호 : 4, 디바이스 이름 : "tty” , 파일 연산 : tty_fops struct file_operations Linux/include/linux/fs.h http://lxr.free-electrons.com/source/include/linux/fs.h리눅스에서 디바이스는 위의 함수들을 지원한다. led 디바이스에는 open, write, release만 있으면 되므로 아래와 같이 정의해주면 된다. struct file_operations iom_led_fops ={op..
-
[네트워크]주소변환관련 APIProgramming/system programming 2014. 10. 3. 19:33
항상 헷갈리는 주소변환.참조 : http://blog.naver.com/PostView.nhn?blogId=dkssud2623&logNo=70043775711&redirect=Dlog&widgetTypeCall=true 주소변환관련 API intelx86은 little endian 방식으로 데이터 처리,저장network는 big endian 방식으로 데이터 처리둘이 다르기때문에 Data to Network 는 big endian방식으로 애초에 메모리에 저장하고,Data from Network는 메모리에 있는 데이터를 little endian으로 변환해서 프로그래머가 처리한다. long short little endian -> big endian(Host byte order TO Network byte o..
-
[Linux] shared memoryProgramming/system programming 2013. 6. 19. 18:40
#include #include int shmget(key_t key, size_t size, int shmflg) 공유 메모리를 생성하는 함수. 또한 공유메모리를 생성하기 전에 이미 만들어져 있나 확인할 때 사용함. 성공시 반환값 : 공유 메모리 식별자 실패시 반환값 : -1 key_t key 공유 메모리를 구별하는 식별번호(공유 메모리의 고유 값으로 사용자가 임의 설정) size_t size 공유 메모리 크기 int shmflg 동작 옵션 IPC_CREATE : key에 해당하는 공유 메모리가 없다면 생성한다. 만약 있다면 무시하며 생성을 위해 접근 권한을 저정해 주어야 한다. IPC_EXCL: 공유 메모리가 이미 있다면 실패로 반환하며 공유 메모리에 접근하지 못한다. void* shmat(int s..