Home
last modified time | relevance | path

Searched full:rxd (Results 1 – 25 of 190) sorted by relevance

12345678

/linux/drivers/net/wireless/ath/ath10k/
H A Dhtt.c140 static int ath10k_qca99x0_rx_desc_get_l3_pad_bytes(struct htt_rx_desc *rxd) in ath10k_qca99x0_rx_desc_get_l3_pad_bytes() argument
142 struct htt_rx_desc_v1 *rx_desc = container_of(rxd, in ath10k_qca99x0_rx_desc_get_l3_pad_bytes()
150 static bool ath10k_qca99x0_rx_desc_msdu_limit_error(struct htt_rx_desc *rxd) in ath10k_qca99x0_rx_desc_msdu_limit_error() argument
152 struct htt_rx_desc_v1 *rx_desc = container_of(rxd, in ath10k_qca99x0_rx_desc_msdu_limit_error()
191 ath10k_rx_desc_wcn3990_get_attention(struct htt_rx_desc *rxd) in ath10k_rx_desc_wcn3990_get_attention() argument
193 struct htt_rx_desc_v2 *rx_desc = container_of(rxd, struct htt_rx_desc_v2, base); in ath10k_rx_desc_wcn3990_get_attention()
199 ath10k_rx_desc_wcn3990_get_frag_info(struct htt_rx_desc *rxd) in ath10k_rx_desc_wcn3990_get_frag_info() argument
201 struct htt_rx_desc_v2 *rx_desc = container_of(rxd, struct htt_rx_desc_v2, base); in ath10k_rx_desc_wcn3990_get_frag_info()
207 ath10k_rx_desc_wcn3990_get_mpdu_start(struct htt_rx_desc *rxd) in ath10k_rx_desc_wcn3990_get_mpdu_start() argument
209 struct htt_rx_desc_v2 *rx_desc = container_of(rxd, struct htt_rx_desc_v2, base); in ath10k_rx_desc_wcn3990_get_mpdu_start()
[all …]
H A Dhtt.h2160 bool (*rx_desc_get_msdu_limit_error)(struct htt_rx_desc *rxd);
2161 int (*rx_desc_get_l3_pad_bytes)(struct htt_rx_desc *rxd);
2169 struct rx_attention *(*rx_desc_get_attention)(struct htt_rx_desc *rxd);
2170 struct rx_frag_info_common *(*rx_desc_get_frag_info)(struct htt_rx_desc *rxd);
2171 struct rx_mpdu_start *(*rx_desc_get_mpdu_start)(struct htt_rx_desc *rxd);
2172 struct rx_mpdu_end *(*rx_desc_get_mpdu_end)(struct htt_rx_desc *rxd);
2173 struct rx_msdu_start_common *(*rx_desc_get_msdu_start)(struct htt_rx_desc *rxd);
2174 struct rx_msdu_end_common *(*rx_desc_get_msdu_end)(struct htt_rx_desc *rxd);
2175 struct rx_ppdu_start *(*rx_desc_get_ppdu_start)(struct htt_rx_desc *rxd);
2176 struct rx_ppdu_end_common *(*rx_desc_get_ppdu_end)(struct htt_rx_desc *rxd);
[all …]
H A Dhtt_rx.c513 struct htt_rx_desc *rxd; in ath10k_htt_rx_handle_amsdu_mon_32() local
516 rxd = HTT_RX_BUF_TO_RX_DESC(hw, msdu->data); in ath10k_htt_rx_handle_amsdu_mon_32()
517 trace_ath10k_htt_rx_desc(ar, rxd, hw->rx_desc_ops->rx_desc_size); in ath10k_htt_rx_handle_amsdu_mon_32()
590 struct htt_rx_desc *rxd; in ath10k_htt_rx_handle_amsdu_mon_64() local
593 rxd = HTT_RX_BUF_TO_RX_DESC(hw, msdu->data); in ath10k_htt_rx_handle_amsdu_mon_64()
594 trace_ath10k_htt_rx_desc(ar, rxd, hw->rx_desc_ops->rx_desc_size); in ath10k_htt_rx_handle_amsdu_mon_64()
662 struct htt_rx_desc *rxd; in ath10k_htt_rx_pop_paddr32_list() local
698 rxd = HTT_RX_BUF_TO_RX_DESC(hw, msdu->data); in ath10k_htt_rx_pop_paddr32_list()
699 rxd_attention = ath10k_htt_rx_desc_get_attention(hw, rxd); in ath10k_htt_rx_pop_paddr32_list()
701 trace_ath10k_htt_rx_desc(ar, rxd, hw->rx_desc_ops->rx_desc_size); in ath10k_htt_rx_pop_paddr32_list()
[all …]
/linux/drivers/net/wireless/mediatek/mt76/mt7921/
H A Dmac.c175 __le32 *rxv = NULL, *rxd = (__le32 *)skb->data; in mt7921_mac_fill_rx() local
180 u32 rxd0 = le32_to_cpu(rxd[0]); in mt7921_mac_fill_rx()
181 u32 rxd1 = le32_to_cpu(rxd[1]); in mt7921_mac_fill_rx()
182 u32 rxd2 = le32_to_cpu(rxd[2]); in mt7921_mac_fill_rx()
183 u32 rxd3 = le32_to_cpu(rxd[3]); in mt7921_mac_fill_rx()
184 u32 rxd4 = le32_to_cpu(rxd[4]); in mt7921_mac_fill_rx()
261 rxd += 6; in mt7921_mac_fill_rx()
263 u32 v0 = le32_to_cpu(rxd[0]); in mt7921_mac_fill_rx()
264 u32 v2 = le32_to_cpu(rxd[2]); in mt7921_mac_fill_rx()
270 rxd += 4; in mt7921_mac_fill_rx()
[all …]
/linux/drivers/net/fddi/skfp/h/
H A Dhwmtm.h143 int detec_count ; /* counter for out of RxD condition */
219 * para rxd pointer to the TxD
265 * int HWM_GET_RX_FRAG_LEN(rxd)
269 * the fragment length of the specified RxD
271 * para rxd pointer to the RxD
277 #define HWM_GET_RX_FRAG_LEN(rxd) ((int)AIX_REVERSE((rxd)->rxd_rbctrl)& \ argument
282 * u_long HWM_GET_RX_PHYS(rxd)
286 * the physical address of the specified RxD.
288 * para rxd pointer to the RxD
290 * return the RxD's physical pointer to the data fragment
[all …]
H A Dfplustm.h69 __le32 rxd_nrdadr ; /* physical pointer to the next RxD */
74 /* virt pointer to the next RxD */
84 struct s_smt_fp_rxd r ; /* pointer to the RxD */
101 * RxD Ring Control struct
104 struct s_smt_fp_rxd volatile *rx_curr_put ; /* next RxD to queue into */
106 struct s_smt_fp_rxd volatile *rx_curr_get ; /* next RxD to fill */
107 u_short rx_free ; /* count of free RxD's */
108 u_short rx_used ; /* count of used RxD's */
/linux/drivers/net/wireless/mediatek/mt76/mt7925/
H A Dmac.c173 __le32 *rxd = (__le32 *)skb->data; in mt7925_reverse_frag0_hdr_trans() local
179 if (le32_get_bits(rxd[3], MT_RXD3_NORMAL_ADDR_TYPE) != in mt7925_reverse_frag0_hdr_trans()
183 if (!(le32_to_cpu(rxd[1]) & MT_RXD1_NORMAL_GROUP_4)) in mt7925_reverse_frag0_hdr_trans()
192 /* store the info from RXD and ethhdr to avoid being overridden */ in mt7925_reverse_frag0_hdr_trans()
193 frame_control = le32_get_bits(rxd[8], MT_RXD8_FRAME_CONTROL); in mt7925_reverse_frag0_hdr_trans()
195 hdr.seq_ctrl = cpu_to_le16(le32_get_bits(rxd[10], MT_RXD10_SEQ_CTRL)); in mt7925_reverse_frag0_hdr_trans()
229 memcpy(skb_push(skb, IEEE80211_HT_CTL_LEN), &rxd[11], in mt7925_reverse_frag0_hdr_trans()
234 qos_ctrl = cpu_to_le16(le32_get_bits(rxd[10], MT_RXD10_QOS_CTL)); in mt7925_reverse_frag0_hdr_trans()
360 __le32 *rxv = NULL, *rxd = (__le32 *)skb->data; in mt7925_mac_fill_rx() local
365 u32 rxd1 = le32_to_cpu(rxd[1]); in mt7925_mac_fill_rx()
[all …]
/linux/Documentation/devicetree/bindings/pinctrl/
H A Dmarvell,armada-39x-pinctrl.txt18 mpp0 0 gpio, ua0(rxd)
23 mpp5 5 gpio, ua1(rxd), ua0(cts), smi(mdio)
35 mpp17 17 gpio, ua1(rxd), spi0(sck), sata1(prsnt) [1], sata0(prsnt) [1], smi(mdio)
37 mpp19 19 gpio, sata1(prsnt) [1], ua0(cts), ua1(rxd), i2c2(sda)
43 mpp24 24 gpio, spi0(miso), ua0(cts), ua1(rxd), sd0(d4), dev(ready)
60 mpp41 41 gpio, ua1(rxd), ua0(cts), spi1(cs3), dev(burst/last), nand(rb0), ge(rxctl)
65 mpp45 45 gpio, ref(clk), pcie0(rstout), ua1(rxd)
71 audio(lrclk) [2], sd0(d5), ua2(rxd)
72 mpp50 50 gpio, pcie0(rstout), tdm(drx) [2], audio(extclk) [2], sd0(cmd), ua2(rxd)
77 mpp55 55 gpio, ua1(cts), spi1(cs1), sd0(d0), ua1(rxd), ua3(rxd)
[all …]
H A Dmarvell,kirkwood-pinctrl.txt28 mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk)
37 mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
41 mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col)
43 mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs)
66 mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk)
75 mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
79 mpp14 14 gpio, sdio(d0), uart1(rxd), mii(col)
81 mpp16 16 gpio, sdio(d2), uart0(cts), uart1(rxd), mii(crs)
110 mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk), sata1(act)
119 mpp11 11 gpio, spi(miso), uart0(rxd), ptp(clk), ptp-1(evreq),
[all …]
H A Dmarvell,armada-370-pinctrl.txt16 mpp0 0 gpio, uart0(rxd)
19 mpp3 3 gpio, i2c0(sda), uart0(rxd)
27 mpp11 11 gpio, ge0(rxd0), uart1(rxd), sd0(cmd), spi0(cs1),
37 mpp16 16 gpio, ge0(rxclk), uart1(rxd), tdm(int), audio(extclk)
46 mpp25 25 gpio, ge0(rxerr), ge1(rxd0), uart1(rxd)
62 mpp41 41 gpio, dev(ad2), uart1(rxd)
84 mpp57 57 gpio, dev(cs3), uart1(rxd), tdm(fsync), sata0(prsnt),
89 mpp60 60 gpio, dev(ale1), uart1(rxd), sata0(prsnt), pcie(rstout),
H A Dmarvell,armada-38x-pinctrl.txt18 mpp0 0 gpio, ua0(rxd)
23 mpp5 5 gpio, ge(mdio), ua1(rxd), ua0(cts)
35 mpp17 17 gpio, ge0(rxclk), ptp(clk), ua1(rxd), spi0(sck), sata1(prsnt), sata0(prsnt)
42 mpp24 24 gpio, spi0(miso), ua0(cts), ua1(rxd), sd0(d4), dev(ready)
59 mpp41 41 gpio, ua1(rxd), ge1(rxctl), ua0(cts), spi1(cs3), dev(burst/last), nand(rb0)
63 mpp45 45 gpio, ref(clk_out0), pcie0(rstout), ua1(rxd)
73 mpp55 55 gpio, ua1(cts), ge(mdio), pcie1(clkreq) [1], spi1(cs1), sd0(d0), ua1(rxd)
76 …8 58 gpio, pcie1(clkreq) [1], i2c1(sck), pcie2(clkreq), spi1(miso), sd0(d1), ua1(rxd)
H A Dmarvell,dove-pinctrl.txt22 mpp3 3 gpio, pmu, uart2(rxd), sdio0(ledctrl), sata(act),
27 mpp7 7 gpio, pmu, uart3(rxd), sdio1(ledctrl), spi1(sck), pmu*
37 mpp14 14 gpio, pmu, uart2(txd), sdio1(buspwr), ssp(rxd), pmu*
38 mpp15 15 gpio, pmu, uart2(rxd), sdio1(ledctrl), ssp(sfrm), pmu*
43 mpp19 19 gpio, uart3(rxd), sdio0(ledctrl), twsi(sck)
/linux/drivers/pinctrl/mvebu/
H A Dpinctrl-ac5.c46 MPP_FUNCTION(3, "uart3", "rxd"),
47 MPP_FUNCTION(4, "uart2", "rxd")),
95 MPP_FUNCTION(3, "uart1", "rxd")),
99 MPP_FUNCTION(2, "uart2", "rxd"),
114 MPP_FUNCTION(4, "uart3", "rxd")),
129 MPP_FUNCTION(2, "uart2", "rxd"),
130 MPP_FUNCTION(3, "uartsd", "rxd")),
140 MPP_FUNCTION(3, "uart3", "rxd")),
150 MPP_FUNCTION(3, "uart3", "rxd")),
166 MPP_FUNCTION(1, "uart0", "rxd"),
[all …]
H A Dpinctrl-armada-cp110.c49 MPP_FUNCTION(8, "uart0", "rxd"),
69 MPP_FUNCTION(5, "mss_uart", "rxd"),
72 MPP_FUNCTION(8, "uart1", "rxd"),
93 MPP_FUNCTION(5, "mss_uart", "rxd"),
96 MPP_FUNCTION(8, "uart3", "rxd"),
117 MPP_FUNCTION(8, "uart0", "rxd"),
137 MPP_FUNCTION(8, "uart2", "rxd"),
281 MPP_FUNCTION(10, "uart0", "rxd"),
362 MPP_FUNCTION(1, "uart2", "rxd"),
414 MPP_FUNCTION(7, "uart1", "rxd"),
[all …]
H A Dpinctrl-armada-39x.c31 MPP_VAR_FUNCTION(1, "ua0", "rxd", V_88F6920_PLUS)),
48 MPP_VAR_FUNCTION(2, "ua1", "rxd", V_88F6920_PLUS),
103 MPP_VAR_FUNCTION(3, "ua1", "rxd", V_88F6920_PLUS),
117 MPP_VAR_FUNCTION(6, "ua1", "rxd", V_88F6920_PLUS),
145 MPP_VAR_FUNCTION(3, "ua1", "rxd", V_88F6920_PLUS),
230 MPP_VAR_FUNCTION(1, "ua1", "rxd", V_88F6920_PLUS),
260 MPP_VAR_FUNCTION(6, "ua1", "rxd", V_88F6920_PLUS)),
290 MPP_VAR_FUNCTION(7, "ua2", "rxd", V_88F6920_PLUS)),
297 MPP_VAR_FUNCTION(7, "ua2", "rxd", V_88F6920_PLUS)),
331 MPP_VAR_FUNCTION(6, "ua1", "rxd", V_88F6920_PLUS),
[all …]
/linux/drivers/net/ethernet/intel/fm10k/
H A Dfm10k_debugfs.c87 union fm10k_rx_desc *rxd = FM10K_RX_DESC(ring, i); in fm10k_dbg_rx_desc_seq_show() local
91 i, rxd->d.data, rxd->d.rss, rxd->d.staterr, in fm10k_dbg_rx_desc_seq_show()
92 rxd->w.length, rxd->w.vlan, rxd->w.dglort, in fm10k_dbg_rx_desc_seq_show()
93 rxd->w.sglort, rxd->q.timestamp); in fm10k_dbg_rx_desc_seq_show()
/linux/drivers/spi/
H A Dspi-altera-core.c117 unsigned int rxd; in altera_spi_rx_word() local
119 altr_spi_readl(hw, ALTERA_SPI_RXDATA, &rxd); in altera_spi_rx_word()
123 hw->rx[hw->count] = rxd; in altera_spi_rx_word()
126 hw->rx[hw->count * 2] = rxd; in altera_spi_rx_word()
127 hw->rx[hw->count * 2 + 1] = rxd >> 8; in altera_spi_rx_word()
130 hw->rx[hw->count * 4] = rxd; in altera_spi_rx_word()
131 hw->rx[hw->count * 4 + 1] = rxd >> 8; in altera_spi_rx_word()
132 hw->rx[hw->count * 4 + 2] = rxd >> 16; in altera_spi_rx_word()
133 hw->rx[hw->count * 4 + 3] = rxd >> 24; in altera_spi_rx_word()
/linux/drivers/net/fddi/skfp/
H A Dhwmtm.c96 volatile struct s_smt_fp_rxd *rxd,
99 volatile struct s_smt_fp_rxd *rxd,
102 volatile struct s_smt_fp_rxd *rxd, int frag_count);
214 * memory for MBufs, RxD and TxD descriptors etc.
395 DB_GEN(3, "Init RxD ring, %d RxDs", SMT_R1_RXD_COUNT); in init_rxd_ring()
624 * determined. This is the next RxD after rx_curr_get with an OWN
771 * out of RxD detection in fddi_isr()
775 * check out of RxD condition in fddi_isr()
1040 struct s_smt_fp_rxd volatile *r ; /* rxd pointer */ in process_receive()
1041 struct s_smt_fp_rxd volatile *rxd ; /* first rxd of rx frame */ in process_receive() local
[all …]
H A Dskfddi.c126 void mac_drv_rx_complete(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
128 void mac_drv_requeue_rxd(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
131 void mac_drv_clear_rxd(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd,
1336 * It allocates the memory for the RxD and TxD descriptors.
1440 * descr - A pointer to a TxD or RxD, respectively.
1549 * be received. It also fills the RxD ring with new receive buffers if
1554 * rxd - A pointer to the first RxD which is used by the receive frame.
1563 void mac_drv_rx_complete(struct s_smc *smc, volatile struct s_smt_fp_rxd *rxd, in mac_drv_rx_complete() argument
1576 goto RequeueRxd; // Re-use the given RXD(s). in mac_drv_rx_complete()
1579 skb = rxd->rxd_os.skb; in mac_drv_rx_complete()
[all …]
/linux/drivers/net/wireless/mediatek/mt76/mt7615/
H A Dmac.c254 __le32 *rxd = (__le32 *)skb->data; in mt7615_reverse_frag0_hdr_trans() local
260 if (le32_get_bits(rxd[1], MT_RXD1_NORMAL_ADDR_TYPE) != in mt7615_reverse_frag0_hdr_trans()
264 if (!(le32_to_cpu(rxd[0]) & MT_RXD0_NORMAL_GROUP_4)) in mt7615_reverse_frag0_hdr_trans()
273 /* store the info from RXD and ethhdr to avoid being overridden */ in mt7615_reverse_frag0_hdr_trans()
274 frame_control = le32_get_bits(rxd[4], MT_RXD4_FRAME_CONTROL); in mt7615_reverse_frag0_hdr_trans()
276 hdr.seq_ctrl = cpu_to_le16(le32_get_bits(rxd[6], MT_RXD6_SEQ_CTRL)); in mt7615_reverse_frag0_hdr_trans()
310 memcpy(skb_push(skb, IEEE80211_HT_CTL_LEN), &rxd[7], in mt7615_reverse_frag0_hdr_trans()
316 qos_ctrl = cpu_to_le16(le32_get_bits(rxd[6], MT_RXD6_QOS_CTL)); in mt7615_reverse_frag0_hdr_trans()
338 __le32 *rxd = (__le32 *)skb->data; in mt7615_mac_fill_rx() local
339 u32 rxd0 = le32_to_cpu(rxd[0]); in mt7615_mac_fill_rx()
[all …]
/linux/drivers/net/wireless/mediatek/mt76/mt7996/
H A Dmac.c235 __le32 *rxd = (__le32 *)skb->data; in mt7996_reverse_frag0_hdr_trans() local
241 if (le32_get_bits(rxd[3], MT_RXD3_NORMAL_ADDR_TYPE) != in mt7996_reverse_frag0_hdr_trans()
245 if (!(le32_to_cpu(rxd[1]) & MT_RXD1_NORMAL_GROUP_4)) in mt7996_reverse_frag0_hdr_trans()
257 /* store the info from RXD and ethhdr to avoid being overridden */ in mt7996_reverse_frag0_hdr_trans()
258 frame_control = le32_get_bits(rxd[8], MT_RXD8_FRAME_CONTROL); in mt7996_reverse_frag0_hdr_trans()
260 hdr.seq_ctrl = cpu_to_le16(le32_get_bits(rxd[10], MT_RXD10_SEQ_CTRL)); in mt7996_reverse_frag0_hdr_trans()
294 memcpy(skb_push(skb, IEEE80211_HT_CTL_LEN), &rxd[11], in mt7996_reverse_frag0_hdr_trans()
299 qos_ctrl = cpu_to_le16(le32_get_bits(rxd[10], MT_RXD10_QOS_CTL)); in mt7996_reverse_frag0_hdr_trans()
457 __le32 *rxd = (__le32 *)skb->data; in mt7996_mac_fill_rx() local
459 u32 rxd0 = le32_to_cpu(rxd[0]); in mt7996_mac_fill_rx()
[all …]
/linux/drivers/media/pci/mantis/
H A Dmantis_i2c.c28 u32 rxd, i, stat, trials; in mantis_i2c_read() local
34 rxd = (msg->addr << 25) | (1 << 24) in mantis_i2c_read()
40 rxd &= ~MANTIS_I2C_STOP; in mantis_i2c_read()
43 mmwrite(rxd, MANTIS_I2CDATA_CTL); in mantis_i2c_read()
63 rxd = mmread(MANTIS_I2CDATA_CTL); in mantis_i2c_read()
64 msg->buf[i] = (u8)((rxd >> 8) & 0xFF); in mantis_i2c_read()
160 … dprintk(MANTIS_DEBUG, 0, " Byte <%d> RXD=0x%02x [%02x]\n", 0x0, data, msgs[i + 1].buf[0]); in mantis_i2c_xfer()
/linux/drivers/net/wireless/mediatek/mt76/mt7603/
H A Ddma.c99 __le32 *rxd = (__le32 *)skb->data; in mt7603_queue_rx_skb() local
103 type = le32_get_bits(rxd[0], MT_RXD0_PKT_TYPE); in mt7603_queue_rx_skb()
115 for (rxd++; rxd + 5 <= end; rxd += 5) in mt7603_queue_rx_skb()
116 mt7603_mac_add_txs(dev, rxd); in mt7603_queue_rx_skb()
/linux/arch/arm64/boot/dts/renesas/
H A Drzg2lc-smarc-pinfunction.dtsi19 <RZG2L_PORT_PINMUX(40, 1, 3)>; /* RxD */
34 <RZG2L_PORT_PINMUX(44, 1, 3)>; /* RxD */
64 <RZG2L_PORT_PINMUX(38, 1, 1)>; /* RxD */
69 <RZG2L_PORT_PINMUX(40, 1, 1)>, /* RxD */
129 <RZG2L_PORT_PINMUX(45, 3, 1)>; /* RXD */
/linux/drivers/net/wireless/mediatek/mt76/mt7915/
H A Dmac.c283 __le32 *rxd = (__le32 *)skb->data; in mt7915_mac_fill_rx() local
285 u32 rxd0 = le32_to_cpu(rxd[0]); in mt7915_mac_fill_rx()
286 u32 rxd1 = le32_to_cpu(rxd[1]); in mt7915_mac_fill_rx()
287 u32 rxd2 = le32_to_cpu(rxd[2]); in mt7915_mac_fill_rx()
288 u32 rxd3 = le32_to_cpu(rxd[3]); in mt7915_mac_fill_rx()
289 u32 rxd4 = le32_to_cpu(rxd[4]); in mt7915_mac_fill_rx()
370 rxd += 6; in mt7915_mac_fill_rx()
372 u32 v0 = le32_to_cpu(rxd[0]); in mt7915_mac_fill_rx()
373 u32 v2 = le32_to_cpu(rxd[2]); in mt7915_mac_fill_rx()
379 rxd += 4; in mt7915_mac_fill_rx()
[all …]

12345678