Rev 4411 | Rev 4420 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4411 | Rev 4416 | ||
---|---|---|---|
Line 113... | Line 113... | ||
113 | return 0; |
113 | return 0; |
114 | } |
114 | } |
115 | 115 | ||
116 | static int gxe_bd_init(void) |
116 | static int gxe_bd_init(void) |
117 | { |
117 | { |
118 | int driver_phone; |
- | |
119 | dev_handle_t dev_handle; |
118 | dev_handle_t dev_handle; |
120 | void *vaddr; |
119 | void *vaddr; |
121 | int rc; |
120 | int rc; |
122 | 121 | ||
123 | rc = devmap_driver_register(NAME, gxe_bd_connection); |
122 | rc = devmap_driver_register(NAME, gxe_bd_connection); |
124 | if (rc < 0) { |
123 | if (rc < 0) { |
125 | printf(NAME ": Unable to register driver.\n"); |
124 | printf(NAME ": Unable to register driver.\n"); |
126 | return rc; |
125 | return rc; |
127 | } |
126 | } |
128 | driver_phone = rc; |
- | |
129 | 127 | ||
130 | rc = pio_enable((void *) dev_physical, sizeof(gxe_bd_t), &vaddr); |
128 | rc = pio_enable((void *) dev_physical, sizeof(gxe_bd_t), &vaddr); |
131 | if (rc != EOK) { |
129 | if (rc != EOK) { |
132 | printf(NAME ": Could not initialize device I/O space.\n"); |
130 | printf(NAME ": Could not initialize device I/O space.\n"); |
133 | return rc; |
131 | return rc; |
Line 141... | Line 139... | ||
141 | return rc; |
139 | return rc; |
142 | } |
140 | } |
143 | 141 | ||
144 | devbuf = vaddr; |
142 | devbuf = vaddr; |
145 | 143 | ||
146 | rc = devmap_device_register(driver_phone, "disk0", &dev_handle); |
144 | rc = devmap_device_register("disk0", &dev_handle); |
147 | if (rc != EOK) { |
145 | if (rc != EOK) { |
148 | ipc_hangup(driver_phone); |
146 | devmap_hangup_phone(DEVMAP_DRIVER); |
149 | printf(NAME ": Unable to register device.\n"); |
147 | printf(NAME ": Unable to register device.\n"); |
150 | return rc; |
148 | return rc; |
151 | } |
149 | } |
152 | 150 | ||
153 | return EOK; |
151 | return EOK; |