$ od -c -N 50000 [Erinyes]<LispManual>EtherOtherLevelOne.im!3 0000000 \r { B e g i n S u b S e c S 0000020 u p p o r t f o r O t h e r 0000040 L e v e l O n e P r o t o 0000060 c o l s } \r { T i t l e S u p 0000100 p o r t f o r O t h e r L 0000120 e v e l O n e P r o t o c o 0000140 l s } \r { T e x t \r \r R a w p 0000160 a c k e t s o t h e r t h a 0000200 n o f t y p e P U P o r 0000220 N S c a n a l s o b e 0000240 s e n t a n d r e c e i v e 0000260 d . T h i s s e c t i o n 0000300 d e s c r i b e s f a c i l 0000320 i t i e s t o s u p p o r t 0000340 s u c h p r o t o c o l s . 0000360 M a n y o f t h e s e 0000400 f u n c t i o n s h a v e a 0000420 { l i s p \ } i n t h e 0000440 i r n a m e s t o d e s i 0000460 g n a t e t h a t t h e y 0000500 a r e s y s t e m i n t e r 0000520 n a l , n o t t o b e d 0000540 e a l t w i t h a s c a s 0000560 u a l l y a s u s e r - l e 0000600 v e l f u n c t i o n s . \r \r 0000620 { F n D e f { N a m e R E S 0000640 T A R T . E T H E R } \r { T e x 0000660 t \r T h i s f u n c t i o n 0000700 i s i n t e n d e d t o b 0000720 e i n v o k e d f r o m t 0000740 h e e x e c u t i v e o n 0000760 t h o s e r a r e o c c a s 0001000 i o n s w h e n t h e E t 0001020 h e r n e t a p p e a r s c 0001040 o m p l e t e l y u n r e s p 0001060 o n s i v e , d u e t o L 0001100 i s p h a v i n g g o t t e 0001120 n i n t o a b a d s t a 0001140 t e . { f n R E S T A R T 0001160 . E T H E R } r e i n i t i a 0001200 l i z e s L i s p ' s E t h 0001220 e r n e t d r i v e r ( s ) , 0001240 j u s t a s w h e n t h 0001260 e L i s p s y s t e m i s 0001300 s t a r t e d u p f o l l 0001320 o w i n g a { f n L O G O 0001340 U T } , { f n S Y S O U T } 0001360 , e t c . T h i s a b o 0001400 r t s a n y E t h e r n e t 0001420 a c t i v i t y a n d c l 0001440 e a r s s e v e r a l i n t 0001460 e r n a l c a c h e s , i n 0001500 c l u d i n g t h e r o u t 0001520 i n g t a b l e . \r } } \r \r \r 0001540 \r { i n d e x X { N a m e A 0001560 L L O C A T E . E T H E R P A C 0001600 K E T } { T y p e F u n c t 0001620 i o n } \r { T e x t { l i s p 0001640 ( \ A L L O C A T E . E T H E 0001660 R P A C K E T ) } } } \r \r { F 0001700 n D e f { N a m e \ A L L O 0001720 C A T E . E T H E R P A C K E T 0001740 } { A r g s } \r { T e x t \r R 0001760 e t u r n s a n { l i s p 0002000 E T H E R P A C K E T } d a t 0002020 u m . E n o u g h o f t 0002040 h e p a c k e t i s c l e 0002060 a r e d s o t h a t i f 0002100 t h e p a c k e t r e p r e 0002120 s e n t s a { l i s p P U 0002140 P } o r { l i s p N S } 0002160 p a c k e t , t h a t i t s 0002200 h e a d e r i s a l l z 0002220 e r o s ; n o g u a r a n t 0002240 e e i s m a d e a b o u t 0002260 t h e r e m a i n d e r o 0002300 f t h e p a c k e t . \r } 0002320 } \r \r { i n d e x X { N a m e 0002340 R E L E A S E . E T H E R P A 0002360 C K E T } { T y p e F u n c 0002400 t i o n } \r { T e x t { l i s 0002420 p ( \ R E L E A S E . E T H E 0002440 R P A C K E T { a r g E P K 0002460 T } ) } } } \r \r { F n D e f 0002500 { N a m e \ R E L E A S E . E 0002520 T H E R P A C K E T } { A r g 0002540 s E P K T } \r { T e x t \r R e 0002560 t u r n s { a r g E P K T } 0002600 t o t h e p o o l o f 0002620 f r e e p a c k e t s . T 0002640 h i s o p e r a t i o n i s 0002660 d a n g e r o u s i f t h 0002700 e c a l l e r a c t u a l l 0002720 y i s s t i l l h o l d i 0002740 n g o n t o { a r g E P 0002760 K T } , e . g . , i n s o 0003000 m e q u e u e , s i n c e 0003020 t h i s p a c k e t c o u l 0003040 d b e r e t u r n e d t o 0003060 s o m e o n e e l s e ( v 0003100 i a { f n \ A L L O C A T E 0003120 . E T H E R P A C K E T } ) a 0003140 n d s u f f e r t h e r e 0003160 s u l t i n g c o n t e n t i 0003200 o n . \r \r F r o m a l o g i 0003220 c a l s t a n d p o i n t , 0003240 p r o g r a m s n e e d n e 0003260 v e r c a l l { f n \ R E 0003300 L E A S E . E T H E R P A C K E 0003320 T } , s i n c e t h e p a 0003340 c k e t s a r e e v e n t u 0003360 a l l y g a r b a g e - c o l 0003400 l e c t e d a f t e r a l l 0003420 p o i n t e r s t o t h e 0003440 m d r o p . H o w e v e r 0003460 , s i n c e t h e p a c k 0003500 e t s a r e s o l a r g e 0003520 , n o r m a l g a r b a g e 0003540 c o l l e c t i o n s t e n 0003560 d n o t t o o c c u r f 0003600 r e q u e n t l y e n o u g h 0003620 . T h u s , f o r b e s 0003640 t p e r f o r m a n c e , a 0003660 w e l l - d i s c i p l i n e 0003700 d p r o g r a m s h o u l d 0003720 e x p l i c i t l y r e l e 0003740 a s e p a c k e t s w h e n 0003760 i t k n o w s i t i s 0004000 f i n i s h e d w i t h t h 0004020 e m . \r } } \r \r A l o c a l l 0004040 y - c o n n e c t e d n e t w 0004060 o r k f o r t h e t r a n 0004100 s m i s s i o n a n d r e c 0004120 e i p t o f E t h e r p a 0004140 c k e t s i s s p e c i f i 0004160 e d b y a { i t n e t w 0004200 o r k d e s c r i p t o r b 0004220 l o c k } , a n o b j e c t 0004240 o f t y p e { l i s p N 0004260 D B } . T h e r e i s o 0004300 n e { l i s p N D B } f o 0004320 r e a c h d i r e c t l y - 0004340 c o n n e c t e d n e t w o r 0004360 k ; o r d i n a r i l y t h 0004400 e r e i s o n l y o n e . 0004420 T h e { l i s p N D B } 0004440 c o n t a i n s i n f o r m 0004460 a t i o n s p e c i f i c t 0004500 o t h e n e t w o r k , e 0004520 . g . , i t s { l i s p P 0004540 U P } a n d { l i s p N S 0004560 } n e t w o r k n u m b e r 0004600 s , a n d i n f o r m a t i 0004620 o n a b o u t h o w t o 0004640 s e n d a n d r e c e i v e 0004660 p a c k e t s o n i t . \r 0004700 \r { i n d e x X { N a m e L 0004720 O C A L N D B S } { T y p e 0004740 V a r i a b l e } \r { T e x t 0004760 { l i s p \ L O C A L N D B S 0005000 } } } \r \r { v a r d e f { N 0005020 a m e \ L O C A L N D B S } \r 0005040 { T e x t \r T h e f i r s t 0005060 { l i s p N D B } c o n n e 0005100 c t e d t o t h i s m a c 0005120 h i n e , o r { l i s p N 0005140 I L } i f t h e r e i s 0005160 n o n e t w o r k . A n y 0005200 o t h e r { l i s p N D B 0005220 } s a r e l i n k e d t o 0005240 t h i s f i r s t o n e 0005260 v i a t h e { l i s p N D 0005300 B N E X T } f i e l d o f 0005320 t h e { l i s p N D B } . \r 0005340 } } \r \r \r I n o r d e r t o 0005360 t r a n s m i t a n E t h 0005400 e r p a c k e t , a p r o 0005420 g r a m m u s t s p e c i f 0005440 y t h e p a c k e t ' s t 0005460 y p e a n d i t s i m m e 0005500 d i a t e d e s t i n a t i o 0005520 n . T h e t y p e i s 0005540 a 1 6 - b i t i n t e g e r 0005560 i d e n t i f y i n g t h e 0005600 p a c k e t ' s p r o t o c 0005620 o l . T h e r e a r e p 0005640 r e a s s i g n e d t y p e s 0005660 f o r { l i s p P U P } 0005700 a n d { l i s p N S } . 0005720 T h e d e s t i n a t i o n 0005740 i s a h o s t a d d r e s 0005760 s o n t h e l o c a l n 0006000 e t w o r k , i n w h a t e 0006020 v e r f o r m t h e l o c 0006040 a l n e t w o r k u s e s 0006060 f o r a d d r e s s i n g ; 0006100 i t i s n o t n e c e s s 0006120 a r i l y r e l a t e d t o 0006140 t h e l o g i c a l u l t 0006160 i m a t e d e s t i n a t i o 0006200 n o f t h e p a c k e t . 0006220 D e t e r m i n i n g t h 0006240 e i m m e d i a t e d e s t 0006260 i n a t i o n o f a p a c 0006300 k e t i s t h e t a s k 0006320 o f { i t r o u t i n g } . 0006340 T h e f u n c t i o n s 0006360 { f n S E N D P U P } a n d 0006400 { f n S E N D X I P } t a 0006420 k e c a r e o f t h i s 0006440 f o r t h e { l i s p P U 0006460 P } a n d { l i s p N S } 0006500 p r o t o c o l s , r o u t 0006520 i n g a p a c k e t d i r 0006540 e c t l y t o i t s d e s 0006560 t i n a t i o n i f t h a t 0006600 h o s t i s o n t h e 0006620 l o c a l n e t w o r k , o 0006640 r r o u t i n g i t t o 0006660 a g a t e w a y i f t h e 0006700 h o s t i s o n s o m e 0006720 o t h e r n e t w o r k a 0006740 c c e s s i b l e v i a t h 0006760 e g a t e w a y . O f c 0007000 o u r s e , a g a t e w a y 0007020 m u s t k n o w a b o u t 0007040 t h e t y p e ( p r o t o 0007060 c o l ) o f a p a c k e t 0007100 i n o r d e r t o b e 0007120 a b l e t o f o r w a r d 0007140 i t . \r \r { F n D e f { N a m 0007160 e E N C A P S U L A T E . E T 0007200 H E R P A C K E T } { A r g s 0007220 N D B P A C K E T P D H 0007240 N B Y T E S E T Y P E } \r { T 0007260 e x t \r E n c a p s u l a t e s 0007300 { a r g P A C K E T } f o 0007320 r t r a n s m i s s i o n o 0007340 n n e t w o r k { a r g N 0007360 D B } . { a r g P D H } 0007400 i s t h e p h y s i c a l 0007420 d e s t i n a t i o n h o s t 0007440 ( e . g . , a n 8 - b i t 0007460 p u p h o s t n u m b e r 0007500 o r a 4 8 - b i t N S 0007520 h o s t n u m b e r ) ; { a 0007540 r g N B Y T E S } i s t h 0007560 e l e n g t h o f t h e 0007600 p a c k e t i n b y t e s ; 0007620 { a r g E T Y P E } i s 0007640 t h e p a c k e t ' s e n c 0007660 a p s u l a t i o n t y p e 0007700 ( a n i n t e g e r ) . \r } } 0007720 \r \r { F n D e f { N a m e T 0007740 R A N S M I T . E T H E R P A C 0007760 K E T } { A r g s N D B P 0010000 A C K E T } \r { T e x t \r T r a 0010020 n s m i t s { a r g P A C K 0010040 E T } , w h i c h m u s t 0010060 a l r e a d y h a v e b e e 0010100 n e n c a p s u l a t e d , 0010120 o n n e t w o r k { a r g 0010140 N D B } . D i s p o s i t i 0010160 o n o f t h e p a c k e t 0010200 a f t e r t r a n s m i s s 0010220 i o n i s c o m p l e t e 0010240 i s d e t e r m i n e d b y 0010260 t h e v a l u e o f { a 0010300 r g P A C K E T } ' s { l i 0010320 s p E P R E Q U E U E } f i 0010340 e l d . \r } } \r \r \r \r I n o r 0010360 d e r t o r e c e i v e E 0010400 t h e r p a c k e t s o f 0010420 t y p e o t h e r t h a n 0010440 { l i s p P U P } o r { l 0010460 i s p N S } , t h e p r o 0010500 g r a m m e r m u s t s p e 0010520 c i f y w h a t t o d o 0010540 w i t h i n c o m i n g p a 0010560 c k e t s . L i s p m a i 0010600 n t a i n s a s e t o f 0010620 { i t p a c k e t f i l t e 0010640 r s } , f u n c t i o n s w 0010660 h o s e j o b i t i s t 0010700 o a p p r o p r i a t e l y 0010720 d i s p o s e o f i n c o m 0010740 i n g p a c k e t s o f t 0010760 h e k i n d t h e y w a n 0011000 t . W h e n a p a c k e 0011020 t a r r i v e s , t h e E 0011040 t h e r n e t d r i v e r c 0011060 a l l s e a c h f i l t e r 0011100 f u n c t i o n i n t u r 0011120 n u n t i l i t f i n d s 0011140 o n e t h a t a c c e p t 0011160 s t h e p a c k e t . T 0011200 h e f i l t e r f u n c t i 0011220 o n i s c a l l e d w i t 0011240 h t w o a r g u m e n t s : 0011260 ( { a r g P A C K E T } { 0011300 a r g T Y P E } ) , w h e r 0011320 e { a r g P A C K E T } i 0011340 s t h e a c t u a l p a c 0011360 k e t , a n d { a r g T Y 0011400 P E } i s i t s E t h e r 0011420 n e t e n c a p s u l a t i o 0011440 n t y p e ( a n u m b e r 0011460 ) . I f a f i l t e r 0011500 f u n c t i o n a c c e p t s 0011520 t h e p a c k e t , i t 0011540 s h o u l d d o w h a t i 0011560 t w a n t s t o w i t h 0011600 i t , a n d r e t u r n { 0011620 l i s p T } ; e l s e i t 0011640 s h o u l d r e t u r n { 0011660 l i s p N I L } , a l l o w 0011700 i n g o t h e r p a c k e t 0011720 f i l t e r s t o s e e 0011740 t h e p a c k e t . \r \r S i n 0011760 c e t h e f i l t e r f u 0012000 n c t i o n i s r u n a t 0012020 i n t e r r u p t l e v e l 0012040 , i t s h o u l d k e e p 0012060 i t s c o m p u t a t i o n 0012100 t o a m i n i m u m . 0012120 F o r e x a m p l e , i f 0012140 t h e r e i s a l o t t 0012160 o b e d o n e w i t h t 0012200 h e p a c k e t , t h e f 0012220 i l t e r f u n c t i o n c 0012240 a n p l a c e i t o n a 0012260 q u e u e a n d n o t i f 0012300 y a n o t h e r p r o c e s 0012320 s o f i t s a r r i v a l 0012340 . \r \r T h e s y s t e m a l 0012360 r e a d y s u p p l i e s p 0012400 a c k e t f i l t e r s f o 0012420 r p a c k e t s o f t y p 0012440 e { l i s p P U P } a n d 0012460 { l i s p N S } ; t h e s 0012500 e f i l t e r s e n q u e u 0012520 e t h e i n c o m i n g p 0012540 a c k e t o n t h e i n p 0012560 u t q u e u e o f t h e 0012600 s o c k e t t o w h i c h 0012620 t h e p a c k e t i s a d 0012640 d r e s s e d , a f t e r c 0012660 h e c k i n g t h a t t h e 0012700 p a c k e t i s w e l l - 0012720 f o r m e d a n d i n d e e 0012740 d a d d r e s s e d t o a 0012760 n e x i s t i n g s o c k e 0013000 t o n t h i s m a c h i n 0013020 e . \r \r I n c o m i n g p a c 0013040 k e t s h a v e t h e i r 0013060 { l i s p E P N E T W O R K } 0013100 f i e l d f i l l e d i n 0013120 w i t h t h e { l i s p 0013140 N D B } o f t h e n e t w 0013160 o r k o n w h i c h t h e 0013200 p a c k e t a r r i v e d . 0013220 \r \r \r { i n d e x X { N a m e 0013240 A D D . P A C K E T . F I L T 0013260 E R } { T y p e F u n c t i 0013300 o n } \r { T e x t { l i s p 0013320 ( \ A D D . P A C K E T . F I L 0013340 T E R { a r g F I L T E R } 0013360 ) } } } \r \r { F n D e f { N 0013400 a m e \ A D D . P A C K E T . 0013420 F I L T E R } { A r g s F I 0013440 L T E R } \r { T e x t \r A d d s 0013460 f u n c t i o n { a r g F 0013500 I L T E R } t o t h e l i 0013520 s t o f p a c k e t f i l 0013540 t e r s i f i t i s n o 0013560 t a l r e a d y t h e r e . 0013600 \r } } \r \r { i n d e x X { 0013620 N a m e D E L . P A C K E T . 0013640 F I L T E R } { T y p e F u 0013660 n c t i o n } \r { T e x t { l 0013700 i s p ( \ D E L . P A C K E T 0013720 . F I L T E R { a r g F I L 0013740 T E R } ) } } } \r \r { F n D e 0013760 f { N a m e \ D E L . P A C 0014000 K E T . F I L T E R } { A r g 0014020 s F I L T E R } \r { T e x t \r 0014040 R e m o v e s { a r g F I L 0014060 T E R } f r o m t h e l i 0014100 s t o f p a c k e t f i l 0014120 t e r s . \r } } \r \r \r { i n d e 0014140 x X { N a m e C H E C K S U 0014160 M } { T y p e F u n c t i o 0014200 n } \r { T e x t { l i s p ( 0014220 \ C H E C K S U M { a r g B 0014240 A S E } { a r g N W O R D S 0014260 } { a r g I N I T S U M } ) 0014300 } } } \r \r { F n D e f { N a 0014320 m e \ C H E C K S U M } { A 0014340 r g s B A S E N W O R D S 0014360 I N I T S U M } \r { T e x t \r C 0014400 o m p u t e s t h e o n e ' 0014420 s c o m p l e m e n t a d d 0014440 a n d c y c l e c h e c k 0014460 s u m f o r t h e { a r g 0014500 N W O R D S } w o r d s s 0014520 t a r t i n g a t a d d r e 0014540 s s { a r g B A S E } . 0014560 I f { a r g I N I T S U M } 0014600 i s s u p p l i e d , i t 0014620 i s t r e a t e d a s t 0014640 h e a c c u m u l a t e d c 0014660 h e c k s u m f o r s o m e 0014700 s e t o f w o r d s p r 0014720 e c e d i n g { a r g B A S 0014740 E } ; n o r m a l l y { a r 0014760 g I N I T S U M } i s o m 0015000 i t t e d ( a n d t h u s 0015020 t r e a t e d a s z e r o ) 0015040 . \r } } \r \r \r { F n D e f { N 0015060 a m e P R I N T P A C K E T } 0015100 { A r g s P A C K E T C A 0015120 L L E R F I L E P R E . N O 0015140 T E D O F I L T E R } \r { T e 0015160 x t \r P r i n t s { a r g P 0015200 A C K E T } b y i n v o k i 0015220 n g a f u n c t i o n a p 0015240 p r o p r i a t e t o { a r 0015260 g P A C K E T } ' s t y p e 0015300 . S e e { f n P R I N T 0015320 P U P } f o r t h e i n t 0015340 e n d e d m e a n i n g o f 0015360 t h e o t h e r a r g u m 0015400 e n t s . I n o r d e r 0015420 f o r { f n P R I N T P A C 0015440 K E T } t o w o r k o n 0015460 a n o n - s t a n d a r d p 0015500 a c k e t , t h e r e m u s 0015520 t b e i n f o r m a t i o n 0015540 o n t h e l i s t { v a 0015560 r \ P A C K E T . P R I N T E 0015600 R S } . \r } } \r \r { i n d e x X 0015620 { N a m e P A C K E T . P R 0015640 I N T E R S } { T y p e V a 0015660 r i a b l e } \r { T e x t { l 0015700 i s p \ P A C K E T . P R I N 0015720 T E R S } } } \r \r { V a r D e 0015740 f { N a m e \ P A C K E T . 0015760 P R I N T E R S } \r { T e x t \r 0016000 A n a s s o c i a t i o n l 0016020 i s t m a p p i n g p a c k 0016040 e t t y p e i n t o t h e 0016060 n a m e o f a f u n c t 0016100 i o n f o r p r i n t i n g 0016120 t h a t t y p e o f p a 0016140 c k e t . \r } } \r \r } { E n d 0016160 S u b S e c S u p p o r t f 0016200 o r O t h e r L e v e l O 0016220 n e P r o t o c o l s } \r \r { 0016240 B e g i n S u b S e c T h e 0016260 S Y S Q U E U E m e c h a n 0016300 i s m } \r { T i t l e T h e 0016320 S Y S Q U E U E m e c h a n i 0016340 s m } \r { T e x t \r T h e { l 0016360 i s p S Y S Q U E U E } f a 0016400 c i l i t y p r o v i d e s 0016420 a l o w - l e v e l q u e u 0016440 e i n g f a c i l i t y . 0016460 T h e f u n c t i o n s d e 0016500 s c r i b e d h e r e i n a 0016520 r e a l l s y s t e m i n 0016540 t e r n a l : t h e y c a n 0016560 c a u s e m u c h c o n f 0016600 u s i o n i f m i s u s e d 0016620 . \r \r A { l i s p S Y S Q U 0016640 E U E } i s a d a t u m 0016660 c o n t a i n i n g a p o i 0016700 n t e r t o t h e f i r s 0016720 t e l e m e n t o f t h e 0016740 q u e u e a n d a p o i 0016760 n t e r t o t h e l a s t 0017000 ; e a c h i t e m i n t 0017020 h e q u e u e p o i n t s 0017040 t o t h e n e x t v i a 0017060 a p o i n t e r f i e l d 0017100 l o c a t e d a t o f f s e 0017120 t 0 i n t h e i t e m 0017140 ( i t s { l i s p Q L I N K 0017160 } f i e l d i n t h e { 0017200 l i s p Q A B L E I T E M } 0017220 r e c o r d ) . A { l i s 0017240 p S Y S Q U E U E } c a n 0017260 b e c r e a t e d b y c a 0017300 l l i n g { l i s p ( N C R 0017320 E A T E ' S Y S Q U E U E ) } 0017340 . \r \r { i n d e x X { N a m e 0017360 E N Q U E U E } { T y p e 0017400 F u n c t i o n } \r { T e x t 0017420 { l i s p ( \ E N Q U E U E 0017440 { a r g Q } { a r g I T E 0017460 M } ) } } } \r \r { F n D e f 0017500 { N a m e \ E N Q U E U E } 0017520 { A r g s Q I T E M } \r { T 0017540 e x t \r E n q u e u e s { a r 0017560 g I T E M } o n { a r g 0017600 Q } , i . e . , l i n k s 0017620 i t t o t h e t a i l o 0017640 f t h e q u e u e , u p d 0017660 a t i n g { a r g Q } ' s 0017700 t a i l p o i n t e r a p p 0017720 r o p r i a t e l y . \r } } \r \r 0017740 { i n d e x X { N a m e D E 0017760 Q U E U E } { T y p e F u n 0020000 c t i o n } \r { T e x t { l i 0020020 s p ( \ D E Q U E U E { a r 0020040 g Q } ) } } } \r \r { F n D e 0020060 f { N a m e \ D E Q U E U E 0020100 } { A r g s Q } \r { T e x t 0020120 \r R e m o v e s t h e f i r 0020140 s t i t e m f r o m { a r 0020160 g Q } a n d r e t u r n s 0020200 i t , o r r e t u r n s 0020220 { l i s p N I L } i f { a 0020240 r g Q } i s e m p t y . \r 0020260 } } \r \r { i n d e x X { N a m 0020300 e U N Q U E U E } { T y p e 0020320 F u n c t i o n } \r { T e x t 0020340 { l i s p ( \ U N Q U E U E 0020360 { a r g Q } { a r g I T 0020400 E M } { a r g N O E R R O R 0020420 F L G } ) } } } \r \r { F n D e 0020440 f { N a m e \ U N Q U E U E 0020460 } { A r g s Q I T E M N 0020500 O E R R O R F L G } \r { T e x t 0020520 \r R e m o v e s t h e { a r 0020540 g I T E M } f r o m { a r 0020560 g Q } , w h e r e v e r i 0020600 t i s l o c a t e d i n 0020620 t h e q u e u e , a n d r 0020640 e t u r n s i t . I f { 0020660 a r g I T E M } i s n o t 0020700 i n { a r g Q } , c a u 0020720 s e s a n e r r o r , u n 0020740 l e s s { a r g N O E R R O 0020760 R F L G } i s t r u e , i 0021000 n w h i c h c a s e i t 0021020 r e t u r n s { l i s p N I 0021040 L } . \r } } \r \r \r { i n d e x X 0021060 { N a m e Q U E U E L E N G 0021100 T H } { T y p e F u n c t i 0021120 o n } \r { T e x t { l i s p 0021140 ( \ Q U E U E L E N G T H { a 0021160 r g Q } ) } } } \r \r { F n D 0021200 e f { N a m e \ Q U E U E L 0021220 E N G T H } { A r g s Q } \r 0021240 { T e x t \r R e t u r n s t h 0021260 e n u m b e r o f e l e m 0021300 e n t s i n { a r g Q } . 0021320 \r } } \r \r { i n d e x X { N a 0021340 m e O N Q U E U E } { T y p 0021360 e F u n c t i o n } \r { T e x 0021400 t { l i s p ( \ O N Q U E U 0021420 E { a r g I T E M } { a r 0021440 g Q } ) } } } \r \r { F n D e 0021460 f { N a m e \ O N Q U E U E 0021500 } { A r g s I T E M Q } \r 0021520 { T e x t \r T r u e i f { a 0021540 r g I T E M } i s a n e 0021560 l e m e n t o f { a r g Q 0021600 } . \r } } \r \r \r \r } { E n d S 0021620 u b S e c T h e S Y S Q U E 0021640 U E m e c h a n i s m } \r \r \r 0021660 \0 \0 \0 \0 \0 004 \0 002 \0 ? \0 1 ( D E F 0021700 A U L T F O N T 1 ( G A C H 0021720 A 1 0 ) ( G A C H A 8 ) 0021740 ( T E R M I N A L 8 ) ) \0 \n \0 0021760 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D E F A 0022000 U L T F O N T 1 ( G A C H A 0022020 1 0 ) ( G A C H A 8 ) ( 0022040 T E R M I N A L 8 ) ) \0 \n \0 \0 0022060 \0 \0 \0 \0 \0 \0 \0 \0 \t 366 \0 \0 \0 \0 002 \0 0022100 \0 \0 001 \0 \0 \0 \0 001 \0 \0 \0 016 \0 \0 \0 \0 0022120 002 \0 \0 \0 001 \0 \0 \0 \0 001 \0 \0 031 252 \0 \0 0022140 \0 \0 002 \0 \0 # 260 \0 005 z 272 0022153