aboutsummaryrefslogtreecommitdiffstats
path: root/net/irda/irlap_frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/irda/irlap_frame.c')
-rw-r--r--net/irda/irlap_frame.c74
1 files changed, 37 insertions, 37 deletions
diff --git a/net/irda/irlap_frame.c b/net/irda/irlap_frame.c
index 7c132d6342af..a38b231c8689 100644
--- a/net/irda/irlap_frame.c
+++ b/net/irda/irlap_frame.c
@@ -102,7 +102,7 @@ void irlap_queue_xmit(struct irlap_cb *self, struct sk_buff *skb)
102 irlap_insert_info(self, skb); 102 irlap_insert_info(self, skb);
103 103
104 if (unlikely(self->mode & IRDA_MODE_MONITOR)) { 104 if (unlikely(self->mode & IRDA_MODE_MONITOR)) {
105 IRDA_DEBUG(3, "%s(): %s is in monitor mode\n", __FUNCTION__, 105 IRDA_DEBUG(3, "%s(): %s is in monitor mode\n", __func__,
106 self->netdev->name); 106 self->netdev->name);
107 dev_kfree_skb(skb); 107 dev_kfree_skb(skb);
108 return; 108 return;
@@ -182,7 +182,7 @@ static void irlap_recv_snrm_cmd(struct irlap_cb *self, struct sk_buff *skb,
182 /* Check if the new connection address is valid */ 182 /* Check if the new connection address is valid */
183 if ((info->caddr == 0x00) || (info->caddr == 0xfe)) { 183 if ((info->caddr == 0x00) || (info->caddr == 0xfe)) {
184 IRDA_DEBUG(3, "%s(), invalid connection address!\n", 184 IRDA_DEBUG(3, "%s(), invalid connection address!\n",
185 __FUNCTION__); 185 __func__);
186 return; 186 return;
187 } 187 }
188 188
@@ -193,7 +193,7 @@ static void irlap_recv_snrm_cmd(struct irlap_cb *self, struct sk_buff *skb,
193 /* Only accept if addressed directly to us */ 193 /* Only accept if addressed directly to us */
194 if (info->saddr != self->saddr) { 194 if (info->saddr != self->saddr) {
195 IRDA_DEBUG(2, "%s(), not addressed to us!\n", 195 IRDA_DEBUG(2, "%s(), not addressed to us!\n",
196 __FUNCTION__); 196 __func__);
197 return; 197 return;
198 } 198 }
199 irlap_do_event(self, RECV_SNRM_CMD, skb, info); 199 irlap_do_event(self, RECV_SNRM_CMD, skb, info);
@@ -215,7 +215,7 @@ void irlap_send_ua_response_frame(struct irlap_cb *self, struct qos_info *qos)
215 struct ua_frame *frame; 215 struct ua_frame *frame;
216 int ret; 216 int ret;
217 217
218 IRDA_DEBUG(2, "%s() <%ld>\n", __FUNCTION__, jiffies); 218 IRDA_DEBUG(2, "%s() <%ld>\n", __func__, jiffies);
219 219
220 IRDA_ASSERT(self != NULL, return;); 220 IRDA_ASSERT(self != NULL, return;);
221 IRDA_ASSERT(self->magic == LAP_MAGIC, return;); 221 IRDA_ASSERT(self->magic == LAP_MAGIC, return;);
@@ -290,7 +290,7 @@ void irlap_send_disc_frame(struct irlap_cb *self)
290 struct sk_buff *tx_skb = NULL; 290 struct sk_buff *tx_skb = NULL;
291 struct disc_frame *frame; 291 struct disc_frame *frame;
292 292
293 IRDA_DEBUG(3, "%s()\n", __FUNCTION__); 293 IRDA_DEBUG(3, "%s()\n", __func__);
294 294
295 IRDA_ASSERT(self != NULL, return;); 295 IRDA_ASSERT(self != NULL, return;);
296 IRDA_ASSERT(self->magic == LAP_MAGIC, return;); 296 IRDA_ASSERT(self->magic == LAP_MAGIC, return;);
@@ -321,7 +321,7 @@ void irlap_send_discovery_xid_frame(struct irlap_cb *self, int S, __u8 s,
321 __u32 bcast = BROADCAST; 321 __u32 bcast = BROADCAST;
322 __u8 *info; 322 __u8 *info;
323 323
324 IRDA_DEBUG(4, "%s(), s=%d, S=%d, command=%d\n", __FUNCTION__, 324 IRDA_DEBUG(4, "%s(), s=%d, S=%d, command=%d\n", __func__,
325 s, S, command); 325 s, S, command);
326 326
327 IRDA_ASSERT(self != NULL, return;); 327 IRDA_ASSERT(self != NULL, return;);
@@ -414,13 +414,13 @@ static void irlap_recv_discovery_xid_rsp(struct irlap_cb *self,
414 __u8 *discovery_info; 414 __u8 *discovery_info;
415 char *text; 415 char *text;
416 416
417 IRDA_DEBUG(4, "%s()\n", __FUNCTION__); 417 IRDA_DEBUG(4, "%s()\n", __func__);
418 418
419 IRDA_ASSERT(self != NULL, return;); 419 IRDA_ASSERT(self != NULL, return;);
420 IRDA_ASSERT(self->magic == LAP_MAGIC, return;); 420 IRDA_ASSERT(self->magic == LAP_MAGIC, return;);
421 421
422 if (!pskb_may_pull(skb, sizeof(struct xid_frame))) { 422 if (!pskb_may_pull(skb, sizeof(struct xid_frame))) {
423 IRDA_ERROR("%s: frame too short!\n", __FUNCTION__); 423 IRDA_ERROR("%s: frame too short!\n", __func__);
424 return; 424 return;
425 } 425 }
426 426
@@ -432,12 +432,12 @@ static void irlap_recv_discovery_xid_rsp(struct irlap_cb *self,
432 /* Make sure frame is addressed to us */ 432 /* Make sure frame is addressed to us */
433 if ((info->saddr != self->saddr) && (info->saddr != BROADCAST)) { 433 if ((info->saddr != self->saddr) && (info->saddr != BROADCAST)) {
434 IRDA_DEBUG(0, "%s(), frame is not addressed to us!\n", 434 IRDA_DEBUG(0, "%s(), frame is not addressed to us!\n",
435 __FUNCTION__); 435 __func__);
436 return; 436 return;
437 } 437 }
438 438
439 if ((discovery = kzalloc(sizeof(discovery_t), GFP_ATOMIC)) == NULL) { 439 if ((discovery = kzalloc(sizeof(discovery_t), GFP_ATOMIC)) == NULL) {
440 IRDA_WARNING("%s: kmalloc failed!\n", __FUNCTION__); 440 IRDA_WARNING("%s: kmalloc failed!\n", __func__);
441 return; 441 return;
442 } 442 }
443 443
@@ -445,7 +445,7 @@ static void irlap_recv_discovery_xid_rsp(struct irlap_cb *self,
445 discovery->data.saddr = self->saddr; 445 discovery->data.saddr = self->saddr;
446 discovery->timestamp = jiffies; 446 discovery->timestamp = jiffies;
447 447
448 IRDA_DEBUG(4, "%s(), daddr=%08x\n", __FUNCTION__, 448 IRDA_DEBUG(4, "%s(), daddr=%08x\n", __func__,
449 discovery->data.daddr); 449 discovery->data.daddr);
450 450
451 discovery_info = skb_pull(skb, sizeof(struct xid_frame)); 451 discovery_info = skb_pull(skb, sizeof(struct xid_frame));
@@ -491,7 +491,7 @@ static void irlap_recv_discovery_xid_cmd(struct irlap_cb *self,
491 char *text; 491 char *text;
492 492
493 if (!pskb_may_pull(skb, sizeof(struct xid_frame))) { 493 if (!pskb_may_pull(skb, sizeof(struct xid_frame))) {
494 IRDA_ERROR("%s: frame too short!\n", __FUNCTION__); 494 IRDA_ERROR("%s: frame too short!\n", __func__);
495 return; 495 return;
496 } 496 }
497 497
@@ -503,7 +503,7 @@ static void irlap_recv_discovery_xid_cmd(struct irlap_cb *self,
503 /* Make sure frame is addressed to us */ 503 /* Make sure frame is addressed to us */
504 if ((info->saddr != self->saddr) && (info->saddr != BROADCAST)) { 504 if ((info->saddr != self->saddr) && (info->saddr != BROADCAST)) {
505 IRDA_DEBUG(0, "%s(), frame is not addressed to us!\n", 505 IRDA_DEBUG(0, "%s(), frame is not addressed to us!\n",
506 __FUNCTION__); 506 __func__);
507 return; 507 return;
508 } 508 }
509 509
@@ -536,7 +536,7 @@ static void irlap_recv_discovery_xid_cmd(struct irlap_cb *self,
536 if((discovery_info == NULL) || 536 if((discovery_info == NULL) ||
537 !pskb_may_pull(skb, 3)) { 537 !pskb_may_pull(skb, 3)) {
538 IRDA_ERROR("%s: discovery frame too short!\n", 538 IRDA_ERROR("%s: discovery frame too short!\n",
539 __FUNCTION__); 539 __func__);
540 return; 540 return;
541 } 541 }
542 542
@@ -545,7 +545,7 @@ static void irlap_recv_discovery_xid_cmd(struct irlap_cb *self,
545 */ 545 */
546 discovery = kmalloc(sizeof(discovery_t), GFP_ATOMIC); 546 discovery = kmalloc(sizeof(discovery_t), GFP_ATOMIC);
547 if (!discovery) { 547 if (!discovery) {
548 IRDA_WARNING("%s: unable to malloc!\n", __FUNCTION__); 548 IRDA_WARNING("%s: unable to malloc!\n", __func__);
549 return; 549 return;
550 } 550 }
551 551
@@ -657,7 +657,7 @@ static void irlap_recv_rnr_frame(struct irlap_cb *self, struct sk_buff *skb,
657{ 657{
658 info->nr = skb->data[1] >> 5; 658 info->nr = skb->data[1] >> 5;
659 659
660 IRDA_DEBUG(4, "%s(), nr=%d, %ld\n", __FUNCTION__, info->nr, jiffies); 660 IRDA_DEBUG(4, "%s(), nr=%d, %ld\n", __func__, info->nr, jiffies);
661 661
662 if (command) 662 if (command)
663 irlap_do_event(self, RECV_RNR_CMD, skb, info); 663 irlap_do_event(self, RECV_RNR_CMD, skb, info);
@@ -668,7 +668,7 @@ static void irlap_recv_rnr_frame(struct irlap_cb *self, struct sk_buff *skb,
668static void irlap_recv_rej_frame(struct irlap_cb *self, struct sk_buff *skb, 668static void irlap_recv_rej_frame(struct irlap_cb *self, struct sk_buff *skb,
669 struct irlap_info *info, int command) 669 struct irlap_info *info, int command)
670{ 670{
671 IRDA_DEBUG(0, "%s()\n", __FUNCTION__); 671 IRDA_DEBUG(0, "%s()\n", __func__);
672 672
673 info->nr = skb->data[1] >> 5; 673 info->nr = skb->data[1] >> 5;
674 674
@@ -682,7 +682,7 @@ static void irlap_recv_rej_frame(struct irlap_cb *self, struct sk_buff *skb,
682static void irlap_recv_srej_frame(struct irlap_cb *self, struct sk_buff *skb, 682static void irlap_recv_srej_frame(struct irlap_cb *self, struct sk_buff *skb,
683 struct irlap_info *info, int command) 683 struct irlap_info *info, int command)
684{ 684{
685 IRDA_DEBUG(0, "%s()\n", __FUNCTION__); 685 IRDA_DEBUG(0, "%s()\n", __func__);
686 686
687 info->nr = skb->data[1] >> 5; 687 info->nr = skb->data[1] >> 5;
688 688
@@ -696,7 +696,7 @@ static void irlap_recv_srej_frame(struct irlap_cb *self, struct sk_buff *skb,
696static void irlap_recv_disc_frame(struct irlap_cb *self, struct sk_buff *skb, 696static void irlap_recv_disc_frame(struct irlap_cb *self, struct sk_buff *skb,
697 struct irlap_info *info, int command) 697 struct irlap_info *info, int command)
698{ 698{
699 IRDA_DEBUG(2, "%s()\n", __FUNCTION__); 699 IRDA_DEBUG(2, "%s()\n", __func__);
700 700
701 /* Check if this is a command or a response frame */ 701 /* Check if this is a command or a response frame */
702 if (command) 702 if (command)
@@ -755,7 +755,7 @@ void irlap_send_data_primary(struct irlap_cb *self, struct sk_buff *skb)
755 755
756 irlap_send_i_frame( self, tx_skb, CMD_FRAME); 756 irlap_send_i_frame( self, tx_skb, CMD_FRAME);
757 } else { 757 } else {
758 IRDA_DEBUG(4, "%s(), sending unreliable frame\n", __FUNCTION__); 758 IRDA_DEBUG(4, "%s(), sending unreliable frame\n", __func__);
759 irlap_send_ui_frame(self, skb_get(skb), self->caddr, CMD_FRAME); 759 irlap_send_ui_frame(self, skb_get(skb), self->caddr, CMD_FRAME);
760 self->window -= 1; 760 self->window -= 1;
761 } 761 }
@@ -808,7 +808,7 @@ void irlap_send_data_primary_poll(struct irlap_cb *self, struct sk_buff *skb)
808 irlap_next_state(self, LAP_NRM_P); 808 irlap_next_state(self, LAP_NRM_P);
809 irlap_send_i_frame(self, tx_skb, CMD_FRAME); 809 irlap_send_i_frame(self, tx_skb, CMD_FRAME);
810 } else { 810 } else {
811 IRDA_DEBUG(4, "%s(), sending unreliable frame\n", __FUNCTION__); 811 IRDA_DEBUG(4, "%s(), sending unreliable frame\n", __func__);
812 812
813 if (self->ack_required) { 813 if (self->ack_required) {
814 irlap_send_ui_frame(self, skb_get(skb), self->caddr, CMD_FRAME); 814 irlap_send_ui_frame(self, skb_get(skb), self->caddr, CMD_FRAME);
@@ -835,7 +835,7 @@ void irlap_send_data_primary_poll(struct irlap_cb *self, struct sk_buff *skb)
835 * See max_line_capacities[][] in qos.c for details. Jean II */ 835 * See max_line_capacities[][] in qos.c for details. Jean II */
836 transmission_time -= (self->final_timeout * self->bytes_left 836 transmission_time -= (self->final_timeout * self->bytes_left
837 / self->line_capacity); 837 / self->line_capacity);
838 IRDA_DEBUG(4, "%s() adjusting transmission_time : ft=%d, bl=%d, lc=%d -> tt=%d\n", __FUNCTION__, self->final_timeout, self->bytes_left, self->line_capacity, transmission_time); 838 IRDA_DEBUG(4, "%s() adjusting transmission_time : ft=%d, bl=%d, lc=%d -> tt=%d\n", __func__, self->final_timeout, self->bytes_left, self->line_capacity, transmission_time);
839 839
840 /* We are allowed to transmit a maximum number of bytes again. */ 840 /* We are allowed to transmit a maximum number of bytes again. */
841 self->bytes_left = self->line_capacity; 841 self->bytes_left = self->line_capacity;
@@ -1001,7 +1001,7 @@ void irlap_resend_rejected_frames(struct irlap_cb *self, int command)
1001 /* tx_skb = skb_clone( skb, GFP_ATOMIC); */ 1001 /* tx_skb = skb_clone( skb, GFP_ATOMIC); */
1002 tx_skb = skb_copy(skb, GFP_ATOMIC); 1002 tx_skb = skb_copy(skb, GFP_ATOMIC);
1003 if (!tx_skb) { 1003 if (!tx_skb) {
1004 IRDA_DEBUG(0, "%s(), unable to copy\n", __FUNCTION__); 1004 IRDA_DEBUG(0, "%s(), unable to copy\n", __func__);
1005 return; 1005 return;
1006 } 1006 }
1007 1007
@@ -1033,7 +1033,7 @@ void irlap_resend_rejected_frames(struct irlap_cb *self, int command)
1033 */ 1033 */
1034 while (!skb_queue_empty(&self->txq)) { 1034 while (!skb_queue_empty(&self->txq)) {
1035 1035
1036 IRDA_DEBUG(0, "%s(), sending additional frames!\n", __FUNCTION__); 1036 IRDA_DEBUG(0, "%s(), sending additional frames!\n", __func__);
1037 if (self->window > 0) { 1037 if (self->window > 0) {
1038 skb = skb_dequeue( &self->txq); 1038 skb = skb_dequeue( &self->txq);
1039 IRDA_ASSERT(skb != NULL, return;); 1039 IRDA_ASSERT(skb != NULL, return;);
@@ -1073,7 +1073,7 @@ void irlap_resend_rejected_frame(struct irlap_cb *self, int command)
1073 /* tx_skb = skb_clone( skb, GFP_ATOMIC); */ 1073 /* tx_skb = skb_clone( skb, GFP_ATOMIC); */
1074 tx_skb = skb_copy(skb, GFP_ATOMIC); 1074 tx_skb = skb_copy(skb, GFP_ATOMIC);
1075 if (!tx_skb) { 1075 if (!tx_skb) {
1076 IRDA_DEBUG(0, "%s(), unable to copy\n", __FUNCTION__); 1076 IRDA_DEBUG(0, "%s(), unable to copy\n", __func__);
1077 return; 1077 return;
1078 } 1078 }
1079 1079
@@ -1096,7 +1096,7 @@ void irlap_resend_rejected_frame(struct irlap_cb *self, int command)
1096void irlap_send_ui_frame(struct irlap_cb *self, struct sk_buff *skb, 1096void irlap_send_ui_frame(struct irlap_cb *self, struct sk_buff *skb,
1097 __u8 caddr, int command) 1097 __u8 caddr, int command)
1098{ 1098{
1099 IRDA_DEBUG(4, "%s()\n", __FUNCTION__); 1099 IRDA_DEBUG(4, "%s()\n", __func__);
1100 1100
1101 IRDA_ASSERT(self != NULL, return;); 1101 IRDA_ASSERT(self != NULL, return;);
1102 IRDA_ASSERT(self->magic == LAP_MAGIC, return;); 1102 IRDA_ASSERT(self->magic == LAP_MAGIC, return;);
@@ -1156,7 +1156,7 @@ static inline void irlap_recv_i_frame(struct irlap_cb *self,
1156static void irlap_recv_ui_frame(struct irlap_cb *self, struct sk_buff *skb, 1156static void irlap_recv_ui_frame(struct irlap_cb *self, struct sk_buff *skb,
1157 struct irlap_info *info) 1157 struct irlap_info *info)
1158{ 1158{
1159 IRDA_DEBUG( 4, "%s()\n", __FUNCTION__); 1159 IRDA_DEBUG( 4, "%s()\n", __func__);
1160 1160
1161 info->pf = skb->data[1] & PF_BIT; /* Final bit */ 1161 info->pf = skb->data[1] & PF_BIT; /* Final bit */
1162 1162
@@ -1175,7 +1175,7 @@ static void irlap_recv_frmr_frame(struct irlap_cb *self, struct sk_buff *skb,
1175 __u8 *frame; 1175 __u8 *frame;
1176 int w, x, y, z; 1176 int w, x, y, z;
1177 1177
1178 IRDA_DEBUG(0, "%s()\n", __FUNCTION__); 1178 IRDA_DEBUG(0, "%s()\n", __func__);
1179 1179
1180 IRDA_ASSERT(self != NULL, return;); 1180 IRDA_ASSERT(self != NULL, return;);
1181 IRDA_ASSERT(self->magic == LAP_MAGIC, return;); 1181 IRDA_ASSERT(self->magic == LAP_MAGIC, return;);
@@ -1183,7 +1183,7 @@ static void irlap_recv_frmr_frame(struct irlap_cb *self, struct sk_buff *skb,
1183 IRDA_ASSERT(info != NULL, return;); 1183 IRDA_ASSERT(info != NULL, return;);
1184 1184
1185 if (!pskb_may_pull(skb, 4)) { 1185 if (!pskb_may_pull(skb, 4)) {
1186 IRDA_ERROR("%s: frame too short!\n", __FUNCTION__); 1186 IRDA_ERROR("%s: frame too short!\n", __func__);
1187 return; 1187 return;
1188 } 1188 }
1189 1189
@@ -1269,10 +1269,10 @@ static void irlap_recv_test_frame(struct irlap_cb *self, struct sk_buff *skb,
1269{ 1269{
1270 struct test_frame *frame; 1270 struct test_frame *frame;
1271 1271
1272 IRDA_DEBUG(2, "%s()\n", __FUNCTION__); 1272 IRDA_DEBUG(2, "%s()\n", __func__);
1273 1273
1274 if (!pskb_may_pull(skb, sizeof(*frame))) { 1274 if (!pskb_may_pull(skb, sizeof(*frame))) {
1275 IRDA_ERROR("%s: frame too short!\n", __FUNCTION__); 1275 IRDA_ERROR("%s: frame too short!\n", __func__);
1276 return; 1276 return;
1277 } 1277 }
1278 frame = (struct test_frame *) skb->data; 1278 frame = (struct test_frame *) skb->data;
@@ -1281,7 +1281,7 @@ static void irlap_recv_test_frame(struct irlap_cb *self, struct sk_buff *skb,
1281 if (info->caddr == CBROADCAST) { 1281 if (info->caddr == CBROADCAST) {
1282 if (skb->len < sizeof(struct test_frame)) { 1282 if (skb->len < sizeof(struct test_frame)) {
1283 IRDA_DEBUG(0, "%s() test frame too short!\n", 1283 IRDA_DEBUG(0, "%s() test frame too short!\n",
1284 __FUNCTION__); 1284 __func__);
1285 return; 1285 return;
1286 } 1286 }
1287 1287
@@ -1342,14 +1342,14 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev,
1342 * share and non linear skbs. This should never happen, so 1342 * share and non linear skbs. This should never happen, so
1343 * we don't need to be clever about it. Jean II */ 1343 * we don't need to be clever about it. Jean II */
1344 if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) { 1344 if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) {
1345 IRDA_ERROR("%s: can't clone shared skb!\n", __FUNCTION__); 1345 IRDA_ERROR("%s: can't clone shared skb!\n", __func__);
1346 dev_kfree_skb(skb); 1346 dev_kfree_skb(skb);
1347 return -1; 1347 return -1;
1348 } 1348 }
1349 1349
1350 /* Check if frame is large enough for parsing */ 1350 /* Check if frame is large enough for parsing */
1351 if (!pskb_may_pull(skb, 2)) { 1351 if (!pskb_may_pull(skb, 2)) {
1352 IRDA_ERROR("%s: frame too short!\n", __FUNCTION__); 1352 IRDA_ERROR("%s: frame too short!\n", __func__);
1353 dev_kfree_skb(skb); 1353 dev_kfree_skb(skb);
1354 return -1; 1354 return -1;
1355 } 1355 }
@@ -1365,7 +1365,7 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev,
1365 /* First we check if this frame has a valid connection address */ 1365 /* First we check if this frame has a valid connection address */
1366 if ((info.caddr != self->caddr) && (info.caddr != CBROADCAST)) { 1366 if ((info.caddr != self->caddr) && (info.caddr != CBROADCAST)) {
1367 IRDA_DEBUG(0, "%s(), wrong connection address!\n", 1367 IRDA_DEBUG(0, "%s(), wrong connection address!\n",
1368 __FUNCTION__); 1368 __func__);
1369 goto out; 1369 goto out;
1370 } 1370 }
1371 /* 1371 /*
@@ -1400,7 +1400,7 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev,
1400 break; 1400 break;
1401 default: 1401 default:
1402 IRDA_WARNING("%s: Unknown S-frame %02x received!\n", 1402 IRDA_WARNING("%s: Unknown S-frame %02x received!\n",
1403 __FUNCTION__, info.control); 1403 __func__, info.control);
1404 break; 1404 break;
1405 } 1405 }
1406 goto out; 1406 goto out;
@@ -1438,7 +1438,7 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev,
1438 break; 1438 break;
1439 default: 1439 default:
1440 IRDA_WARNING("%s: Unknown frame %02x received!\n", 1440 IRDA_WARNING("%s: Unknown frame %02x received!\n",
1441 __FUNCTION__, info.control); 1441 __func__, info.control);
1442 break; 1442 break;
1443 } 1443 }
1444out: 1444out: