Changeset 6560960 in mainline


Ignore:
Timestamp:
2012-08-20T22:46:13Z (12 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
077dad2
Parents:
971f50e7 (diff), dd13349 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge mainline changes

Files:
16 edited

Legend:

Unmodified
Added
Removed
  • Makefile

    r971f50e7 r6560960  
    4545CONFIG_HEADER = config.h
    4646
    47 .PHONY: all precheck cscope autotool config_auto config_default config distclean clean check releasefile release
     47.PHONY: all precheck cscope cscope_parts autotool config_auto config_default config distclean clean check releasefile release
    4848
    4949all: $(COMMON_MAKEFILE) $(COMMON_HEADER) $(CONFIG_MAKEFILE) $(CONFIG_HEADER)
     
    5858cscope:
    5959        find abi kernel boot uspace -regex '^.*\.[chsS]$$' | xargs $(CSCOPE) -b -k -u -f$(CSCOPE).out
     60
     61cscope_parts:
     62        find abi -regex '^.*\.[chsS]$$' | xargs $(CSCOPE) -b -k -u -f$(CSCOPE)_abi.out
     63        find kernel -regex '^.*\.[chsS]$$' | xargs $(CSCOPE) -b -k -u -f$(CSCOPE)_kernel.out
     64        find boot -regex '^.*\.[chsS]$$' | xargs $(CSCOPE) -b -k -u -f$(CSCOPE)_boot.out
     65        find uspace -regex '^.*\.[chsS]$$' | xargs $(CSCOPE) -b -k -u -f$(CSCOPE)_uspace.out
    6066
    6167# Pre-integration build check
  • uspace/app/edit/edit.c

    r971f50e7 r6560960  
    111111#define BUF_SIZE 64
    112112#define TAB_WIDTH 8
    113 #define ED_INFTY 65536
    114113
    115114/** Maximum filename length that can be entered. */
     
    507506static void key_handle_movement(unsigned int key, bool select)
    508507{
     508        spt_t pt;
    509509        switch (key) {
    510510        case KC_LEFT:
     
    521521                break;
    522522        case KC_HOME:
    523                 caret_move_relative(0, -ED_INFTY, dir_after, select);
     523                tag_get_pt(&pane.caret_pos, &pt);
     524                pt_get_sol(&pt, &pt);
     525                caret_move(pt, select, true);
    524526                break;
    525527        case KC_END:
    526                 caret_move_relative(0, +ED_INFTY, dir_before, select);
     528                tag_get_pt(&pane.caret_pos, &pt);
     529                pt_get_eol(&pt, &pt);
     530                caret_move(pt, select, true);
    527531                break;
    528532        case KC_PAGE_UP:
  • uspace/lib/c/arch/abs32le/include/types.h

    r971f50e7 r6560960  
    4747
    4848typedef uint32_t sysarg_t;
     49typedef int32_t native_t;
    4950
    5051typedef int32_t ssize_t;
  • uspace/lib/c/arch/amd64/include/types.h

    r971f50e7 r6560960  
    4747
    4848typedef uint64_t sysarg_t;
     49typedef int64_t native_t;
    4950
    5051typedef int64_t ssize_t;
  • uspace/lib/c/arch/arm32/include/types.h

    r971f50e7 r6560960  
    4848
    4949typedef uint32_t sysarg_t;
     50typedef int32_t native_t;
    5051
    5152typedef int32_t ssize_t;
  • uspace/lib/c/arch/ia32/include/types.h

    r971f50e7 r6560960  
    4747
    4848typedef uint32_t sysarg_t;
     49typedef int32_t native_t;
    4950
    5051typedef int32_t ssize_t;
  • uspace/lib/c/arch/ia64/include/types.h

    r971f50e7 r6560960  
    5757
    5858typedef uint64_t sysarg_t;
     59typedef int64_t native_t;
    5960
    6061typedef int64_t ssize_t;
  • uspace/lib/c/arch/mips32/include/types.h

    r971f50e7 r6560960  
    4848
    4949typedef uint32_t sysarg_t;
     50typedef int32_t native_t;
    5051
    5152typedef int32_t ssize_t;
  • uspace/lib/c/arch/mips64/include/types.h

    r971f50e7 r6560960  
    4848
    4949typedef uint64_t sysarg_t;
     50typedef int64_t native_t;
    5051
    5152typedef int64_t ssize_t;
  • uspace/lib/c/arch/ppc32/include/types.h

    r971f50e7 r6560960  
    4747
    4848typedef uint32_t sysarg_t;
     49typedef int32_t native_t;
    4950
    5051typedef int32_t ssize_t;
  • uspace/lib/c/arch/sparc64/include/types.h

    r971f50e7 r6560960  
    4747
    4848typedef uint64_t sysarg_t;
     49typedef int64_t native_t;
    4950
    5051typedef int64_t ssize_t;
  • uspace/lib/c/generic/io/input.c

    r971f50e7 r6560960  
    143143        x = IPC_GET_ARG1(*call);
    144144        y = IPC_GET_ARG2(*call);
    145         max_x = IPC_GET_ARG2(*call);
    146         max_y = IPC_GET_ARG3(*call);
     145        max_x = IPC_GET_ARG3(*call);
     146        max_y = IPC_GET_ARG4(*call);
    147147
    148148        rc = input->ev_ops->abs_move(input, x, y, max_x, max_y);
  • uspace/lib/draw/surface.c

    r971f50e7 r6560960  
    4444        surface_flags_t flags;
    4545
    46         sysarg_t dirty_x_lo;
    47         sysarg_t dirty_x_hi;
    48         sysarg_t dirty_y_lo;
    49         sysarg_t dirty_y_hi;
     46        surface_coord_t dirty_x_lo;
     47        surface_coord_t dirty_x_hi;
     48        surface_coord_t dirty_y_lo;
     49        surface_coord_t dirty_y_hi;
    5050
    5151        pixelmap_t pixmap;
    5252};
    5353
    54 surface_t *surface_create(
    55     sysarg_t width, sysarg_t height, pixel_t *pixbuf, surface_flags_t flags)
     54surface_t *surface_create(surface_coord_t width, surface_coord_t height,
     55    pixel_t *pixbuf, surface_flags_t flags)
    5656{
    5757        surface_t *surface = (surface_t *) malloc(sizeof(surface_t));
     
    118118}
    119119
    120 void surface_get_resolution(surface_t *surface, sysarg_t *width, sysarg_t *height)
     120void surface_get_resolution(surface_t *surface, surface_coord_t *width, surface_coord_t *height)
    121121{
    122122        assert(width);
     
    127127}
    128128
    129 void surface_get_damaged_region(surface_t *surface, sysarg_t *x, sysarg_t *y,
    130     sysarg_t *width, sysarg_t *height)
     129void surface_get_damaged_region(surface_t *surface, surface_coord_t *x, surface_coord_t *y,
     130    surface_coord_t *width, surface_coord_t *height)
    131131{
    132132        assert(x);
     
    151151}
    152152
    153 void surface_put_pixel(surface_t *surface, sysarg_t x, sysarg_t y, pixel_t pixel)
     153void surface_put_pixel(surface_t *surface, surface_coord_t x, surface_coord_t y, pixel_t pixel)
    154154{
    155155        surface->dirty_x_lo = surface->dirty_x_lo > x ? x : surface->dirty_x_lo;
     
    163163}
    164164
    165 pixel_t surface_get_pixel(surface_t *surface, sysarg_t x, sysarg_t y)
     165pixel_t surface_get_pixel(surface_t *surface, surface_coord_t x, surface_coord_t y)
    166166{
    167167        if (x < surface->pixmap.width && y < surface->pixmap.height) {
  • uspace/lib/draw/surface.h

    r971f50e7 r6560960  
    4545typedef struct surface surface_t;
    4646
     47typedef sysarg_t surface_coord_t;
     48
    4749typedef enum {
    4850        SURFACE_FLAG_NONE = 0,
     
    5052} surface_flags_t;
    5153
    52 extern surface_t *surface_create(sysarg_t, sysarg_t, pixel_t *, surface_flags_t);
     54extern surface_t *surface_create(surface_coord_t, surface_coord_t, pixel_t *, surface_flags_t);
    5355extern void surface_destroy(surface_t *);
    5456
     
    5658extern pixel_t *surface_direct_access(surface_t *);
    5759extern pixelmap_t *surface_pixmap_access(surface_t *);
    58 extern void surface_get_resolution(surface_t *, sysarg_t *, sysarg_t *);
    59 extern void surface_get_damaged_region(surface_t *, sysarg_t *, sysarg_t *,
    60     sysarg_t *, sysarg_t *);
     60extern void surface_get_resolution(surface_t *, surface_coord_t *, surface_coord_t *);
     61extern void surface_get_damaged_region(surface_t *, surface_coord_t *, surface_coord_t *,
     62    surface_coord_t *, surface_coord_t *);
    6163extern void surface_reset_damaged_region(surface_t *);
    6264
    63 extern void surface_put_pixel(surface_t *, sysarg_t, sysarg_t, pixel_t);
    64 extern pixel_t surface_get_pixel(surface_t *, sysarg_t, sysarg_t);
     65extern void surface_put_pixel(surface_t *, surface_coord_t, surface_coord_t, pixel_t);
     66extern pixel_t surface_get_pixel(surface_t *, surface_coord_t, surface_coord_t);
    6567
    6668#endif
  • uspace/srv/hid/compositor/compositor.c

    r971f50e7 r6560960  
    9292        sysarg_t id;
    9393        uint8_t state;
    94         sysarg_t hpos;
    95         sysarg_t vpos;
     94        desktop_point_t pos;
    9695        sysarg_t btn_num;
    97         sysarg_t btn_hpos;
    98         sysarg_t btn_vpos;
    99         int accum_dx;
    100         int accum_dy;
     96        desktop_point_t btn_pos;
     97        desktop_vector_t accum;
    10198        sysarg_t grab_flags;
    10299        bool pressed;
     
    135132        vslmode_t mode;
    136133        async_sess_t *sess;
    137         sysarg_t hpos;
    138         sysarg_t vpos;
     134        desktop_point_t pos;
    139135        surface_t *surface;
    140136} viewport_t;
     
    174170
    175171        link_initialize(&p->link);
    176         p->hpos = coord_origin;
    177         p->vpos = coord_origin;
     172        p->pos.x = coord_origin;
     173        p->pos.y = coord_origin;
    178174        p->btn_num = 1;
    179         p->btn_hpos = p->hpos;
    180         p->btn_vpos = p->vpos;
    181         p->accum_dx = 0;
    182         p->accum_dy = 0;
     175        p->btn_pos = p->pos;
     176        p->accum.x = 0;
     177        p->accum.y = 0;
    183178        p->grab_flags = GF_EMPTY;
    184179        p->pressed = false;
     
    307302                bool isec_vp = rectangle_intersect(
    308303                    x_dmg_glob, y_dmg_glob, w_dmg_glob, h_dmg_glob,
    309                     vp->hpos, vp->vpos, w_dmg_vp, h_dmg_vp,
     304                    vp->pos.x, vp->pos.y, w_dmg_vp, h_dmg_vp,
    310305                    &x_dmg_vp, &y_dmg_vp, &w_dmg_vp, &h_dmg_vp);
    311306
     
    313308
    314309                        /* Paint background color. */
    315                         for (sysarg_t y = y_dmg_vp - vp->vpos; y <  y_dmg_vp - vp->vpos + h_dmg_vp; ++y) {
    316                                 for (sysarg_t x = x_dmg_vp - vp->hpos; x < x_dmg_vp - vp->hpos + w_dmg_vp; ++x) {
     310                        for (sysarg_t y = y_dmg_vp - vp->pos.y; y <  y_dmg_vp - vp->pos.y + h_dmg_vp; ++y) {
     311                                for (sysarg_t x = x_dmg_vp - vp->pos.x; x < x_dmg_vp - vp->pos.x + w_dmg_vp; ++x) {
    317312                                        surface_put_pixel(vp->surface, x, y, bg_color);
    318313                                }
     
    352347                                         * coordinates. */
    353348                                        transform = win->transform;
    354                                         double hpos = vp->hpos;
    355                                         double vpos = vp->vpos;
    356                                         transform_translate(&transform, -hpos, -vpos);
     349                                        double_point_t pos;
     350                                        pos.x = vp->pos.x;
     351                                        pos.y = vp->pos.y;
     352                                        transform_translate(&transform, -pos.x, -pos.y);
    357353
    358354                                        source_set_transform(&source, transform);                               
     
    361357
    362358                                        drawctx_transfer(&context,
    363                                             x_dmg_win - vp->hpos, y_dmg_win - vp->vpos, w_dmg_win, h_dmg_win);
     359                                            x_dmg_win - vp->pos.x, y_dmg_win - vp->pos.y, w_dmg_win, h_dmg_win);
    364360                                }
    365361                        }
     
    375371                                bool isec_ptr = rectangle_intersect(
    376372                                    x_dmg_vp, y_dmg_vp, w_dmg_vp, h_dmg_vp,
    377                                     ptr->hpos, ptr->vpos, w_dmg_ptr, h_dmg_ptr,
     373                                    ptr->pos.x, ptr->pos.y, w_dmg_ptr, h_dmg_ptr,
    378374                                    &x_dmg_ptr, &y_dmg_ptr, &w_dmg_ptr, &h_dmg_ptr);
    379375
     
    386382
    387383                                        pixel_t pix = 0;
    388                                         sysarg_t x_vp = x_dmg_ptr - vp->hpos;
    389                                         sysarg_t y_vp = y_dmg_ptr - vp->vpos;
    390                                         sysarg_t x_ptr = x_dmg_ptr - ptr->hpos;
    391                                         sysarg_t y_ptr = y_dmg_ptr - ptr->vpos;
     384                                        sysarg_t x_vp = x_dmg_ptr - vp->pos.x;
     385                                        sysarg_t y_vp = y_dmg_ptr - vp->pos.y;
     386                                        sysarg_t x_ptr = x_dmg_ptr - ptr->pos.x;
     387                                        sysarg_t y_ptr = y_dmg_ptr - ptr->pos.y;
    392388
    393389                                        for (sysarg_t y = 0; y < h_dmg_ptr; ++y) {
     
    901897
    902898        link_initialize(&vp->link);
    903         vp->hpos = coord_origin;
    904         vp->vpos = coord_origin;
     899        vp->pos.x = coord_origin;
     900        vp->pos.y = coord_origin;
    905901
    906902        /* Establish output bidirectional connection. */
     
    1002998        /* window_list_mtx locked by caller */
    1003999
    1004         int dx = pointer->accum_dx;
    1005         int dy = pointer->accum_dy;
    1006         pointer->accum_dx = 0;
    1007         pointer->accum_dy = 0;
     1000        int dx = pointer->accum.x;
     1001        int dy = pointer->accum.y;
     1002        pointer->accum.x = 0;
     1003        pointer->accum.y = 0;
    10081004
    10091005        bool move = (pointer->grab_flags & GF_MOVE_X) || (pointer->grab_flags & GF_MOVE_Y);
     
    10791075    unsigned max_x, unsigned max_y)
    10801076{
    1081         /* XXX TODO */
    1082         return EOK;
     1077        /* XXX TODO Use absolute coordinates directly */
     1078       
     1079        pointer_t *pointer = input_pointer(input);
     1080       
     1081        sysarg_t width, height;
     1082       
     1083        fibril_mutex_lock(&viewport_list_mtx);
     1084        if (list_empty(&viewport_list)) {
     1085                printf("No viewport found\n");
     1086                fibril_mutex_unlock(&viewport_list_mtx);
     1087                return EOK; /* XXX */
     1088        }
     1089        link_t *link = list_first(&viewport_list);
     1090        viewport_t *vp = list_get_instance(link, viewport_t, link);
     1091        surface_get_resolution(vp->surface, &width, &height);
     1092        desktop_point_t vp_pos = vp->pos;
     1093        fibril_mutex_unlock(&viewport_list_mtx);
     1094
     1095        desktop_point_t pos_in_viewport;
     1096        pos_in_viewport.x = x * width / max_x;
     1097        pos_in_viewport.y = y * height / max_y;
     1098       
     1099        /* Calculate offset from pointer */
     1100        fibril_mutex_lock(&pointer_list_mtx);
     1101        desktop_vector_t delta;
     1102        delta.x = (vp_pos.x + pos_in_viewport.x) - pointer->pos.x;
     1103        delta.y = (vp_pos.y + pos_in_viewport.y) - pointer->pos.y;
     1104        fibril_mutex_unlock(&pointer_list_mtx);
     1105       
     1106        return comp_mouse_move(input, delta.x, delta.y);
    10831107}
    10841108
     
    10891113        /* Update pointer position. */
    10901114        fibril_mutex_lock(&pointer_list_mtx);
    1091         sysarg_t old_hpos = pointer->hpos;
    1092         sysarg_t old_vpos = pointer->vpos;
     1115        desktop_point_t old_pos = pointer->pos;
    10931116        sysarg_t cursor_width;
    10941117        sysarg_t cursor_height;
    10951118        surface_get_resolution(pointer->cursor.states[pointer->state],
    10961119             &cursor_width, &cursor_height);
    1097         pointer->hpos += dx;
    1098         pointer->vpos += dy;
     1120        pointer->pos.x += dx;
     1121        pointer->pos.y += dy;
    10991122        fibril_mutex_unlock(&pointer_list_mtx);
    1100         comp_damage(old_hpos, old_vpos, cursor_width, cursor_height);
    1101         comp_damage(old_hpos + dx, old_vpos + dy, cursor_width, cursor_height);
     1123        comp_damage(old_pos.x, old_pos.y, cursor_width, cursor_height);
     1124        comp_damage(old_pos.x + dx, old_pos.y + dy, cursor_width, cursor_height);
    11021125
    11031126        fibril_mutex_lock(&window_list_mtx);
     
    11111134                        sysarg_t width, height;
    11121135                        surface_get_resolution(top->surface, &width, &height);
    1113                         within_client = comp_coord_to_client(pointer->hpos, pointer->vpos,
     1136                        within_client = comp_coord_to_client(pointer->pos.x, pointer->pos.y,
    11141137                            top->transform, width, height, &point_x, &point_y);
    11151138                        fibril_mutex_unlock(&window_list_mtx);
     
    11301153                } else {
    11311154                        /* Pointer is grabbed by top-level window action. */
    1132                         pointer->accum_dx += dx;
    1133                         pointer->accum_dy += dy;
     1155                        pointer->accum.x += dx;
     1156                        pointer->accum.y += dy;
    11341157#if ANIMATE_WINDOW_TRANSFORMS == 1
    11351158                        sysarg_t x, y, width, height;
     
    11531176
    11541177        if (bpress) {
    1155                 pointer->btn_hpos = pointer->hpos;
    1156                 pointer->btn_vpos = pointer->vpos;
     1178                pointer->btn_pos = pointer->pos;
    11571179                pointer->btn_num = bnum;
    11581180                pointer->pressed = true;
     
    11671189                sysarg_t x, y, width, height;
    11681190                surface_get_resolution(win->surface, &width, &height);
    1169                 bool within_client = comp_coord_to_client(pointer->hpos, pointer->vpos,
     1191                bool within_client = comp_coord_to_client(pointer->pos.x, pointer->pos.y,
    11701192                    win->transform, width, height, &x, &y);
    11711193                fibril_mutex_unlock(&window_list_mtx);
     
    12021224                        if (win->surface) {
    12031225                                surface_get_resolution(win->surface, &width, &height);
    1204                                 within_client = comp_coord_to_client(pointer->hpos, pointer->vpos,
     1226                                within_client = comp_coord_to_client(pointer->pos.x, pointer->pos.y,
    12051227                                    win->transform, width, height, &point_x, &point_y);
    12061228                        }
     
    15181540                        switch (key) {
    15191541                        case KC_I:
    1520                                 vp->hpos += 0;
    1521                                 vp->vpos += -20;
     1542                                vp->pos.x += 0;
     1543                                vp->pos.y += -20;
    15221544                                break;
    15231545                        case KC_K:
    1524                                 vp->hpos += 0;
    1525                                 vp->vpos += 20;
     1546                                vp->pos.x += 0;
     1547                                vp->pos.y += 20;
    15261548                                break;
    15271549                        case KC_J:
    1528                                 vp->hpos += -20;
    1529                                 vp->vpos += 0;
     1550                                vp->pos.x += -20;
     1551                                vp->pos.y += 0;
    15301552                                break;
    15311553                        case KC_L:
    1532                                 vp->hpos += 20;
    1533                                 vp->vpos += 0;
     1554                                vp->pos.x += 20;
     1555                                vp->pos.y += 0;
    15341556                                break;
    15351557                        default:
    1536                                 vp->hpos += 0;
    1537                                 vp->vpos += 0;
     1558                                vp->pos.x += 0;
     1559                                vp->pos.y += 0;
    15381560                                break;
    15391561                        }
    15401562                       
    1541                         sysarg_t x = vp->hpos;
    1542                         sysarg_t y = vp->vpos;
     1563                        sysarg_t x = vp->pos.x;
     1564                        sysarg_t y = vp->pos.y;
    15431565                        sysarg_t width, height;
    15441566                        surface_get_resolution(vp->surface, &width, &height);
  • uspace/srv/hid/compositor/compositor.h

    r971f50e7 r6560960  
    3636#define COMPOSITOR_COMPOSITOR_H_
    3737
     38typedef native_t desktop_coord_t;
     39typedef struct {
     40        desktop_coord_t x;
     41        desktop_coord_t y;
     42} desktop_point_t;
     43typedef desktop_point_t desktop_vector_t;
     44
     45/* TODO remove? */
     46typedef struct {
     47        double x;
     48        double y;
     49} double_point_t;
     50typedef double_point_t double_vector_t;
     51
    3852#endif
    3953
Note: See TracChangeset for help on using the changeset viewer.