• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/char/

Lines Matching refs:sd

39 	struct subch_data_s *sd = subch_data;
43 spin_lock_irqsave(&sd->sd_rlock, flags);
44 spin_lock(&sd->sd_wlock);
45 status = ia64_sn_irtr_intr(sd->sd_nasid, sd->sd_subch);
49 wake_up(&sd->sd_rq);
53 (sd->sd_nasid, sd->sd_subch,
55 wake_up(&sd->sd_wq);
58 spin_unlock(&sd->sd_wlock);
59 spin_unlock_irqrestore(&sd->sd_rlock, flags);
73 struct subch_data_s *sd;
80 sd = kzalloc(sizeof (struct subch_data_s), GFP_KERNEL);
81 if (sd == NULL) {
88 sd->sd_nasid = scd->scd_nasid;
89 sd->sd_subch = ia64_sn_irtr_open(scd->scd_nasid);
91 if (sd->sd_subch < 0) {
92 kfree(sd);
97 spin_lock_init(&sd->sd_rlock);
98 spin_lock_init(&sd->sd_wlock);
99 init_waitqueue_head(&sd->sd_rq);
100 init_waitqueue_head(&sd->sd_wq);
101 sema_init(&sd->sd_rbs, 1);
102 sema_init(&sd->sd_wbs, 1);
104 file->private_data = sd;
109 SYSCTL_BASENAME, sd);
111 ia64_sn_irtr_close(sd->sd_nasid, sd->sd_subch);
112 kfree(sd);
129 struct subch_data_s *sd = (struct subch_data_s *) file->private_data;
133 free_irq(SGI_UART_VECTOR, sd);
136 rv = ia64_sn_irtr_close(sd->sd_nasid, sd->sd_subch);
138 kfree(sd);
150 read_status_check(struct subch_data_s *sd, int *len)
152 return ia64_sn_irtr_recv(sd->sd_nasid, sd->sd_subch, sd->sd_rb, len);
161 struct subch_data_s *sd = (struct subch_data_s *) file->private_data;
164 if (down_trylock(&sd->sd_rbs)) {
172 if (down_interruptible(&sd->sd_rbs)) {
180 spin_lock_irqsave(&sd->sd_rlock, flags);
181 status = read_status_check(sd, &len);
188 spin_unlock_irqrestore(&sd->sd_rlock, flags);
189 up(&sd->sd_rbs);
195 add_wait_queue(&sd->sd_rq, &wait);
196 spin_unlock_irqrestore(&sd->sd_rlock, flags);
200 remove_wait_queue(&sd->sd_rq, &wait);
203 up(&sd->sd_rbs);
207 spin_lock_irqsave(&sd->sd_rlock, flags);
208 status = read_status_check(sd, &len);
210 spin_unlock_irqrestore(&sd->sd_rlock, flags);
221 if (copy_to_user(buf, sd->sd_rb, len))
228 up(&sd->sd_rbs);
242 write_status_check(struct subch_data_s *sd, int count)
244 return ia64_sn_irtr_send(sd->sd_nasid, sd->sd_subch, sd->sd_wb, count);
253 struct subch_data_s *sd = (struct subch_data_s *) file->private_data;
256 if (down_trylock(&sd->sd_wbs)) {
264 if (down_interruptible(&sd->sd_wbs)) {
271 if (copy_from_user(sd->sd_wb, buf, count)) {
272 up(&sd->sd_wbs);
277 spin_lock_irqsave(&sd->sd_wlock, flags);
278 status = write_status_check(sd, count);
285 spin_unlock(&sd->sd_wlock);
286 up(&sd->sd_wbs);
291 add_wait_queue(&sd->sd_wq, &wait);
292 spin_unlock_irqrestore(&sd->sd_wlock, flags);
296 remove_wait_queue(&sd->sd_wq, &wait);
299 up(&sd->sd_wbs);
303 spin_lock_irqsave(&sd->sd_wlock, flags);
304 status = write_status_check(sd, count);
306 spin_unlock_irqrestore(&sd->sd_wlock, flags);
309 up(&sd->sd_wbs);
326 struct subch_data_s *sd = (struct subch_data_s *) file->private_data;
329 poll_wait(file, &sd->sd_rq, wait);
330 poll_wait(file, &sd->sd_wq, wait);
332 spin_lock_irqsave(&sd->sd_rlock, flags);
333 spin_lock(&sd->sd_wlock);
334 status = ia64_sn_irtr_intr(sd->sd_nasid, sd->sd_subch);
335 spin_unlock(&sd->sd_wlock);
336 spin_unlock_irqrestore(&sd->sd_rlock, flags);