2014. 5. 25. 08:55 devel/code
'devel/code'에 해당되는 글 19건
- 2014.05.25 bit field
- 2014.05.15 struct device
- 2014.03.15 쉘 스크립트 배열
- 2014.03.04 for loop
- 2014.02.26 kcompat.h - linux kernel version
- 2013.07.06 문자열 배열
- 2013.01.23 c에서 linked list 자료형에 관계 없이 접근하기
- 2012.10.24 ntohs 같은 byte order 변경 함수
- 2012.07.21 포인터 배열, 더블 포인터, 2차원 배열의 포인터
2014. 5. 15. 10:37 devel/code
struct device
2014. 3. 15. 22:13 devel/code
쉘 스크립트 배열
되네유
'devel > code' 카테고리의 다른 글
bit field (0) | 2014.05.25 |
---|---|
struct device (0) | 2014.05.15 |
for loop (0) | 2014.03.04 |
kcompat.h - linux kernel version (0) | 2014.02.26 |
문자열 배열 (0) | 2013.07.06 |
2014. 3. 4. 15:16 devel/code
for loop
warning: statement with no effect
for(j;j<4;j++)
for(;j<4;j++)
'devel > code' 카테고리의 다른 글
struct device (0) | 2014.05.15 |
---|---|
쉘 스크립트 배열 (0) | 2014.03.15 |
kcompat.h - linux kernel version (0) | 2014.02.26 |
문자열 배열 (0) | 2013.07.06 |
c에서 linked list 자료형에 관계 없이 접근하기 (0) | 2013.01.23 |
2014. 2. 26. 20:58 devel/code
kcompat.h - linux kernel version
별건 아니고 e1000e driver 예전꺼를 최신 커널에서 컴파일 하려니까 오류가 나더라
원인을 찾아보니까 kernel 2.x에서 사용하던 kernel function 중 하나 kmap_atomic, kunmap_atomic 함수의
인자 하나가 없어졌다
요걸 어떻게 인텔에서 처리했나 찾아봤다
e1000e driver 구버전(2.x), e1000e driver 신버전(3.x)
을 보면 kcompat.h 이라는 헤더파일에 커널 버전에 따라서 호환성을 다르게 넣는 코드가 숨어있더라
예를 들면 SLE_VERSION_CODE 같은 녀석들 혹은
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) )
이런식의 코드들로 구분을 하더라
사용된 함수 정의를 undef로 날려버리고 새로 define 함수로 인자 하나를 다른거로 교체하느 방식으로 코드를 작성했다
이게 장점이 뭐냐면 c 파일에서 일일히 kmap_atomic 함수를 호출할 때마다 #if(LINUX_VERSION~~) 이런식으로 작성을 하면 엄청 코드가 난잡해지고 지저분해지는데
헤더파일에 저렇게 해주면 코드 가독성이 많이 증가해서 좋은 것 같다
인텔 형님들, 좋은 팁을 배워갑니다
아래는 다른 예시
'devel > code' 카테고리의 다른 글
쉘 스크립트 배열 (0) | 2014.03.15 |
---|---|
for loop (0) | 2014.03.04 |
문자열 배열 (0) | 2013.07.06 |
c에서 linked list 자료형에 관계 없이 접근하기 (0) | 2013.01.23 |
ntohs 같은 byte order 변경 함수 (0) | 2012.10.24 |
2013. 7. 6. 06:27 devel/code
문자열 배열
1 #include <stdio.h>
2 #include <string.h>
3
4 //void az(char g[][8])
5 void az(char (*g)[8])
6 {
7 int i;
8 printf("%s\n", g[0]);
9 printf("%s\n", g[1]);
10 printf("%s\n", g[2]);
11 printf("%s\n", g[3]);
12 }
13
14 int main()
15 {
16 char v[4][8];
17 int i;
18 for(i=0; i<4; i++)
19 strcpy(v[i],"xsfadf");
20 az(v);
21
22 return 0;
23 }
개념은 쉬운데
함수 인자 정의가 헷갈린다
만약 const가 아니라 인자를 수정해야한다면?
3중 포인터?
'devel > code' 카테고리의 다른 글
for loop (0) | 2014.03.04 |
---|---|
kcompat.h - linux kernel version (0) | 2014.02.26 |
c에서 linked list 자료형에 관계 없이 접근하기 (0) | 2013.01.23 |
ntohs 같은 byte order 변경 함수 (0) | 2012.10.24 |
포인터 배열, 더블 포인터, 2차원 배열의 포인터 (0) | 2012.07.21 |
2013. 1. 23. 11:17 devel/code
c에서 linked list 자료형에 관계 없이 접근하기
#define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
linux kernel code에 좀 신기한게 있어서 찾아봤는데 와...천재인거 같다
예전에 했던 고민들이 이런 방법으로 해결이 되는구나
'devel > code' 카테고리의 다른 글
for loop (0) | 2014.03.04 |
---|---|
kcompat.h - linux kernel version (0) | 2014.02.26 |
문자열 배열 (0) | 2013.07.06 |
ntohs 같은 byte order 변경 함수 (0) | 2012.10.24 |
포인터 배열, 더블 포인터, 2차원 배열의 포인터 (0) | 2012.07.21 |
2012. 10. 24. 15:29 devel/code
ntohs 같은 byte order 변경 함수
필요한 일이 있어서 만들어보았다
EA -> AE
4bit씩 서로 변경
대단한건 아니고 그냥 적어봄
uint8_t conv_order1b(uint8_t i)
{
uint8_t tmp=0;
tmp |= (i>>7 & 0x1)<<3;
tmp |= (i>>6 & 0x1)<<2;
tmp |= (i>>5 & 0x1)<<1;
tmp |= (i>>4 & 0x1)<<0;
tmp |= (i>>3 & 0x1)<<7;
tmp |= (i>>2 & 0x1)<<6;
tmp |= (i>>1 & 0x1)<<5;
tmp |= (i>>0 & 0x1)<<4;
return tmp;
}
'devel > code' 카테고리의 다른 글
for loop (0) | 2014.03.04 |
---|---|
kcompat.h - linux kernel version (0) | 2014.02.26 |
문자열 배열 (0) | 2013.07.06 |
c에서 linked list 자료형에 관계 없이 접근하기 (0) | 2013.01.23 |
포인터 배열, 더블 포인터, 2차원 배열의 포인터 (0) | 2012.07.21 |
2012. 7. 21. 07:09 devel/code
포인터 배열, 더블 포인터, 2차원 배열의 포인터
출처 : 윤성우의 열혈 C 프로그래밍
포인터 배열
int n1=10,n2=20,n3=30, n4=40;
int* ptr[4]
int* ptr[4] = {&n1, &n2 ...};
2차원 배열의 포인터
int a2d[2][4] = {1,2,3,4,5,6,7,8};
int (*pptr)[4] = a2d;
int형 변수를 가리키면서 sizeof(int)x4 단위로 증감을 한다
pptr[i][j]로 활용
'devel > code' 카테고리의 다른 글
for loop (0) | 2014.03.04 |
---|---|
kcompat.h - linux kernel version (0) | 2014.02.26 |
문자열 배열 (0) | 2013.07.06 |
c에서 linked list 자료형에 관계 없이 접근하기 (0) | 2013.01.23 |
ntohs 같은 byte order 변경 함수 (0) | 2012.10.24 |