Changeset 0f74869 in mainline for kernel/genarch/include


Ignore:
Timestamp:
2009-02-22T15:20:43Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f9f9a13
Parents:
e7abb0e
Message:

Unbreak sparc64.
Due to the lack of userspace bus drivers for the z8530 and ns16550,
we are currently handling exactly one interrupt from these devices
in userspace.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/include/kbd/z8530.h

    re7abb0e r0f74869  
    3838#define KERN_Z8530_H_
    3939
    40 #include <console/chardev.h>
    41 #include <ipc/irq.h>
    4240#include <ddi/irq.h>
     41#include <arch/types.h>
    4342
    44 extern bool z8530_belongs_to_kernel;
     43#define WR0     0
     44#define WR1     1
     45#define WR2     2
     46#define WR3     3
     47#define WR4     4
     48#define WR5     5
     49#define WR6     6
     50#define WR7     7
     51#define WR8     8
     52#define WR9     9
     53#define WR10    10
     54#define WR11    11
     55#define WR12    12
     56#define WR13    13
     57#define WR14    14
     58#define WR15    15
    4559
    46 extern void z8530_init(devno_t, uintptr_t, inr_t, cir_t, void *);
    47 extern void z8530_poll(void);
    48 extern void z8530_grab(void);
    49 extern void z8530_release(void);
    50 extern void z8530_interrupt(void);
    51 extern char z8530_key_read(chardev_t *);
     60#define RR0     0
     61#define RR1     1
     62#define RR2     2
     63#define RR3     3
     64#define RR8     8
     65#define RR10    10
     66#define RR12    12
     67#define RR13    13
     68#define RR14    14
     69#define RR15    15
     70
     71/** Reset pending TX interrupt. */
     72#define WR0_TX_IP_RST   (0x5 << 3)
     73#define WR0_ERR_RST     (0x6 << 3)
     74
     75/** Receive Interrupts Disabled. */
     76#define WR1_RID         (0x0 << 3)
     77/** Receive Interrupt on First Character or Special Condition. */
     78#define WR1_RIFCSC      (0x1 << 3)
     79/** Interrupt on All Receive Characters or Special Conditions. */
     80#define WR1_IARCSC      (0x2 << 3)
     81/** Receive Interrupt on Special Condition. */
     82#define WR1_RISC        (0x3 << 3)
     83/** Parity Is Special Condition. */
     84#define WR1_PISC        (0x1 << 2)
     85
     86/** Rx Enable. */
     87#define WR3_RX_ENABLE   (0x1 << 0)
     88/** 8-bits per character. */
     89#define WR3_RX8BITSCH   (0x3 << 6)
     90
     91/** Master Interrupt Enable. */
     92#define WR9_MIE         (0x1 << 3)
     93
     94/** Receive Character Available. */
     95#define RR0_RCA         (0x1 << 0)
     96
     97/** z8530's registers. */
     98struct z8530 {
     99        union {
     100                ioport8_t ctl_b;
     101                ioport8_t status_b;
     102        } __attribute__ ((packed));
     103        uint8_t pad1;
     104        ioport8_t data_b;
     105        uint8_t pad2;
     106        union {
     107                ioport8_t ctl_a;
     108                ioport8_t status_a;
     109        } __attribute__ ((packed));
     110        uint8_t pad3;
     111        ioport8_t data_a;
     112} __attribute__ ((packed));
     113typedef struct z8530 z8530_t;
     114
     115/** Structure representing the z8530 device. */
     116typedef struct {
     117        devno_t devno;
     118        irq_t irq;
     119        z8530_t *z8530;
     120} z8530_instance_t;
     121
     122extern bool z8530_init(z8530_t *, devno_t, inr_t, cir_t, void *);
    52123extern irq_ownership_t z8530_claim(irq_t *);
    53124extern void z8530_irq_handler(irq_t *);
Note: See TracChangeset for help on using the changeset viewer.