기분좋은 하루되시구요 초보 질문입니다.
typedef struct urb
{
spinlock_t lock; // lock for the URB
void *hcpriv; // private data for host controller
struct list_head urb_list; // list pointer to all active urbs
struct urb *next; // pointer to next URB
struct usb_device *dev; // pointer to associated USB device
unsigned int pipe; // pipe information
int status; // returned status
unsigned int transfer_flags; // USB_DISABLE_SPD | USB_ISO_ASAP | etc.
void *transfer_buffer; // associated data buffer
int transfer_buffer_length; // data buffer length
int actual_length; // actual data buffer length
int bandwidth; // bandwidth for this transfer request (INT or ISO)
unsigned char *setup_packet; // setup packet (control only)
//
int start_frame; // start frame (iso/irq only)
int number_of_packets; // number of packets in this request (iso)
int interval; // polling interval (irq only)
int error_count; // number of errors in this transfer (iso only)
int timeout; // timeout (in jiffies)
//
void *context; // context for completion routine
usb_complete_t complete; // pointer to completion routine
//
iso_packet_descriptor_t iso_frame_desc[0];
} urb_t, *purb_t;
====
1. 여기서 보시면 구조체형을 만들잖아요..urb_t라는 형하고 ,
*purb_t 근데..
*purb_t 는 무엇을 의미하는 건가요?
urb_t aa; <- 이런 식으로 구조체를 선언하는데
*purb_t aa; <- 이런 식으로 하는건 아닐꺼 아니여요?
궁금합니다.
====]
====
2. 그리고 제가 보는 이 소스에
purb_t usb_alloc(int iso_packets)라는 원형이 있는데..
이 구현 부분을 보니..
struct urb * usb_alloc(int iso_packets){...}
라고 되어 있던데..
원래 함수 원형 선언 한것하고 구현부분은 다 같아야 하지 않나여?
purb_t가 struct urb * 을 의미하는 건가요?
다 같은 건가요?]
마지막으로 3번째 질문은
저는 정말 기본적인 것을 모르겠습니다.
임베디드 프로그래밍 보면은 커널 이미지를 만들거나
부트로더 이미지를 만들어서 올리거나 할때
0x00004f3d <-이런것들 나오잖아요?
어떻게 보는 건지..잘 몰겠어요
예를 들어서 설명줌 해주셨으면 합니다...수고하세요`
:D
분리하면 ...[code:1]struct urb{
분리하면 ...
1. 사용은 purb_t aa; 이런식으로 ..
struct urb 라는 구조체를 가르키는 포인터(*)타입형을 purb_t로 정의.. 이런말이 아닐까요. -> int * pint_t; 이런식 처럼
2. 네
제가 생각하기로는 이렇습니다. 다음에 답변다시는 분이 지적해주실거라 믿습니다. ^^;
-------------------- 절취선 --
행복하세요:)
typedef은 기본 자료형으로부터 새로운 자료형을 정의하기위해 사용됩니
typedef은 기본 자료형으로부터 새로운 자료형을 정의하기위해 사용됩니다.
typedef <old_type> <new_type>
typedef으로 정의된 urb_t, purb_t는 각각 struct urb , struct urb * 라고 보시면 됩니다.
매번 길게 다 적는것 보다 이렇게 새로 정의해서 적으면 편리?하겠죠? ^^
댓글 달기