Changeset b74959bd in mainline for uspace/srv/fb/sysio.c
- Timestamp:
- 2007-11-20T21:33:32Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8498915
- Parents:
- 3209923
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fb/sysio.c
r3209923 rb74959bd 118 118 119 119 if (client_connected) { 120 ipc_answer_ fast(iid, ELIMIT, 0,0);120 ipc_answer_0(iid, ELIMIT); 121 121 return; 122 122 } 123 123 124 124 client_connected = 1; 125 ipc_answer_ fast(iid, 0, 0, 0); /* Accept connection */125 ipc_answer_0(iid, EOK); /* Accept connection */ 126 126 while (1) { 127 127 callid = async_get_call(&call); 128 128 switch (IPC_GET_METHOD(call)) { 129 case IPC_M_PHONE_HUNGUP: 130 client_connected = 0; 131 ipc_answer_fast(callid, 0, 0, 0); 132 return; /* Exit thread */ 133 case FB_PUTCHAR: 134 c = IPC_GET_ARG1(call); 135 newrow = IPC_GET_ARG2(call); 136 newcol = IPC_GET_ARG3(call); 137 if ((lastcol != newcol) || (lastrow != newrow)) 138 curs_goto(newrow, newcol); 139 lastcol = newcol + 1; 140 lastrow = newrow; 141 sysput(c); 142 retval = 0; 129 case IPC_M_PHONE_HUNGUP: 130 client_connected = 0; 131 ipc_answer_0(callid, EOK); 132 return; /* Exit thread */ 133 case FB_PUTCHAR: 134 c = IPC_GET_ARG1(call); 135 newrow = IPC_GET_ARG2(call); 136 newcol = IPC_GET_ARG3(call); 137 if ((lastcol != newcol) || (lastrow != newrow)) 138 curs_goto(newrow, newcol); 139 lastcol = newcol + 1; 140 lastrow = newrow; 141 sysput(c); 142 retval = 0; 143 break; 144 case FB_CURSOR_GOTO: 145 newrow = IPC_GET_ARG1(call); 146 newcol = IPC_GET_ARG2(call); 147 curs_goto(newrow, newcol); 148 lastrow = newrow; 149 lastcol = newcol; 150 retval = 0; 151 break; 152 case FB_GET_CSIZE: 153 ipc_answer_2(callid, EOK, HEIGHT, WIDTH); 154 continue; 155 case FB_CLEAR: 156 clrscr(); 157 retval = 0; 158 break; 159 case FB_SET_STYLE: 160 fgcolor = IPC_GET_ARG1(call); 161 bgcolor = IPC_GET_ARG2(call); 162 if (fgcolor < bgcolor) 163 set_style(0); 164 else 165 set_style(7); 166 retval = 0; 167 break; 168 case FB_SCROLL: 169 i = IPC_GET_ARG1(call); 170 if ((i > HEIGHT) || (i < -HEIGHT)) { 171 retval = EINVAL; 143 172 break; 144 case FB_CURSOR_GOTO: 145 newrow = IPC_GET_ARG1(call); 146 newcol = IPC_GET_ARG2(call); 147 curs_goto(newrow, newcol); 148 lastrow = newrow; 149 lastcol = newcol; 150 retval = 0; 151 break; 152 case FB_GET_CSIZE: 153 ipc_answer_fast(callid, 0, HEIGHT, WIDTH); 154 continue; 155 case FB_CLEAR: 156 clrscr(); 157 retval = 0; 158 break; 159 case FB_SET_STYLE: 160 fgcolor = IPC_GET_ARG1(call); 161 bgcolor = IPC_GET_ARG2(call); 162 if (fgcolor < bgcolor) 163 set_style(0); 164 else 165 set_style(7); 166 retval = 0; 167 break; 168 case FB_SCROLL: 169 i = IPC_GET_ARG1(call); 170 if ((i > HEIGHT) || (i < -HEIGHT)) { 171 retval = EINVAL; 172 break; 173 } 174 scroll(i); 175 curs_goto(lastrow, lastcol); 176 retval = 0; 177 break; 178 default: 179 retval = ENOENT; 173 } 174 scroll(i); 175 curs_goto(lastrow, lastcol); 176 retval = 0; 177 break; 178 default: 179 retval = ENOENT; 180 180 } 181 181 182 ipc_answer_ fast(callid, retval, 0, 0);182 ipc_answer_0(callid, retval); 183 183 } 184 184 }
Note:
See TracChangeset
for help on using the changeset viewer.